给定一个特定的帧我需要使用ffmpeg从视频中提取图像(缩略图)。
E.g。我能做到:
ffmpeg -i test.mp4 -ss 00:01:14.35 -vframes 1 out2.png
我可以从特定时间(00:01:14.35)提取图像,但我需要的是从特定帧中提取图像。
答案 0 :(得分:39)
要获得某些特定的框架,您应该使用过滤器选择。从视频中提取帧100的命令应如下所示:
ffmpeg -i in_video.avi -vf "select=gte(n\,100)" -vframes 1 out_img.png
答案 1 :(得分:4)
使用以下方法
ffmpeg -ss 00:10:20 -t 1 -s 400x300 -i <INPUT_FILE> -f mjpeg <OUTPUT_FILE>
-ss和后面的时间参数告诉ffmpeg您希望屏幕截图被捕获的位置。在这个例子中,ffmpeg将在10分20秒处进行射门。 -t告诉ffmpeg你只需要1次拍摄,-s是图片的大小,-f告诉它拍照(但不限于jpg)。 例如,在1小时,12分钟和30秒点生成Batman.avi的png屏幕截图:
ffmpeg -ss 01:12:30 -t 1 -s 400x300 -i Batman.avi -f mjpeg Batman.png
答案 2 :(得分:1)
或者只是
-vf "select=eq(n\,100)" 100.png
可以忽略-vframes
选项