Ustreamで高画質配信をめざそう! その4 | Nobuおじちゃんのブログ

Nobuおじちゃんのブログ

自分の勉強のために「四字熟語」「ことわざ」載せて、うんちくタレてま〜す。

毎日毎日暑いですねー。「あつはなつい!」なんて言う人・・・今でもいるのでしょうか?(笑)
ではでは、FlashMediaLiveEncoderの設定です。

まず、Ustreamに登録後、ダッシュボードから自分の番組設定をします。
色々と設定が終わったら、ダッシュボード→番組設定→詳細設定とクリック。
詳細設定画面の中の"FlashMediaLiveEncoderのXMLファイルをダウンロード"と書いてある所をクリック。
XMLファイルがダウンロードされます。
どこに、落ちたか見失った人は、”ustream"で検索すれば、どこかにUstreamから落としたXMLファイルが見つかると思います。
自分でわかりやすい所に移動です。

では、FlashMediaLiveEncoderを起動。
File→OpenProfileと進み、Ustreamから落としたXMLファイルを選択します。
$snowgrooveのブログ-s10
そうすると・・・・・画面右側が、こうなります。
$snowgrooveのブログ-s11
白くボケてる所に、自分の番組への行き先が、記載されます。
個人情報なので、ボケ処理させていただきました。
本物は、くっきりアドレスが記載されてます。

それでは、映像の設定から行きます。
$snowgrooveのブログ-s12
では、上から。
Preset→色々なプリセットが用意されてます。
    自分がめざす配信設定に近いものを選ぶのもOKだと思います。
Video→チェックボックスがあります。
    はずせば、映像は流れません。(ラジオ放送とかに使うのかな?)
Device→デバイスの指定です。
    アタシの場合はCamTwistがデバイスになるので、CamTwistを指定しました。
    CamTwistを使わないで、直接Webカメラから配信する人は、そのWebカメラのデバイス名を指定します。
Format→どのフォーマットでエンコードするのか?決めます。
     用意されてるのは、H264とVP6です。

ちょっと勉強会になってしまうのですが、重要なので説明しますね。
H264とVP6・・・コーデックの違いですね。
Web配信なので、ファイル拡張子で言うと、H264がf4v、VP6がFLVです。
これでなんとなく身近に感じるという人もいると思います。
YouTubeのようにUpLoad後にストリーミング(ダウンロード)の場合、FLV(VP6)を使い、UstreamのようにUP・Down両方がリアルタイムで行われる場合、f4v(H264)が使われると思ってました。

性格の違いは、
H264→エンコードは速いがデコードは遅い。
VP6→エンコードは遅いがデコードは速い。
VP6は丁寧にゆっくり確認しながらエンコードするので、最終的にビットレートを低く目で設定しても、ブロックノイズも少なくスッキリ画像が得られます。
リアルタイム(Live)エンコードの場合、動きの多い複雑な画像の時は時間内にエンコードしきれなくて、フレームドロップが起きて映像が飛ぶ時があります。
H264はエンコードが速いので、最終的にビットレートを高目に設定してあげれば、ブロックノイズは少なくなります。
複雑な画像の時は、フレームドロップしないで、なんとかブロックノイズを出しながらエンコードしてくれます。

ということは?・・・どうしましょうかねー?
Ustreamはリアルタイム(Live)配信なので、映像を送る側は、H264の方が有利ですが、受け取る側(視聴者)はVP6の方が有利です。
アタシのマシンの場合、非力マシンなので、エンコードで負担がかかりフレームドロップが起きるのは避けたいので"H264"にしました。
いくら画質が良くても、送る側で画像が飛んじゃったら嫌ですもんねー!

「H264は相性が良くない!」って言ってる人がいますが、そんな事ないですよ。
しっかり設定すれば、大丈夫です。
Formatの列にスパナのマークがあります。
H264でスパナマークをクリックすると、こんな画面です。
$snowgrooveのブログ-s13
Profile・Level・KeyframeFrequency とあります。

Profileはベースラインとメインがあります。
動画にインターレース処理をしてる物はメインで設定なのですが、プログレッシブの場合はベースラインでOKです。
Web配信の場合、基本プログレッシブなのでベースラインで設定です。
Webカメラはプログレッシブで送られてますよね?、普通のムービーカメラは1920×1080 60iって感じでインターレースで送る事が多いです。
(最近60Pのカメラも、一般用で出てきましたねー。遊び用に欲しいな~)
キャプチャーなりビデオコンバーターの段階でプログレッシブに変換することをお勧めします。
1920×1080 60i → ビデオコンバーター → 1280×720 30P てな感じです。

Levelは画像解像度やフレームレートで上限が決定されていて、それぞれのレベルで処理の負荷やメモリ量などを表すパラメータの上限が定められてます。
具体的には、
1920×1080 60 → Level 4.2
1920×1080 30 → Level 4.1or4.0
1280×720 30 → Level 3.1
720×480 30 → Level 3.0
352×288 30 → Level 2.0or1.3
320×240 20 → Level 1.2
個人的にはHDがLevel 4 SDがLevel 3 携帯がLevel 2or1 って考えてます。
UstreamはPC向けの配信なので、こだわることは無いのですが、いらない情報までUPする必要も無いので、
自分が配信する画像解像度やフレームレートでレベルを設定した方が良いと思います。
例えば、320×240 30 で配信するのであれば、レベル2.0でOKです。
アタシは480×288 30 で配信を設定したので、レベル3.0です。

KeyframeFrequencyは数字を大きくするとコマ数を重視するので滑らかに再生、小さくすると画質を重視するので、動きが速い動画の処理が省略されてカクカク再生になります。
アタシは滑らか重視なので、最大の10にしました。

このH264の詳細設定をしっかりやっておけば、「相性悪い」って無いですよ。

さてさて、ブログ打つの疲れてきました。
FrameRateから下は、また次回のブログにします。