FFmpeg常用命令

官网地址

https://ffmpeg.org/

常用命令

视频关键帧IPB

帧率 每秒画面数量 0-30 一遍25

抽取I

表示关键帧,是最完整的帧画面,一般视频封面都选择I帧;

ffmpeg -i 666051400.mp4 -vf "select=eq(pict_type\,I)"  -vsync vfr -qscale:v 2 -f image2 ./%08d.jpg

抽取P

单预测帧,利用之前的I帧或P帧,采用运动预测的方式进行帧间预测编码;

ffmpeg -i 666051400.mp4 -vf "select=eq(pict_type\,P)"  -vsync vfr -qscale:v 2 -f image2 ./%08d.jpg

抽取B

双向预测帧,利用双向帧进行预测编码;

ffmpeg -i 666051400.mp4 -vf "select=eq(pict_type\,B)"  -vsync vfr -qscale:v 2 -f image2 ./%08d.jpg

均匀抽帧

-r 指定抽取的帧率,即从视频中每秒钟抽取图片的数量。1代表每秒抽取一帧。

ffmpeg -i 666051400.mp4 -r 20 -q:v 2 -f image2 %08d.000000.png

视频拆分帧

ffmpeg -i 666051400.mp4  %08d.000000.png

图片合并视频

-framerate 指定帧率

ffmpeg -f image2 -framerate 30 -i %08d.000000.jpg test.mp4

提取音频

ffmpeg -i 666051400.mp4 -vn -codec copy out.m4a

指定时间抽帧图片

ffmpeg -ss 00:00:30 -i 666051400.mp4 -vframes 1 0.png

视频截取

-ss 5指定从输入视频第1:05秒开始截取,-t 10指明最多截取10秒;

ffmpeg -i 666051400.mp4 -ss 1:05 -t 10 output.mp4

视频截取

把-ss 1:05放到-i前面,与原来的区别是,这样会先跳转到第1:05秒在开始解码输入视频,而原来的会从开始解码,只是丢弃掉前1:05秒的结果。

-c:v-c:a分别指定视频和音频的编码格式。 -c:v copy -c:a copy标示视频与音频的编码不发生改变,而是直接复制,这样会大大提升速度。

ffmpeg -ss 1:05 -i 666051400.mp4 -t 10 -c:v copy -c:a copy output.mp4