どうも、モノトーンです。
今日は 5.1 ch LPCM が録画とか再生とか編集とかうまくいったことに関してそれなりにまとめておきたい。
概要
- ライブ (DirectShow)
- 録画 (DirectShow)
- 変換 (ffmpeg)
- 編集 (AVIUtl)
1. ライブ (DirectShow)
DirectShow 関連は 5.1 ch を直接スピーカーにつなげないようになっている (たぶん 6 ch 環境の PC ならできる気がします) ので、これを 2 ch に落とし込む必要があります。そうしないとグラフ (変換とか表示とかをつないだもの) が正常に完成せず、うまく再生すらできません。
まあそういうのって、全然ないので、自作しました。Monotor っていうプロジェクトの一部となっています。
これを使えば再生時リアルタイムに 2 ch に落としてくれるので、5.1 ch 環境でプレイしてるけど配信用に 2 ch に落とし込みたい、みたいな変態な人にはお勧めです。
2. 録画 (DirectShow)
録画に関してですが基本 PCM 音源なのでそのままで録画できます。フィルターかませる必要はありませんね。ちなみに自分の環境 (Intensity Shuttle for USB 3.0) では FL, FR, LFE, FC, BL, BR のような順番で並んでいました。もし 5.1 ch 取れる環境あるならほかのキャプボはどんな感じにならん出るのか報告いただければ嬉しいです。
この順番は後ほど重要です。
3. 変換 (ffmpeg)
音源の変換ですが、特に Splatoon の場合チャージャー使ってキルしたときの一番大事な SE (いやまあほかのシューターの発射音とかもそうなんだけど) はセンタースピーカーからしか流れないので、これを左右にミックスしなおすのが一番重要です。そこで
を使います。
まあそれを当てはめたバッチファイルあるんで使ってください。ファイルをドロップすれば自動で 2 ch 音源が出てきます (変換に時間はかかります)。
@echo off set ORIGINAL_FILEPATH=%~1 set OUTPUT_FILEPATH=%~d1%~p1%~n1.3.wav echo ffmpeg -i "%ORIGINAL_FILEPATH%" -ac 2 -af "pan=stereo| c0<0.5857864376269048*c0+0.4142135623730949*c3 | c1<0.5857864376269048*c1+0.4142135623730949*c3" "%OUTPUT_FILEPATH%" call ffmpeg -i "%ORIGINAL_FILEPATH%" -ac 2 -af "pan=stereo| c0<0.5857864376269048*c0+0.4142135623730949*c3 | c1<0.5857864376269048*c1+0.4142135623730949*c3" "%OUTPUT_FILEPATH%" pause
ちなみに -ac
は Audio Channel つまりチャネル数、-af
は Audio Filter つまりフィルター、という感じ。
それで filter の中身を見ていくとまず、stereo|
ってのがありますが、これはステレオで出します、ってこと。次に c0<
とありますがこれはチャンネル 0 番目を…で置き換えます、という意味。そのあとは計算式ですね。この場合、入力 c0 [FL], c1 [FR], c3 [FC] を使って出力 c0 [L], c1 [R] に変換するという感じですね。
計算式は括弧使わない展開した形で書けば大丈夫っぽいです。なので結構自由。
4. 編集 (AVIUtl)
いつも通り 2 ch の音源を編集する感じでおkですが、通常 AVI ファイルにある音源を使いますがこれをさっき作った wav にすればおk。wav と映像をグループ化するといつも通りのように使えますね!
まとめ
一番の肝はキャプチャー部分ですね。あかねキャプチャー2 は自由にフィルターを組み込むことができるのはでかいですが、ちょっと使い勝手が辛い部分がなんともなぁ、という感じ。自作キャプチャーソフトもちまちま作ってるけどいろいろ不具合に悩まされてたりするのでしばらくはあかねキャプチャー2 で運用しようかな、って思います。
ざっとそんな感じで。