众所周知,视频就是由一组连续的图片和音频组成,很多需求是将视频的第一帧图片作为视频封面,最近做的项目是每隔十秒截取一张图片,依旧是采用ffmpeg,不得不说ffmpeg这个工具真的很强大,唯一的缺点就是太耗费cpu了吧,废话不多说了,上代码。
截取视频图片
隔十秒抽取一张图片
ffmpeg -i test.mp4 -q:v 2 -vf "select=between(n\,0\,24000)*not(mod(n\,240))" -vsync 0 test-%d.jpg
- ffmpeg是ffmpeg可执行文件,使用时加入路径(免安装版)
- -q:v 2 是视频质量,2是最高质量
- select=between(n\,0\,24000)*not(mod(n,240)) ,between表示从0帧开始,到24000帧结束,如果你的视频是24帧每秒,那么就是1000秒,not(mod(n,240),not标识,每隔240帧截取一张图片,也就是10秒截取一张图片
每隔一秒抽取一张图片
ffmpeg -i test.mp4 -q:v 2 -vf -r 1 -vsync 0 test-%d.jpg
- -r 代表每秒从图片中抽取几张图片
截取指定秒数的视频
ffmpeg -i test.mp4 -q:v 2 -ss 1 -vsync 0 test.jpg
- -ss 代表秒数, 也可以通过HH:mm:ss来设置