使用FFmpeg将原始RGB32文件转换为JPEG或PNG

时间:2017-09-19 22:06:41

标签: c++ command-line ffmpeg png jpeg

上下文

我使用C++程序以RGB32格式将原始字节写入文件(image.raw):

R G B A R G B A R G B A ...

我希望能够以某种方式查看它。我有图像的尺寸。

我的工具仅限于命令行命令(例如ffmpeg)。我已经访问了ffmpeg website获取了相关说明,但它更多地涉及将视频转换为图片。

问题

是否可以使用.jpeg将此文件转换为可查看的文件类型(例如.pngffmpeg)。如果是这样,我该怎么做?

如果不可能,有没有办法可以使用其他命令?

它仍然不可行,有什么方法可以操纵C ++程序中的RGB32字节,使其更适合而不使用使用外部库?我也不想像this那样自己编码.jpeg

2 个答案:

答案 0 :(得分:4)

使用rawvideo demuxer

ffmpeg -f rawvideo -pixel_format rgba -video_size 320x240 -i input.raw output.png

由于没有标题指定假定的视频参数,您必须指定它们,如上所示,以便能够正确解码数据。

请参阅ffmpeg -pix_fmts以获取支持的输入像素格式列表,这些格式可帮助您选择合适的-pixel_format

答案 1 :(得分:0)

从原始RGBA数据中获取一帧

ffmpeg -y -f rawvideo -pix_fmt rgba -ss 00:01 -r 1 -s 320x240 -i input.raw -frames:v 1 output.png

-y覆盖输出
-r个输入帧速率(位于-i之前)
-ss跳到这个时候
-frames:v输出的帧数