2017-08-16 176 views
0

我正在做一个视频流项目。 标准只提到使用用于视频格式如下:H.264视频格式(YUV420p vs YUV420sp)

终端必须通过默认支持H.264视频编解码器使用H.264 - 25帧/秒的 帧速率 - CIF(352×288)的格式 - 有效载荷类型(payload_type):98 - 时间戳频率(千赫):90

缺省情况下我的Android装置包以yuv420sp格式的数据。 当视频通过时,会出现绿色色调和轻微的失真。

进一步探索,似乎我应该使用YUV420P格式。

有人可以帮助教育我为什么H264本身没有定义实际的数据格式?这不是让开发人员解释的开放吗?或者我错过了什么?

+1

我投票结束这个问题作为题外话题,因为它属于图形堆栈交换:https://computergraphics.stackexchange.com/ –

回答

0

编解码器通常会支持不同的色彩空间 - YUV是一种颜色空间,就像RGB一样 - 是对像素颜色进行编码的一种方式。

编解码器实际上有许多不同的参数可以设置 - 尝试帮助使用它们通常定义配置文件,为我们提供关键参数的值。例如,HEVC编解码器(h.265)具有许多不同的配置文件。

您的观点基本上是正确的 - 有可能有一个设备支持h.264,但不支持您选择的特定参数。

+0

YUV或RGB不是色彩空间 - 它们是像素格式。建议601,709和2020是色彩空间。 –

0

H.264是“移动视频编码”的规范。标准描述了(压缩的)比特流的语法。

H.264没有描述供应商特定的编码器输入格式。 通常的做法是将编码器规格放大或放宽。