我正在检查从 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
?_flag
s 和 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
和怎么能从AVCLevelIndication
和AVCProfileIndication
推导profile_idc
出来level_idc
?
有没有办法通过将它们与参数进行比较来检查或可能修复错误的SPS
参数?