メモ:ffmpegで音声や静止画の抽出など

音声の抽出

オプション -vn で映像なしを指定。出力ファイル名でmp3を指定。

ffmpeg -i input.mp4 -vn output.mp3

音声の消去

逆に音声を消去するなら、オプション -an で音声なしを指定。

ffmpeg -i input.mp4 -an output.mp4

音声のフェードイン / フェードアウト

開始2秒でフェードイン。

ffmpeg -i input.mp4 -af "afade=t=in:st=0:d=2" -c:v copy output.mp4

開始xxx秒から2秒でフェードアウト

ffmpeg -i input.mp4 -af "afade=t=out:st=xxx:d=2" -c:v copy output.mp4

静止画の切り出し

input.mp4の10秒目から1枚画像を切り出す。

ffmpeg -ss 10 -i input.mp4 -vframes 1 -q:v 1 output.jpg

画像サイズも指定できる。オプション -f image2 は特に明示する必要はない。

ffmpeg -ss 10 -i input.mp4 -vframes 1 -q:v 1 -s 800x600 -f image2 output.jpg
  • ss:切り出しの開始位置。
  • t:切り出す範囲の時間。
  • vframes:切り出したい静止画の枚数。
  • r fps:1秒あたりの画像の枚数。
  • q:v:出力画像の品質。1~5(数値が小さいほど高画質)
  • s:静止画の横幅x高さ。
  • f image2:画像として出力。

動画の回転

反時計回りに90度回転。

 ffmpeg -i input.mp4 -vf transpose=2 -metadata:s:v:0 rotate=0 output.mp4

時計回りに90度回転。

 ffmpeg -i input.mp4 -vf transpose=2 -metadata:s:v:0 rotate=0 output.mp4

倍速

1.5倍速にする。(音声なし動画の場合)

ffmpeg -i input.mp4 -vf setpts=PTS/1.5 output.mp4

1.5倍速にする。(音声のみの場合)

ffmpeg -i input.mp3 -af atempo=1.5 output.mp3

1.5倍速にする。(動画+音声の場合)

ffmpeg -i input.mp4 -vf setpts=PTS/1.5 -af atempo=1.5 output.mp4

または

ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=PTS/1.5[v];[0:a]atempo=1.5[a]" -map "[v]" -map "[a]" output.mp4

色調補正

カラーバランス。各チャンネル(r, g, b)に対して、s(暗部), m(中間部), h(名部) の補正値を -1.0 〜 1.0 で指定する。

ffmpeg -i input.mp4 -vf "colorbalance=rs=0:rm=0:rh=0.125" output.mp4

明度を指定する。(-1.0 ~ 1.0)

ffmpeg -i input.mp4 -vf "eq=brightness=0.1" output.mp4

同様に、

  • コントラスト : contrast (0.0 ~ 2.0)
  • 鮮やかさ : saturation (0.0 ~ 3.0)
  • ガンマ : gamma (0.1 ~ 10.0)


【参考】