Формат конфигурационной записи декодера H. 264, взятой из файла. mp4
Я проверяю запись конфигурации декодера, содержащуюся в видеофайле. mp4, записанном с устройств Android. Некоторые устройства имеют странные или неправильные параметры, записанные в конфигурационной записи декодера.
Вот пример из 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
?1 ответ:
level_idc
есть10 * level
. то есть, если вы используете Уровень3.1
, он будет31
.
profile_idc
указывается в приложении а кISO/IEC 14496-10
. Например, базовый профиль -66
, основной профиль -77
и расширенный профиль -88
.Кроме того, вы можете увидеть синтаксис для SPS RBSP и PPS RBSP в разделе 7.3.2.1 и 7.3.2.2 соответственно. Примечание
ue(x)
иse(x)
указывают на беззнаковое экспоненциальное кодирование Голомба и знаковое экспоненциальное кодирование Голомба.Правка: мои извинения. The
AVCProfileIndication
иAVCLevelIndication
должно быть таким же, какprofile_idc
иlevel_idc