2

我正在检查从 Android 设备录制的 .mp4 视频文件中包含的解码器配置记录。某些设备在解码器配置记录中写入了奇怪或不正确的参数。

这是来自 Galaxy Player 4.0 的示例,不正确:

DecoderConfigurationRecord: 010283f2ffe100086742000de90283f201000568ce010f20
       pictureParameterSetNALUnits : 68ce010f20
       AVCLevelIndication : 242
       AVCProfileIndication : 2
       sequenceParameterSetNALUnits : 6742000de90283f2
       lengthSizeMinusOne : 3
       configurationVersion : 1
       profile_compatibility : 131
       profile_idc : 103
       constraint_set : 16
       level_idc : 0

AVCLevelIndication == 242是错误的,因为标准状态 51 是最高值。

AVCProfileIndication应该在 (66, 77, 88, 100, 120, ..)

profile_compatibility被称为constraint_set_flags 和 2 个最低有效位被保留并设置为等于 0

它应该是这样的:

DecoderConfigurationRecord: 0142000dffe100086742000de90283f201000568ce010f20
       pictureParameterSetNALUnits : 68ce010f20
       AVCLevelIndication : 13
       AVCProfileIndication : 66
       sequenceParameterSetNALUnits : 6742000de90283f2
       lengthSizeMinusOne : 3
       configurationVersion : 1
       profile_compatibility : 0
       profile_idc : 103
       constraint_set : 16
       level_idc : 0

和怎么能从AVCLevelIndicationAVCProfileIndication推导profile_idc出来level_idc

有没有办法通过将它们与参数进行比较来检查或可能修复错误的SPS参数?

4

1 回答 1

6

level_idc10 * level。即,如果您使用的是 level 3.1,它将是31.

profile_idc在附录 A 中规定ISO/IEC 14496-10。例如,基线配置文件是66,主配置文件是77,扩展配置文件是88

此外,您可以分别在第 7.3.2.1 节和第 7.3.2.2 节中查看 SPS RBSP 和 PPS RBSP 的语法。注意ue(x)se(x)指出无符号指数哥伦布编码和有符号指数哥伦布编码。

编辑:我很抱歉。AVCProfileIndicationAVCLevelIndication应该与和profile_idc相同level_idc

于 2012-08-08T16:43:51.373 回答