« ^ »

ffmpegで無音のmp3ファイルを生成する

所要時間: 約 2分

ffmpegを用いて無音のmp3ファイルを生成する。

ffmpeg -f lavfi -i anullsrc=r=44100:cl=mono -t <seconds> -aq 9 -c:a libmp3lame out.mp3

入力フォーマット: lavfi

-f では入力フォーマットを指定する。 通常入力フォーマットは拡張子から判断したものが使われる。 例えばinput.mp4の場合、MP4形式となる。

今回は入力を anullsrc にしたいため、INPUT仮想デバイスである lavfi を指定する。

どのような入力にするかは`-i`で指定する。

Libavfilter input virtual device.

This input device reads data from the open output pads of a libavfilter filtergraph.

For each filtergraph open output, the input device will create a corresponding stream which is mapped to the generated output. Currently only video data is supported. The filtergraph is specified through the option graph.

https://ffmpeg.org/ffmpeg-devices.html#lavfi より引用

入力: anullsrc=r=441100:cl=mono

-i では入力を指定する。通常ファイルなどを指定するが、今回は無音のファイルを作成したい。そのため特に入力はない。 INPUT仮想デバイスをフォーマットに指定したため、そのフォーマットとして処理できる入力値を指定する。

anullsrc はNULLオーディオソースのことを表している1r=441100 はサンプルレート、 cl=mono はチャンネルレイアウトとしてモノラルを指定している。

秒数: -t <DURATION>

ここで指定した秒数をレコード/変換する。 例えば3秒であれば -t 3 と指定する。

オーディオクオリティ: -aq <QUALITY>

クオリティの指定。

オーディオエンコーダの指定: -c:a libmp3lame

-c はエンコーダ/デコーダを指定する。 -c:a ならオーディオ、 -c:v ならビデオとなる。 無音の音声ファイルの場合ビデオは必要ないので -c:a libmp3lame でオーディオエンコーダのみ指定する。

脚注


1

anullsrcの詳しい説明は公式のドキュメントを参照するとよい。https://ffmpeg.org/ffmpeg-filters.html#anullsrc