Video FFMPEG-Can';t使用RGB24像素格式从一系列图像创建视频 目标
我正在编写一个小的概念验证应用程序,以获取我从数码相机获取的一些原始图像数据(一系列RGB24图像),并将它们组合成一个简单的、无音频的视频文件Video FFMPEG-Can';t使用RGB24像素格式从一系列图像创建视频 目标,video,ffmpeg,video-encoding,libavcodec,libav,Video,Ffmpeg,Video Encoding,Libavcodec,Libav,我正在编写一个小的概念验证应用程序,以获取我从数码相机获取的一些原始图像数据(一系列RGB24图像),并将它们组合成一个简单的、无音频的视频文件 工作至今 初始化代码如下所示: 非常干燥。但是,当我尝试注册编解码器时,它失败了,并显示了我的自定义错误消息,其中一条消息直接从FFMPEG库中以漂亮的颜色编码格式丢弃: 我可以很容易地确认像素格式是有效的: 我还可以确认我尝试使用的视频编解码器对编码有效 问题: 为什么不支持这种像素格式?当与其他实用程序(如MATLAB、Open
工作至今 初始化代码如下所示:
非常干燥。但是,当我尝试注册编解码器时,它失败了,并显示了我的自定义错误消息,其中一条消息直接从FFMPEG库中以漂亮的颜色编码格式丢弃:
我可以很容易地确认像素格式是有效的:
我还可以确认我尝试使用的视频编解码器对编码有效
问题:
为什么不支持这种像素格式?当与其他实用程序(如MATLAB、OpenCV、FreeImage等)一起使用时,这似乎是一个常见的问题。FFMPEG/AVcodec中是否有一组选项或函数可以解决此问题?如果可能的话,我希望避免手动将图像转换为不同的颜色空间,因此我不会先将RGB24图像转换为新格式,然后用它编码视频帧,从而消耗CPU周期
谢谢。如果运行
ffmpeg-h encoder=mjpeg
,您将看到
...
Encoder mjpeg [MJPEG (Motion JPEG)]:
General capabilities: threads
Threading capabilities: frame and slice
Supported pixel formats: yuvj420p yuvj422p yuvj444p
JPEG使用编码为YUV的像素qtrle
、png
或libx264rgb
等将接受RGB,但应另存为.mov
-Quicktime。似乎我误解了命令行中的“支持的格式”。我将(通过额外的步骤)重新转换为支持的格式。谢谢
[mjpeg @ 0x650d00] Specified pixel format rgb24 is invalid or not supported
Codec not available.
Pixel formats:
I.... = Supported Input format for conversion
.O... = Supported Output format for conversion
..H.. = Hardware accelerated format
...P. = Paletted format
....B = Bitstream format
2>&1 ffmpeg -pix_fmts | grep -i -e rgb24 -e flags
FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL
IO... rgb24 3 24
Codecs:
D..... = Decoding supported
.E.... = Encoding supported
..V... = Video codec
..A... = Audio codec
..S... = Subtitle codec
...I.. = Intra frame-only codec
....L. = Lossy compression
.....S = Lossless compression
2>&1 ffmpeg -codecs | grep -i mjpeg
DEVIL. mjpeg Motion JPEG
...
Encoder mjpeg [MJPEG (Motion JPEG)]:
General capabilities: threads
Threading capabilities: frame and slice
Supported pixel formats: yuvj420p yuvj422p yuvj444p