这里是从一个MP4视频中提取帧的代码。
ffmpeg -i above_marathon_250.mp4 images%03d.bmp
但是,同样的代码对于YUV格式的视频不起作用。
有人知道如何从YUV格式的视频中提取帧吗?出现问题的原因是 yuv 文件没有头信息,所以 ffmpeg 不知道文件的大小/像素格式。您需要手动指定分辨率和像素格式:
ffmpeg -video_size 1920x1080 -r 25 -pixel_format yuv422p -i file.yuv output-%d.png
然后根据您的特定视频调整大小/像素格式。
[编辑] 我建议您将此类问题发布在超级用户的网站上,这与编程无关。
ffmpeg.org 给出的命令是:
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
ffmpeg -i inputfile.yuv -r 1 -f image2 images%05d.png
r是帧率,应设置为1,以从yuv中提取单个帧
r=1
设定为1。
ffmpeg -i inputfile.yuv -1 1 -f image2 images%05d.png
它无法工作。 - mrana[rawvideo @ 0x7fef6880da00] 找不到流0(视频:rawvideo(I420 / 0x30323449),yuv420p,-4 kb/s)的编解码器参数:未指定大小。请考虑增加“analyzeduration”和“probesize”选项的值_above_marathon_250.yuv:找不到编解码器参数 从'above_marathon_250.yuv'输入,格式为rawvideo: 时长:N/A,比特率:n/a 流#0:0:视频:rawvideo(I420 / 0x30323449),yuv420p,-4 kb/s,25 tbr,25 tbn,25 tbc 输出#0,image2,到'images%05d.png': 输出文件#0不包含任何流。
- mrana您需要指定视频大小-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
。