フェードイン・アウト
フェードインの場合は、例えば4秒間フェードさせると、
ffmpeg -i town.flac afade=t=in:st=0:d=4 town.mp3
t
でフェードのタイプを指定します。次のst
でフェードさせる秒数の位置を表すので、0で曲の先頭を指定します。その次のd
が区間で、これも単位は秒数です。
フェードアウトの場合、曲の長さが60秒で4秒間フェードさせるとすると、
ffmpeg -i town.flac afade=t=out:st=56:d=4 town.mp3
st
の項目には、曲が終わる秒数から4秒手前の位置を指定しています。
クロスフェード
-filter_complex
を使用します。4秒間フェードさせる場合は、
ffmpeg -i town.flac -i title.flac -filter_complex acrossfade=d=4 crossfade.mp3
d
で曲を交差させる区間を秒数で指定します。
3ファイル以上をクロスフェードさせる場合は、acrossfade
オプションを連続して適用する必要があります。
ffmpeg -i town.flac -i title.flac -i dungeon.flac -filter_complex "[0][1]acrossfade=d=4[middle];[middle][2]acrossfade=d=4[out]" -map [out] crossfade.mp3
このオプションは2つの入力を必要とするので、カンマではなくセミコロンで区切ります。
[0]
は、1番目の入力ファイルと、そのファイルの1番目のストリームを指定しており、[0:0]
の省略形です。同様に、[1]
で2番目の入力ファイルを指定し、これらをクロスフェードさせた出力を[middle]
と名付け、その次のフィルターの入力として渡しています。この[middle]
と、[2]
すなわち3番目の入力ファイルの、出力を[out]
と名付け、-map
を使って出力ファイルに振り分けています。これらを省略すると、
ffmpeg -i town.flac -i title.flac -i dungeon.flac -filter_complex "acrossfade=d=4[middle];[middle]acrossfade=d=4" crossfade.mp3
のように書くことも出来ます。
連結
ファイルを単純に結合させる場合は、-filter_complex
オプションのconcat
を使います。
ffmpeg -i town.flac -i title.flac -filter_complex concat=n=2:v=0:a=1 concat.mp3
n
は結合するファイルの数です。v
とa
はそれぞれ、動画と音声の出力ファイルの数で、上記の指定は、複数の入力ファイルを1つの音声ファイルに出力する例です。
URL: sac.ringil-music.com
環境: さくらのVPS・Centos7・Nginx・PHP-FPM