合成音声で動画を作る時は、音声のタイミングを調整してからYouTubeにアップしたほうが良いんじゃないかなと調べてみたら「マルチトラック」という方法で録画したらできそうだとわかりました。
OBSでマルチトラック録画
マルチトラックについて
イメージ的には、一度の録画で作るひとつの動画ファイルの中に、映像と複数の音声を詰め込むような方法です。
こうしておけば、動画部分とゲームの音楽や音声を同時に分けて録音できるので、後で調整して編集をすることもできます。
OBSの設定の前に、Cevioの音声出力先を変更
OBSの設定の前に、経路がわかりやすいのと、スピーカーから出た音声をマイクが拾わないように、Cevioの音声出力を【SPDIF Out】に設定しました。
OBSの設定
オーディオの詳細プロパティ
音声ミキサーの歯車部分でマウスの右クリックで、オーディオの詳細プロパティを選択。
- MonsterX3A : ゲームキャプチャの音声です。 トラック 1, 2 にチェックを入れます。
- デスクトップ音声: 合成音声の出力です。 トラック 1, 3 にチェックを入れます。
こうすることで、
- トラック1: ゲームの音声と合成音声が合成された音声
- トラック2: ゲームの音声 のみ
- トラック3: 合成音声 のみ
というふうに音声を分けて記録することができます。
設定 – 音声 – デバイス
デスクトップ音声に SPDIF Out (Cevioで出力に設定したもの)を指定して、残りは全部無効にしました。
設定 – 出力 – 出力モード
設定 → 出力 を選択し 出力モード を基本から詳細に変更します。
設定 – 出力 – 配信
設定 – 出力 – 録画
動画フォーマットは mkv に設定します。
マルチトラックで録画する場合、フォーマットは mkv が無難だと思います。
音声トラックは、 1, 2, 3 にチェックを入れます。
オーディオの詳細プロパティで設定したトラックで音声が記録されます。
録画する
字幕はAviUtlで入れる予定なので、OBSの字幕は非表示にして録画しました。
録画後の編集作業
字幕用データを、ゆかりネットコネクターから出力する
録画後に、ゆかりネットコネクター の AviUtl字幕出力で exo ファイルを作成しました。
字幕データをAviUtlで読み込んで編集できるすぐれものです。
ffmpeg を使って音声トラックを分離
録画したmkvファイルから ffmpeg を使って動画と音声トラック3つを分離します。
- Layer01: 動画ファイル(音声なし)
- Layer02: ゲームの音声と合成音声が合成された音声
- Layer03: ゲームの音声 のみ
- Layer04: 合成音声 のみ
ffmpeg について
画像や動画や音声ファイルを扱うのなら、使い方を知っておいて損はないツールだと思います。
Windows 10で動作するexeファイルは、こちらから※ダウンロードできます。
※WindowsとmacOSのffmpegを配布してくださっていたffmpeg.zeranoe.comさんが、2020年9月18日に閉鎖してしまったのでリンク先を変更しています。
set INPUT=%~f1 set OUTPUT=%~n1 %~d0 cd %~d0%~p0 ffmpeg.exe -i "%INPUT%" -map 0:0 -vcodec copy "%OUTPUT%_Layer01.mp4" -map 0:1 -vn -acodec copy "%OUTPUT%_Layer02.m4a" -map 0:2 -vn -acodec copy "%OUTPUT%_Layer03.m4a" -map 0:3 -vn -acodec copy "%OUTPUT%_Layer04.m4a" pause
こんな感じのbatファイルを作って分離しました。
AviUtlで編集
これらのファイルを AviUtlに読み込んで編集すると、こんな感じになります。
ゲームと合成音声がミックスされたLayer2を使わず、合成音声のタイミングを調整して字幕と合わせた動画がこちらになります。
終わりに
音声を分けて録画しておけば、後々有効活用できそうだと思って実験してみました。
AviUtlのexoファイルは、テキストエディタで中を見ることができるので、ツールを作って加工すればもっと使いやすくなるかなと思ったりしています。
コメント