Video 如何从YUV文件中提取帧?

Video 如何从YUV文件中提取帧?,video,ffmpeg,format,yuv,mplayer,Video,Ffmpeg,Format,Yuv,Mplayer,我有一个YUV文件,我想以BMP文件的形式获得每个帧,如何进行此操作?我有FFMPEG和MPlayer可供使用。我建议您首先使用此代码将.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图像%03d.bmp 这会奏效的

我有一个YUV文件,我想以BMP文件的形式获得每个帧,如何进行此操作?我有FFMPEG和MPlayer可供使用。

我建议您首先使用此代码将.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图像%03d.bmp

这会奏效的

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

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

图像%03d.bmp作为输出提供。这意味着输出文件将保存为image001.bmp、image002.bmp

或者仅将图像%d.bmp输出为image1.bmo、image2.bmp等


希望这有帮助

您可以使用以下命令:

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

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

在第一阶段,是否可以使用ffmpeg将yuv转换为bmp?我的意思是
ffmpeg-I input.yuv图像%03d.bmp
不起作用吗?