如何从YUV文件中提取帧?

时间:2014-07-16 03:12:53

标签: video ffmpeg format yuv mplayer

我有一个YUV文件,我希望以BMP文件的形式获取每个帧,如何通过这样做?我有FFMPEG和MPlayer。

2 个答案:

答案 0 :(得分:0)

我建议您先使用此代码将.yuv文件转换为.mp4格式。

ffmpeg -s 640x480 -i input.yuv -ss 00:00:00 -c:v libx264 -s:v 640x480 -preset slow -t 00:00:20 output.mp4

现在使用此代码

将output.mp4中的图像提取为.bmp格式

ffmpeg -i output.mp4 images%03d.bmp

这将有效。

对上述代码进行了一些解释,以便您可以根据需要更改代码。

-s 640x480设置mp4的分辨率(你可以将它改为你的要求)
-c:v libx264将编码器设置为在libx264中进行编码 -preset slow(这再次改为你的要求超快,中等等)
-t设置输出文件时间。在这里我设置了20秒。(记住格式是hh:mm:ss.ms,其中ms是毫秒)

图像%03d.bmp作为输出给出。所以这意味着输出文件将保存为image001.bmp,image002.bmp ......

或只是图像%d.bmp输出为image1.bmo,image2.bmp等

希望这会有所帮助

答案 1 :(得分:0)

您可以使用以下命令:

ffmpeg -s widthxheight -i input.yuv image%05d.bmp

请确保以像素为单位定义宽度和高度。例如,对于全高清,它将是-s 1920x1080,这是必需的,因为yuv格式不存储视频本身的任何元数据,并且您需要指定yuv文件的分辨率。