2010年5月14日のメンテナンスで、ニコニコ生放送でもエンコーダに「Flash Media Live Encoder」を使った配信が可能になりました。これは、いままでブラウザ上で(Flashの機能で)カメラの制御とエンコードを行っていたものを、外部アプリケーションを使って細かい設定ができるようになるものです。
ニコニコ生放送ではこの機能のことを「高画質配信機能」とうたっていることでわかるとおり、いままでにない高画質の放送をすることが可能な一方、画質をほどほどに抑えて安定した配信をすることも可能となります。
ここで、屋内向けで実験の上どのような設定が良いかをまとめてみました。
既に以前からFlash Media Live Encoderに対応している動画配信サイト(Ustreamなど)とニコニコ生放送との間で異なるのは「ビットレートに制限があること」。ニコニコ生放送では配信ビットレートに384kbpsの制限があり、そのレートを超えると配信が不安定になります。
で、この384kbpsという値はなかなか微妙で、ニコニコ生放送の配信サイズ(512×384)をそのまま送ろうとすると「きれいで安定した画像がぬるぬる動く」という状態には微妙に足りません。
なので回線やPC性能が安定している屋内の配信では、“画質を少し下げた上で安定して破綻のない動画を実現する”か“動くとカクついたり画面が多少破綻することを覚悟で画質を上げる”かのどちらかの選択になります。
■画質を少し下げて安定した破綻のない動画にする設定(オススメ!)
こちらの設定は、「画質を少し下げて」とはいっても、全体では非常に安定した動画がヌルヌルと出力されるのでとても安心して見られる画面になります。画面がノイズで破綻することもほとんどないので、安心感・安定感のある設定と言えます。
この設定にはVH Multi Camera Studioなどの仮想カメラデバイスが必要になります。現在VH MultiCamはダウンロード配布が終了してしまったので入手が難しいのですが、そのあたりの代替手段は他の現在入手可能なフリーウェアなども含めてまた後日まとめたいと思います。
・VH MultiCamでフレームレートを24fpsに設定する
この設定が必要な理由は最後に説明します。配信する画面(カメラ)はVH MultiCam上で設定し、VH MultiCamの出力解像度を640x480、フレームレートを24.00fpsに設定してください。
・FMLEを以下のように設定する
(設定画面はクリックで拡大できます)
【Video】
- Device: VHMultiCam
- Format: H.264
- (横の工具箱アイコンをクリックしてから)Profile: Main
- Frame Rate: 24.00fps
- Input Size: 640x480 (fpsとInput SizeはVH MultiCamと同一にします)
- Bit Rate: 200kbps
- Output Size: 400x300
【Audio】
- Format: Mp3
- Channels: Stereo
- Sample Rate: 44100Hz
- Bit Rate: 128Kbps
【Output】
- Auto Adjust: Drop Frames
解像度を少し下げ(400x300)、データ量を減らしてビットレートをがっつり下げた上で安定した配信にしています。
■画質を上げる設定
画質を上げることでビットレートの制約が厳しくなりますので、画面が動くとカクつく場面も出てきます。それでも総合的に従来のブラウザからの配信より画質が上がる設定です。
(設定画面はクリックで拡大できます)
この設定は「ニコニコ生放送」ヘルプにある手順…XMLファイルをダウンロードして設定した時そのままです。なので、ヘルプ手順に従ってXMLファイルをダウンロードし、そのXMLファイルをFlash Media Live Encoderで読み込むことで「画質を上げる」設定になります。ただし、先述のとおり動きが激しくなると画面にノイズが増えたりカクついたりもします。
また、従来でいう「動き優先」か「画質優先」かの設定は、この画面の中で「Format: VP6」の横にある工具マークのアイコンをクリックしてください。
この項目で「画質優先」から「動き優先」まで設定可能です。
最後に、こういった設定をさらにいじっていく人向けの注意を。Flash Media Live Encoderはところどころに不思議な挙動を残しており、知っていないとうまく設定できない場面が出てきます。
- FMLEでコーデックをH.264に設定するとビットレート設定が効かない。ビットレートの値を設定してもそこに収束するようなエンコードをしてくれません。なので、H.264を使いたい場合は解像度やフレームレート、プロファイルの設定などを調整して目的のビットレートになるようにするしかありません。
- VP6ではそのような問題が無いので狙ったビットレートを設定可能だが、画面の動きにあわせて激しく上下するレートに追いつかせようとして画面が破綻しがち
- FMLEのフレームレート設定は、あくまでも「そのフレームレートにしてくれ、と入力デバイスに設定しようとする値」でしかない。エンコードは入力デバイスから入ってくるフレームにあわせて行われる。(FMLEではフレームレート調整をしてくれない)
- たとえばビデオキャプチャデバイスを入力に設定すると、FMLEでフレームレートをどう設定しても29.97fpsでエンコードされてしまう。(最初に紹介した設定でVH Multi Camera Studio必須としたのはこのため。フレームレートをVH MultiCamで変更している)
- というわけで、入力fpsやビットレートの設定は信用ならないので実際にどういうエンコードがされているかは必ずログ画面で確認する必要がある。
- ログ画面では「Auto Adjust」の表示に注意。これが出ている時はビットレートが高すぎるなどの理由で本来の画質が出ていない。
以上、ニコニコ生放送でのlash Media Live Encoderおすすめ設定でした。
屋外モバイル配信では回線そのものが細く不安定ですから、さらにビットレートを低く設定する必要がありますが、CPUの制約も厳しいのでバランス調整がさらに難しいです。モバイル向け設定はまた別途ご紹介したいと思います。