如何使用ffmpeg从YUV视频中提取帧(或特定帧)

时间:2015-08-13 06:56:51

标签: video ffmpeg yuv

以下是从MP4视频中提取帧的代码。 ffmpeg -i above_marathon_250.mp4 images%03d.bmp 但相同的代码不适用于YUV格式的视频。 有谁知道如何从YUV格式的视频中提取帧?

3 个答案:

答案 0 :(得分:6)

它没有工作,因为yuv文件没有标题,所以ffmpeg不知道文件的大小/ pixfmt。您需要手动指定分辨率和像素值:

ffmpeg -video_size 1920x1080 -r 25 -pixel_format yuv422p -i file.yuv output-%d.png

然后调整尺寸/ pixfmt以匹配您的特定视频。

[edit]我还建议将来向超级用户发布此类问题,这与编程无关。

答案 1 :(得分:0)

ffmpeg.org中给出的命令是

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

这将从视频中每秒提取一个视频帧,并将其输出到名为foo-001.jpeg,foo-002.jpeg等的文件中。图像将重新调整以适应新的WxH值。

在您的情况下,您可以将上述命令修改为

ffmpeg -i inputfile.yuv -r 1 -f image2 images%05d.png 

其中r是帧率,应该设置为1,从yuv中提取单帧

答案 2 :(得分:0)

您必须指定视频大小-video_size和帧率-r,因此请使用以下脚本:

ffmpeg.exe -video_size 720x576 -r 25 -ss 00:00:00 -i video_input_720x576_25.yuv -vframes 1 -q:v 1 frame_output_720x576_25.jpg

如果您想指定输入视频格式包括-pixel_format yuv420p或除yuv420p以外的任何其他格式。