FFmpeg で個人的によく使うコマンドまとめ
公開:
更新:
目次
時間範囲で切り出し
ffmpeg -ss 00:01:45.200 -to 00:02:11.000 -i INPUT.mp4 -c copy OUTPUT.mp4
色補正
ffmpeg -i INPUT.MOV -vf "eq=brightness=0.05:saturation=1.5:contrast=2.5:gamma=0.9,colortemperature=temperature=6500" -c:a copy -movflags faststart OUTPUT.MOV
各フィルタの値範囲は以下の表の通りです。
下限 | 上限 | デフォルト | |
---|---|---|---|
brightness | -1.0 | 1.0 | 0.0 |
saturation | 0.0 | 3.0 | 1.0 |
contrast | -1000.0 | 1000.0 | 1.0 |
gamma | 0.1 | 10.0 | 1.0 |
アンシャープマスク
# 横窓サイズ:縦窓サイズ:強度
ffmpeg -i INPUT.mp4 -vf unsharp=3:3:1.5 -c:a copy -movflags faststart OUTPUT.mp4
フレーム補間
# 60 のところが出力フレームレート
ffmpeg -i INPUT.mp4 -vf "minterpolate=60:2:0:1:8:16:32:0:1:5" -c:a copy -movflags faststart OUTPUT.mp4
TS (Transport Stream) 動画の結合
ffmpeg -i INPUT.m3u8 -c copy -movflags faststart OUTPUT.mp4
このときの m3u8 ファイルは以下のようになっているべきです。
v1.ts
v2.ts
...
concat
プロトコルを使う場合
ffmpeg -i "concat:00.ts|01.ts|02.ts|03.ts|04.ts|05.ts|06.ts|07.ts|08.ts|09.ts" -c copy -movflags faststart OUTPUT.mp4
mp4 を concat
する場合、一旦 ts にしないと使えない場合があるので注意が必要です。
seq -w 0 10 | xargs -IXX ffmpeg -i XX.mp4 -c copy XX.ts
音声トラックの分離
ffmpeg -i INPUT.mp4 -vn -c:a copy OUTPUT.m4a
連番静止画取得
mkdir imgs
ffmpeg -i INPUT.mp4 -f image2 imgs/%08d.png
連番静止画から動画化
ffmpeg -i AUDIO.wav -framerate 60 -i imgs/%08d.png -c:v libaom-av1 -vf format=yuv444p -g 120 -crf 25 -cpu-used 5 -c:a libopus -b:a 128k OUTPUT.mkv
VP9 へエンコード
Google のチュートリアルのままを掲載しています。ポータビリティを重視して Matroska コンテナを使います。
ffmpeg -i INPUT.mp4 -c:v libvpx-vp9 -c:a libopus OUTPUT.mkv
以下は HTML 埋め込み用にもう少し詰めるバージョン。
ffmpeg -i INPUT.mp4 -c:v libvpx-vp9 -b:v 1500K -frame-parallel 0 -tile-rows 0 -tile-columns 0 -c:a libopus -b:a 96k OUTPUT.webm
実際に埋め込んでみた例です。
H.265 へエンコード
正直 H.265 はほとんど使っていません。
ffmpeg -i INPUT.mp4 -c:a copy -c:v libx265 -preset slower -crf 18 -movflags faststart OUTPUT.mkv
AV1 へエンコード
アニメ想定のセッティングです。遅いです。
ffmpeg -i INPUT.avi -c:v libaom-av1 -frame-parallel 0 -tile-rows 0 -tile-columns 0 -g 120 -cpu-used 5 -crf 27 -c:a libopus -b:a 128k OUTPUT.mkv
スクリーンキャプチャ用 GIF をつくる
パレットを最適化して、綺麗な GIF をつくります。-r
はフレームレートを指定するオプションです。
ffmpeg -i INPUT.mp4 -r 10 -filter_complex "[0:v] split [a][b];[a] palettegen [p];[b][p] paletteuse" OUTPUT.gif
GIF, APNG などのアニメーション画像から動画ファイルを起こす
-pix_fmt yuv420p
等の画素形式指定が必要です。フレームレートオプション -r
では、再生速度を変えられない点に注意。
ffmpeg -i INPUT.png -pix_fmt yuv420p -movflags faststart OUTPUT.mp4
ストリームをテスト(破損チェック)
エラーがあれば、STDERR に出力されます。
ffmpeg -v error -i INPUT.mp4 -f null -