X264流颜色移



i使用swscale x264将RGB图像序列编码为H264流。当输入图像中的RGB值(以红色为单位)都是(255, 0, 0)时,SWSCALE X264输出的YUV为(81, 90, 240)。通过使用SWSCALE,该YUV值可以转换回原始的RGB值。但是,当我使用Potplayer播放流时,有颜色变化。

我捕获了第一帧并将其保存为BMP文件。BMP文件中的RGB值为(255, 24, 0),其中绿色通道不是零。

如何解决此转换问题?

我通过使用sws_setColorspaceDetails更改ITU-601颜色空间来解决此问题。

这可能是由于多种原因。如果SWSSCALE将RGB转换为YUV444以外的任何内容,那么您将在子采样过程中失去一些色度精度。而且由于H264是有损的压缩,因此您也会在压缩过程中丢失一些信息。在分析每个阶段的输出之前,很难说出哪一个引起差异,但是看起来损失是由损失的编码造成的,而不是颜色转换。

相关内容

  • 没有找到相关文章

最新更新