当我使用H264编码Rgb24帧时,我得到“输入宽度比步幅更大”... 顺便说一句,如果我给Yuv420p原始图像,ffmpeg sucussfully编码...
我想知道的是:
i)我们是否必须提供Yuv格式进行编码?不能给rgb帧编码h264? ii)如果我们能给出rgb框架,那么诀窍是什么?
答案 0 :(得分:0)
我知道这有点晚了(自2010年以来没有答案),听起来你需要(或需要)来调整图像数据的包装。
从下面的MSDN文章(我知道它是MSDN,但它对所涉及的概念的解释真的很好):
当视频图像存储在内存中时,内存缓冲区可能会 在每行像素后包含额外的填充字节。填充物 bytes会影响图像在内存中的存储方式,但不会影响图像的方式 显示图像。
步幅是内存中一行像素的字节数 内存中的下一行像素。 Stride也称为音高。如果 存在填充字节,步幅宽于宽度 图像,如下图所示。
查看您为图像宽度和图像步幅指定的内容。无论你为行提供什么数据都比你为步幅指定的位数多(我猜测宽度也是如此,如果它们是一致的话)。