FFMPEG Launcherをつかってみよう

この記事を書くに当たって参考にしたサイト
画質厨の配信設定研究
初心者向け!ニコ生のやり方解説サイト! - アットウィキ
ニコニコ動画研究所
ニコ生をするときの配信ソフトは何を使っていますか?代表的なものとしては、XSplit、Niconico Live Encoder(NLE)、FlashMediaLiveEncoder(FME)と言ったところでしょうか。この3つのソフトの比較は【NLE】 ここまで使えるニコ生エンコーダー - ニコニコ動画研究所を見てください。ざっくり言っちゃうと、

  • XSplit
    • 有料
    • 12シーンを登録出来て切り替えられる
    • ビットレートとフレームレートは任意
    • DirectX/OpenGL取り込みが可能
    • クロマキー合成とかメディアファイル読み込みとかとにかく多機能
    • 複数サイトへの同時配信が可能
  • NLE
    • 無料
    • ビットレートは何種類かから選択、フレームレートは1-30の間
    • DirectX/OpenGL取り込みが可能
    • ニコ生にしか使えない
  • FME

って感じです。で、ぼくはXSplitを使っているんですが、じゃあなぜFFMPEG Launcherをつかってみようなどとのたまっているかと言うと、音声にAAC+(HE-AAC)を使いたいんですよ。AAC+の特性はぐぐってもらうとして、簡単に言うと48kbpsでCD程度の音質をうたう音声コーデックです。うっそだーって思う人はサンプル用意したので聞いてみてください。それ以外のメリット、他配信ソフトとの比較はこちらにまとめてありました。あ、良いじゃん!って思ったらこの先を読んで使って見ましょう。Windows の ffmpeg で生放送する方法 - ニコニコ動画研究所
オリジナル:初音ミク が オリジナル曲を歌ってくれたよ「メルト」 - ニコニコ動画
AAC+:48kbpsでエンコードしたものを320kbpsのMP3にエンコード
音声が48kbpsでいけるということは、映像に336kbps使えるということで、数字の上では少し画質が良くなるはずです。じゃあどうやって使うのか!

まずはFFMPEG Launcherを使えるようにしよう

いきなりAAC+使うための話をするとややこしくなるので順番に。まずはFFMPEG Launcherを使えるように。長いのでFFMLと呼びます。FFMLを使うためにはFFMLとffmpegが必要なのでDLしましょう。ffmpegは32-bit Builds (Static or Shared)が推奨されています。7zの展開方法はぐぐってください。あと起動するのにMicrosoft .NET Framework 4.0が必要なので、起動出来無かった場合にインストールしてください。
FFML配布コミュ:或ル人ノ棲息地 【ニコニコ実験場】-ニコニコミュニティ
ffmpeg配布サイト:Builds - Zeranoe FFmpeg
それぞれ展開し、ffmpeg-なんとかかんとかの中のbinの中にあるffmpeg.exeをコピーし、FFML_v.なんとかかんとかの中に貼り付けます。下の画像の状態にする。

んでFFMPEGLauncher.exeをぽちぽちっと起動。

FFMLの設定

この記事ではv.0.0.1.5.2を使用しています。まずは基本設定。

  • 映像デバイス:XSplitを契約している人はXSplitなんとかを指定。使って無い人は次のどれかを準備して、映像デバイスにそれを選択。SCFHも使えるんですが、配信している間しかffmpeg.exeと連携出来無いので単体での使用はおすすめしません。SCFH→XSplit→FFMLという風にして使ってください。
  • 映像ビットレートとバッファサイズ:384-音声ビットレートにします。バッファサイズはそれの等倍か2倍にします。
  • 入力解像度の自動認識:チェックしたままで良いと思うけど、映像デバイスの出力解像度が分かるならそれにしても良い。
  • 出力:ニコ生なら640x360で、フレームレートは適当に。24以上なら動画と言えると思う。
  • 音声デバイス:今までの配信で音声デバイスのステレオミックスを使っていればそれを指定。Vista/7の仮想ステレオミキサーか、アマミキなどの仮想ステレオミキサーを使うならそれを指定。仮想ステミキは次のページからどれか選んで使えるようにして、デバイスに指定する。
  • 音声コーデック:今はAACを選びます。AAC+はまだ使えません。ビットレートは80とかそこらが良音質の下限と思ってください。音量は256が100%です。そのままでいいです。
  • モード:ちゃんとエンコード出来るかの確認のために、今は録画にしておきます。保存先を適当に選びます。その右のflvだかmp4だかって書いてあるのはflvにしておきます。ぼくの環境ではmp4にするとローカルに正しく録画出来ませんでした。
  • 入力:映像/音声デバイスにしておきます。ファイルを選ぶとその動画を、ニコ生放送URLやUst放送URLを指定するとミラーが出来ますが、rtmpdump.exeってのが要ります。

次に高度な設定の共通設定タブ

  • エンコードモード:品質基準VBRの30がXSplitでの品質5にあたる。35-XSplitでの品質=crfの値。固定ビットレートとかでも良いと思う。
  • その他のスレッド数:0でCPUのスレッド数を自動判別。0の場合、CPUスレッド数の1.5倍(4コア4スレなら6、HTTで4コア8スレなら12スレ)に自動設定される。0で良い。

コーデックタブへ移り、

  • プリセット:Core i5以上ならslowかslowerくらい。CPU負荷と画質を天秤に掛ける。
  • 外部プリセット:ニコニコ動画研究所様等で配布されているプリセットを使うならこの辺り。使えない値もある。例:min-keyintにautoを指定できない。0を指定する。

次に【FFML】設定タブへ

  • クッキー取得設定:使ってるブラウザを指定する
  • その他:ビットレートを自動的に制御するにチェックを入れると、ニコ生のビットレート制限を超えている場合は、合計ビットレートから音声ビットレートを引いた値を映像に割り当てる。
  • ffmpeg.exeのPATH指定:FFMLと同じフォルダにffmpeg.exeがあれば、ffmpeg.exeと書いておく。他の場所にある場合は参照から。
  • FFMPEG実行画面を表示する:チェックを付けて配信開始するとffmpeg.exeの実行画面が表示される。配信開始をぽちっても配信されないときにチェックを付けてエラーを見よう。普段は外す。
  • rtmpdump.exeのPATH指定:FFMLと同じフォルダにあればrtmpdump.exeと書いておく。ニコ生/Ustのミラーをしないなら不要。

以上で設定は終わり。後は、基本設定のモードを録画にした状態で配信開始をぽちれば指定した保存先に録画され、何らかの方法で枠を録ってモードを配信にした状態で配信開始をぽちれば配信されます。-startオプションを付けて起動すると起動即配信開始してくれるので、FMEAutomatorとかと連携できます。ホットキー送信より-startオプション付けて起動させた方が確実だと思います。

AAC+は?

音声コーデックのところでAAC+はまだ使えませんと書きました。配布されてるffmpeg.exeでは使えないんです。AAC+を使えるffmpeg.exeを配布するためにはAAC+とのライセンス契約が必要らしいです。ですが、コンパイル前のソースであれば配布が可能です。(参照:Windows の ffmpeg で生放送する方法 - ニコニコ動画研究所
というわけで、AAC+を使うためにソースからコンパイルしてffmpeg.exeを作ろう!という話なのです。が、この辺は今度書きます。試してみたい!って人はこの辺読んでください。よく分かんない言葉がたくさん書いてあって拒否反応が出るかもしれませんが、ビルド自動化スクリプトが開発されたので、そのスクリプトとPortableGit-1.7.10-preview20120409.7zとMSYS_MinGW_GCC_470_x86-x64_Full.7zとfstabがあれば出来ます。いずれも直前のリンクから探せばあります。

画質どうなの?

ぼくが出来る環境でちょっと試してみました。同タイミングではありませんがどれもほぼ同じ環境と思って頂ければと。チューンによる細部の違いは分かると思う。とくにanimationチューン。でもまぁあんま変わんないよね∠( 'ω')/
比較画像 ※いずれも同じ速度で前方に進んでいる最中です