動画の音声を処理する

映像には問題がなく、音声だけを改善したい場合の実践ガイドです。動画から取り出すデータ、 出力されるファイル、処理後の音声を映像と組み合わせ直す方法を説明します。 ファイルを開けるかどうかを確認したい場合は、 先に動画のノイズを除去するを見てください。

読み込むのは音声だけ

ブラウザが端末上のファイルを直接開き、コンテナから音声を取り出します。映像トラックはデコードも 変更もアップロードもされません。音声もアップロードされず、処理待ちのキューや完了通知メールも ありません。

MP4 と MOV では、コンテナのインデックスを参照し、必要な区間のデータだけを読み込みます。そのため、 2 GB のファイル全体がメモリに展開されることはありません。元のファイルは読み取り専用で開かれ、 変更されずに残ります。

出力形式

出力は 48 kHz、16 ビット、モノラルの WAV です。音声のみで、30 秒あたり約 2.9 MB になります。 次の 2 点に注意してください。

映像と組み合わせ直す

結果カードにはファイル全体を示すバーがあり、処理した 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 チャンネルに複製してください。