adelayフィルタは音声のチャンネル毎に無音の挿入ができたが、このapadフィルタはまとめて最後に無音を挿入する。

音声の先頭に無音を挿入する adelay
映像の前後にフレームを挿入する tpad

基本コマンド

オプション無指定だと無限に無音が挿入されるので-t-shortestを併用する。
ffmpeg -i input -af "apad" -shortest -c:v copy output

音声の最後に10秒無音を挿入する。
ffmpeg -i input -af "apad=pad_dur=10" -c:v copy output

入力した音声を含めて5分(300秒)になるように無音を挿入する。
ffmpeg -i input -af "apad=whole_dur=300" -c:v copy output
ffmpeg -i input -af 'apad=whole_dur=00\:05\:00' -c:v copy output

音声の最後に48,000サンプル、無音を挿入する。
ffmpeg -i input -af "apad=pad_len=48000" -c:v copy output

公式ドキュメント:FFmpeg Filters Documentation : apad

Both whole and pad length are set, this is not possible

pad_len|pad_durwhole_len|whole_durを併用すると「Both whole and pad length are set, this is not possible」がでてエラーになる。そのほかにも以下のような時間指定でも同じエラーになる。10秒の音声ファイルに後ろ5秒の無音を挿入する。
ffmpeg -i 10s.wav -af "apad=whole_dur=00:15:00" 15s.wav
ffmpeg -i 10s.wav -af "apad=pad_dur=00:00:05:whole_dur=00:15:00" 15s.wav
ffmpeg -i 10s.wav -af "apad=pad_dur=00:00:05" 15s.wav

逆にこちらはエラーにならない。
ffmpeg -i 10s.wav -af "apad=whole_dur=15" 15s.wav
ffmpeg -i 10s.wav -af "apad=pad_dur=5:whole_dur=00:15:00" 15s.wav
ffmpeg -i 10s.wav -af "apad=pad_dur=5" 15s.wav

このエラーを直すには:をエスケープしなければならない。
ffmpeg -i 10s.wav -af "apad=whole_dur=00\\:15\\:00" 15s.wav
ffmpeg -i 10s.wav -af "apad=pad_dur=00\\:00\\:05:whole_dur=00\\:15\\:00" 15s.wav
ffmpeg -i 10s.wav -af "apad=pad_dur=00\\:00\\:05" 15s.wav

シングルクオートで挟んでいればエスケープは1つでよい。
ffmpeg -i 10s.wav -af 'apad=whole_dur=00\:15\:00' 15s.wav
ffmpeg -i 10s.wav -af 'apad=pad_dur=00\:00\:05:whole_dur=00\:15\:00' 15s.wav
ffmpeg -i 10s.wav -af 'apad=pad_dur=00\:00\:05' 15s.wav

オプション

音声時間よりも短い時間でwhole_len、whole_durを指定すると無音は挿入されない。

  • packet_size[int]
    パケットサイズの指定
    既定値:4096
    範囲:0 から INT_MAX まで
  • pad_len[int64]
    音声の最後に挿入されるパケット数
    既定値:-1(無限)
    範囲:1 から I64_MAX まで
  • whole_len[int64]
    無音を含めた音声全体のパケット数。pad_lenの方が優先される
    既定値:-1(無限)
    範囲:1 から I64_MAX まで
  • pad_dur[duration]
    音声の最後に挿入される時間
    既定値:0
  • whole_dur[duration]
    無音を含めた音声全体の時間。pad_durの方が優先される
    既定値:0

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)