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

标签 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有关说明,但它更多地涉及将视频转换为图像。


问题

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

如果不可行,我可以使用其他命令吗?

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

最佳答案

使用 rawvideo demuxer :

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

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

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

关于c++ - 使用 FFmpeg 将原始 RGB32 文件转换为 JPEG 或 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46310408/

相关文章:

unix - 仅当从 cron 运行命令时出现语法错误

c# - 为什么 ffmpeg 在进程中随机停止?

vb.net - 我找不到任何方法在 vb.net 中使用 ffmpeg 将多个 jpg 或 png 转换为 gif

C++类成员变量重新赋值

python - 将命令行参数从文件夹脚本传递到文件脚本

C++ const重载赋值运算符机制

command-line - 无法在cmder中更改驱动器

IP 摄像头的 FFmpeg RTSP 问题

c++ - 为什么在 C++ 中允许删除空指针

c++ - 使用 QMathGL 连接信号和槽