0

我使用 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.

4

1 回答 1

1

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

于 2017-03-15T11:58:39.900 回答