はじめに
- ffmpegを使って、mp4の音声をnormalizeしよう.
- 音声だけならSoxで処理すれば良い.
Soxのことなら以下のサイトが綺麗にまとめているので、参考にしてください.
SoXチートシート - コマンドラインで音声編集
処理手順
以下の手順で進めていきます.
- ffmpegをインストール
- normalize処理
今回試した環境は以下の通りです.
OS: Ubuntu 18.04 LTS
CPU: i3-4130 3.40GHz
メモリ: 16GB
1. ffmpegをインストール
以下のコードを実行してffmpegをインストールしてください.
※Ubuntu18.04にffmpegをインストールするを参考にしています.
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install ffmpeg
2. normalize処理
normalize処理をする前に、今回使用する動画の拡張子と音声のサンプリング数とチャンネルを以下に示します.
- 拡張子:mp4
- サンプリング数:48000Hz
- チャンネル:2(ステレオ)
適当に4種類くらいコードを記しておきます.
※以下の2つは適宜変更してください.
- input.mp4: 入力する動画(適宜指定)
- output.mp4: 出力される動画(任意の名前)
単純にnormalizeするとき
$ ffmpeg -i input.mp4 -filter:a loudnorm output.mp4
チャンネル変更(2⇒1)&normalizeするとき
$ ffmpeg -i input.mp4 -filter:a loudnorm -ac 1 output.mp4
サンプリング数変更(48000⇒16000)&normalizeするとき
$ ffmpeg -i input.mp4 -filter:a loudnorm -ar 16000 output.mp4
よくばりセット(上記3つをまとめたもの)
$ ffmpeg -i input.mp4 -filter:a loudnorm -ac 1 -ar 16000 output.mp4
より詳しく知りたい人は以下の2つを参考にしてください.
Audio Volume Manipulation
無償のFFmpegでWavファイルの変換(Wavに変換)
まとめ
- ffmpegで動画の音声をnormalizeした.
- ffmpegは色々な拡張子に対応しているのでとても便利.