问题描述
我正在检查从Android设备录制的.mp4视频文件中包含的解码器配置记录.某些设备在解码器配置记录中写入了奇怪或不正确的参数.
I am inspecting decoder configuration record contained in .mp4 video file recorded from Android devices. Some devices have strange or incorrect parameters written in decoder configuration record.
这是来自Galaxy Player 4.0的示例,它是错误的:
Here is sample from Galaxy Player 4.0 which is incorrect:
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是最高值.
AVCLevelIndication == 242
is wrong because standard states 51 is the highest value.
AVCProfileIndication
应该位于(66,77,88,100,120,..)
AVCProfileIndication
should be in (66, 77, 88, 100, 120, ..)
profile_compatibility
称为constraint_set
?_flag
s,并且保留了2个最低有效位,并设置为等于0
profile_compatibility
is called constraint_set
?_flag
s and 2 least significant bits are reserved and seposed to be equal to 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
如何从profile_idc
和level_idc
推导出AVCLevelIndication
和AVCProfileIndication
?
是否可以通过将它们与SPS
参数进行比较来检查或修复错误的参数?
Is there a way to check or possibly fix wrong parameters by comparing them to SPS
parameters ?
推荐答案
level_idc
是10 * level
.也就是说,如果您使用级别3.1
,它将是31
.
level_idc
is 10 * level
. i.e. if you're using level 3.1
, it will be 31
.
profile_idc
在ISO/IEC 14496-10
的附件A中指定.例如,基准配置文件为66
,主配置文件为77
,扩展配置文件为88
.
profile_idc
is specified in Annex A of ISO/IEC 14496-10
. Baseline profile is 66
, Main Profile is 77
and Extended Profile is 88
for example.
此外,您可以分别在7.3.2.1节和7.3.2.2节中看到SPS RBSP和PPS RBSP的语法.注意ue(x)
和se(x)
表示无符号指数golomb编码和有符号指数golomb编码.
Additionally, you can see the syntax for the SPS RBSP and PPS RBSP in section 7.3.2.1 and 7.3.2.2 respectively. Note ue(x)
and se(x)
indicate unsigned exponential golomb coding and signed exponential golomb coding.
抱歉. AVCProfileIndication
和AVCLevelIndication
应该与profile_idc
和level_idc
这篇关于来自.mp4的H.264解码器配置记录的格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!