個人的によく使うffmpeg設定のメモ(随時更新予定)
- 入出力ファイル設定
IVIDEO="Input.MP4"
ODIR="output"
OVIDEO="Output.MP4"
mkdir $ODIR
-
ビデオの変換(-intra:Iフレームのみ、-an:音無し、-pix_fmt yuv420p: MacのQuickTimeでも再生できるもの, -crf 1: 固定品質(数値が小さいと高品質))
ffmpeg -i $IVIDEO -an -intra -crf 1 -pix_fmt yuv420p $ODIR/$OVIDEO
-
高品質動画
ffmpeg -i $IVIDEO -an -vsync 0 -qscale:v 1 -qmin 1 -qmax 1 $ODIR/$OVIDEO
-
1秒間に3フレームの静止画("出力フォルダ/frame000001.jpg"など)を出力
ffmpeg -i $IVIDEO -r 3 $ODIR/frame%06d.jpg
-
10フレーム毎にフレームを静止画("出力フォルダ/frame000001.png"など)として取得
ffmpeg -i $IVIDEO -vf framestep=10 -vsync 0 $ODIR/frame%06d.png
-
特定の1フレームを出力(時刻0:0:0
hh:mm:ss[.xxx]
の形式で指定)
ffmpeg -i $IVIDEO -ss 0:0:0 -vframes 1 -qmin 1 -q 1 $ODIR/frame01.jpg
-
特定のフレームを出力(フレーム番号299-600)
ffmpeg -i $IVIDEO -vf trim=start_frame=299:end_frame=600,setpts=PTS-STARTPTS -vsync 0 $ODIR/frame%06d.png
-
高品質な静止画("出力フォルダ/frame000001.jpg"など)として10フレーム毎に出力
ffmpeg -i $IVIDEO -vf framestep=10 -vsync 0 -qmin 1 -q 1 $ODIR/frame%06d.jpg
-
解像度変更(8K出力)
ffmpeg -i $IVIDEO -vf scale=8192:-1 $ODIR/$OVIDEO