以下是从MP4
视频中提取帧的代码。
ffmpeg -i above_marathon_250.mp4 images%03d.bmp
但相同的代码不适用于YUV
格式的视频。
有谁知道如何从YUV
格式的视频中提取帧?
答案 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
以外的任何其他格式。