動画の音声を処理する
映像には問題がなく、音声だけを改善したい場合の実践ガイドです。動画から取り出すデータ、 出力されるファイル、処理後の音声を映像と組み合わせ直す方法を説明します。 ファイルを開けるかどうかを確認したい場合は、 先に動画のノイズを除去するを見てください。
読み込むのは音声だけ
ブラウザが端末上のファイルを直接開き、コンテナから音声を取り出します。映像トラックはデコードも 変更もアップロードもされません。音声もアップロードされず、処理待ちのキューや完了通知メールも ありません。
MP4 と MOV では、コンテナのインデックスを参照し、必要な区間のデータだけを読み込みます。そのため、 2 GB のファイル全体がメモリに展開されることはありません。元のファイルは読み取り専用で開かれ、 変更されずに残ります。
出力形式
出力は 48 kHz、16 ビット、モノラルの WAV です。音声のみで、30 秒あたり約 2.9 MB になります。 次の 2 点に注意してください。
- **モノラルになります。**モデルが 1 チャンネル専用であるため、処理前にすべての音声を 1 チャンネルへ まとめます。 カメラがステレオペアで録っていた場合、あるいはガンマイクとピンマイクが別チャンネルだった場合、 それらは 1 チャンネルにミックスされます。
- **元の音声と音量をそろえていません。**音量の正規化は行いません。サンプルでは処理後の音声が 元より約 2 LU 小さくなりました。レベル調整はこの工程のあとに行ってください。
映像と組み合わせ直す
結果カードにはファイル全体を示すバーがあり、処理した 30 秒の位置と開始タイムコードが表示されます。 表示例は 1:14 から 30 秒のプレビュー です。同じ区間を動画から 切り出し、処理後の音声と多重化します。
ffmpeg -ss 1:14 -t 30 \
-i original.mp4 -i cleaned.wav \
-map 0:v -map 1:a \
-c:v libx264 -crf 18 \
-c:a aac -b:a 192k \
-shortest check.mp4
このコマンドでは、映像を意図的に再エンコードしています。-ss を入力より前に置いた状態で
ストリームコピーすると、最も近いキーフレームからしか開始できず、映像と音声が最大 1 秒ずれるためです。
これだけずれると、リップシンクを正しく確認できません。
編集ソフトを使う場合、手順はもっと簡単です。WAV を読み込み、表示されたタイムコードに合わせて 新しい音声トラックへ配置します。元の音声をミュートし、映像と合わせて確認してください。
ファイル全体を処理する
通常は手作業で組み合わせ直す必要はありません。結果カードからファイル全体を処理すると、MP4 を 直接ダウンロードできます。映像データは変更せずにコピーされ、音声だけが差し替わります。下のコマンドは、 多重化を自分で制御したい場合や、ブラウザが AAC をエンコードできず音声だけが出力された場合に使えます。 切り出し処理がないため、映像は再エンコードせずにコピーします。
ffmpeg -i original.mp4 -i cleaned.wav \
-map 0:v -map 1:a \
-c:v copy -c:a aac -b:a 192k \
output.mp4
どちらのコマンドもお使いの端末上で実行され、このサイトには何も送信されません。元の音声が ステレオでも、差し替える音声はモノラルです。納品形式でステレオ 2 チャンネルが必要な場合は、 モノラル音声を左右の 2 チャンネルに複製してください。