如何提取第一帧并使用ffmpeg还原为图像?

时间:2010-12-13 02:38:16

标签: ffmpeg flv

有人知道这个伎俩吗?

如何安装ffmpeg? yum install mpeg仅返回此内容:

======================================================================================== Matched: mpeg ========================================================================================
libiec61883.i386 : Streaming library for IEEE1394
libiec61883.x86_64 : Streaming library for IEEE1394
qffmpeg-devel.i386 : Development package for qffmpeg
qffmpeg-devel.x86_64 : Development package for qffmpeg
qffmpeg-libs.i386 : Libraries for qffmpeg
qffmpeg-libs.x86_64 : Libraries for qffmpeg

4 个答案:

答案 0 :(得分:53)

这是在联机帮助页上:

* You can extract images from a video, or create a video from many
       images:

       For extracting images from a video:

               ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg

       This will extract one video frame per second from the video and will
       output them in files named foo-001.jpeg, foo-002.jpeg, etc. Images
       will be rescaled to fit the new WxH values.

       If you want to extract just a limited number of frames, you can use
       the above command in combination with the -vframes or -t option, or in
       combination with -ss to start extracting from a certain point in time.

但当然你必须先安装它。我在Debian上,不使用yum。

[更新其他问题]


i=1
for avi in *.avi; do
 ffmpeg -i $avi -vframes 1 -f image2 /tmp/$i.jpg; i=$((i+1))
done

经过测试和工作。

[更新另一个问题...]


for flv in *.flv; do
 ffmpeg -i $flv -vframes 1 -f image2 ${flv%%.flv}.jpg
done

答案 1 :(得分:27)

我从各种答案中拼出了这个命令行,这对我来说非常有用,可以从视频中获取绝对第一帧。我用它来保存视频的缩略图截图。

ffmpeg -i inputfile.mkv -vf "select=eq(n\,0)" -q:v 3 output_image.jpg

说明:

select filter -vf "select=eq(n\,0)"仅选择第0帧。

-q:v允许您将输出jpeg的质量设置在1到31之间。降低数量,提高质量。 2 - 5效果很好,我使用3。

注意:这会为您提供与视频尺寸相同的图片。要获得缩略图,您可以使用缩放过滤器来获得适合您所需宽度的缩略图,如下所示:

ffmpeg -i inputfile.mkv -vf "select=eq(n\,0)" -vf scale=320:-2 -q:v 3 output_image.jpg

上面的命令会给你一个缩放jpeg,它将缩放为匹配宽度为320,并计算高度以匹配宽高比。

答案 2 :(得分:2)

一个对我有用的简单解决方案是

ffmpeg -i <input> -vframes 1 <output>.jpeg

请注意,我确实收到一条错误消息:“ [swscaler @ 0x111652000]已弃用的像素格式,请确保您正确设置了范围”,但根据一些阅读(例如,https://stackoverflow.com/a/43038480/1241736),可以安全地忽略该错误

答案 3 :(得分:2)

这对我有用

ffmpeg -i sample-mp4-file.mp4 -ss 1  -vframes 1 output.jpg