1 截图
ffmpeg -i test.mp4 -y -f mjpeg -ss 3 -t 1 test1.jpg
ffmpeg –ss 10000 –i test.mp4 –y –f image2 –t 1 test_10000.jpg
ffmpeg -i test.mp4 -y -f image2 -ss 3 -vframes 1 test1.jpg
ffmpeg –ss 10000 –i test.mp4 –y –f image2 –s 360*288 –t 1 test_10000.jpg
批量截图(从 x 时到 y 时,每隔 z 秒一次截图)
Ffmpeg –ss 100 –t 120 –I test.mp4 –f image2 –vf fps=fps=1 test%d.jpg
修改 fps 的值即可修改截图频率
例如每隔 10 秒截一张图
Ffmpeg –ss 100 –t 120 –I test.mp4 –f image2 –vf fps=fps=1/10 test%d.jpg
参考:http://blog.csdn.net/doublefi123/article/details/24325159
-i:表示导入视频
-y:表示如果有重名文件就覆盖
-f:强制使用后面的格式
-s:指定截图的大小,注意不能放在-i(引入文件)前,否则会有 Option video_size not
found 的错误
-vf fps 滤镜
-t:设置记录的时长,后面跟秒数(100),或者写 HH:mm:SS 格式的时间。
-ss:要跳转到的时间,后面跟秒数,或者写 HH:mm:SS 格式的时间。
在要跳转的时间比较靠后时,要把-ss 参数放在前面,会执行的更快。例如:
ffmpeg -ss 00:50:00 -i RevolutionOS.rmvb sample.jpg -r 1 -vframes 1 -an -vcodec
mjpeg
表明在 50 分钟处截图。
可能是 ffmpeg 看到第一个参数为 -ss 的时候,马上跳转到时间线为 50 分钟处然后再打开视频
文件进行处理,而如果最后看到的参数是-ss,先打开视频,然后慢慢往后遍历,直到遍历到时
间为 50 分钟处,通过观察 ffmpeg 的输出发现,实际处理的时候几乎就是这样。