rawvideo和rgb32值传递给FFmpeg

Bri*_*ian 11 video rgb ffmpeg image rgba

我正在使用此调用将文件转换为PNG格式:

ffmpeg.exe -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s <width>x<height> -i infile -f image2 -vcodec png out.png
Run Code Online (Sandbox Code Playgroud)

我想使用一个可以链接或编译成闭源​​商业产品的转换器,不像FFmpeg,所以我需要了解我传入的输入文件的格式.

那么,rawvideo意味着FFmpeg什么?

FFmpeg确定什么类型的原始格式输入文件具有或没有的rawvideo表示什么不同?

rgb32这里的意思是什么?

输入文件的大小(width * height * 8)略大于字节.

Mec*_*ail 10

通常,视频文件包含视频流(其格式使用指定-vcodec),嵌入在媒体容器中(例如mp4,mkv,wav等).该-f选项用于指定容器格式.-f rawvideo基本上是一个虚拟设置,告诉ffmpeg你的视频不在任何容器中.

-vcodec rawvideo表示容器内的视频数据未压缩.但是,有许多方法可以存储未压缩的视频,因此有必要指定该-pix_fmt选项.在您的情况下,-pix_fmt rgb32表示原始视频数据中的每个像素使用32位(红色,绿色和蓝色各1个字节,忽略其余字节).

有关选项含义的更多信息,请参阅ffmpeg文档.