从.mp4获取的H.264解码器配置记录的格式

Ale*_*lex 2 mp4 codec h.264

我正在检查从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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

如何AVCLevelIndicationAVCProfileIndication从推导profile_idclevel_idc

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

jgh*_*jgh 5

level_idc10 * 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)指示无符号指数golomb编码和带符号指数golomb编码.

编辑:道歉.在AVCProfileIndicationAVCLevelIndication应该是相同的profile_idc,并level_idc