ffmpegコマンド集
code:bash
# 音量3倍
ffmpeg -i input.mp4 -vcodec copy -af "volume=3.0" output.mp4
# 再生速度2倍
ffmpeg -i input.mp4 -vf setpts=PTS/2.0 -af atempo=2.0 output.mp4
# 同3倍
ffmpeg -i input.mp4 -vf setpts=PTS/3.0 -af atempo=3.0 output.mp4
# 解像度変更
ffmpeg -i input.mp4 -s 1280x720 output.mp4
# fps変更
ffmpeg -i input.mp4 -r 10 output.mp4
# 右に90度回転
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=-90 output.mp4
# 切り取り(再エンコードなし)
# -tを-toにすると、durationではなく終了時間になる。
ffmpeg -ss 00:01:38 -i input.mp4 -t 00:00:46 -c:v copy -c:a copy -async 1 output.mp4
# m3u8結合
ffmpeg -i index.m3u8 -movflags faststart -c copy -bsf:a aac_adtstoasc output.mp4
# 動画から画像 (highest quality)
ffmpeg -i input.mp4 -qscale:v 2 %04d.jpg
# -rでフレームレート指定
# 画像から動画
ffmpeg -i %04d.jpg output.mp4
# 補足:ファイル名を連番にするコマンド
ls | awk '{printf "mv %s %04d.jpg\n", $0, NR }' | sh
# mp4 to mp3 (再エンコードなし)
ffmpeg -i input.mp4 -vn -acodec copy output.mp4 & rename output.mp4 output.mp3
# vfr to cfr
ffmpeg -i input.mp4 -r 24 output.mp4
# H.264エンコードのオプション
-c:v libx264
# H.264のGPUエンコードのオプション(画質は悪くなるが早い)
-vcodec h264_nvenc
# 1フレームだけ取り出す
ffmpeg -ss 10 -i input.mp4 -frames:v 1 output.png
# cfrからvfr
ffmpeg -i a.mp4 -vf mpdecimate -vsync vfr out2.mp4
# 動画の音声を入れ替える
ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4
# headlessで音声を再生する
ffplay -i a.mp3 -autoexit -nodisp
# きれいなgif
ffmpeg -i input.mp4 -filter_complex "0:v split ab;a palettegen p;bp paletteuse=dither=none" output.gif 動画の音量を均一化する