我有一个YUV文件,我希望以BMP文件的形式获取每个帧,如何通过这样做?我有FFMPEG和MPlayer。
答案 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文件的分辨率。