FFmpeg常用命令
官网地址
常用命令
视频关键帧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