Хочу настроить aac и h264 кодеки
Читаю https://tools.ietf.org/html/rfc3640#section-3.3.6
Настройка такая(5.1 channel AAC stream with a
sampling rate of 48 kHz)
streamtype=5;profile-level-id=16;mode=AAC-hbr;config=11B0;sizelength=13;indexlength=3;indexDeltaLength=3
Хочу понять как генерировать profile-level-id и config, для настройки профилей
написано что config это шестнадцатеричное число которое является AudioSpecificConfig в ISO/IEC 14496-3. Открываю http://read.pudn.com/downloads98/doc/comm/401153/14496/ISO_IEC_14496-3 Part 3...
Там поиском нахожу AudioSpecificConfig
Table 1.8 – Syntax of AudioSpecificConfig()
AudioSpecificConfig ()
{
audioObjectType; 5 bslbf
samplingFrequencyIndex; 4 bslbf
if ( samplingFrequencyIndex==0xf )
samplingFrequency; 24 uimsbf
channelConfiguration; 4 bslbf
if ( audioObjectType == 1 || audioObjectType == 2 ||
audioObjectType == 3 || audioObjectType == 4 ||
audioObjectType == 6 || audioObjectType == 7 )
GASpecificConfig();
if ( audioObjectType == 8 )
CelpSpecificConfig();
if ( audioObjectType == 9 )
HvxcSpecificConfig();
if ( audioObjectType == 12 )
TTSSpecificConfig();
if ( audioObjectType == 13 || audioObjectType == 14 ||
audioObjectType == 15 || audioObjectType==16)
StructuredAudioSpecificConfig();
if ( audioObjectType == 17 || audioObjectType == 19 ||
audioObjectType == 20 || audioObjectType == 21 ||
audioObjectType == 22 || audioObjectType == 23 )
GASpecificConfig();
if ( audioObjectType == 24)
ErrorResilientCelpSpecificConfig();
if ( audioObjectType == 25)
ErrorResilientHvxcSpecificConfig();
if ( audioObjectType == 26 || audioObjectType == 27)
ParametricSpecificConfig();
if ( audioObjectType == 17 || audioObjectType == 19 ||
audioObjectType == 20 || audioObjectType == 21 ||
audioObjectType == 22 || audioObjectType == 23 ||
audioObjectType == 24 || audioObjectType == 25 ||
audioObjectType == 26 || audioObjectType == 27 ) {
epConfig; 2 bslbf
if ( epConfig == 2 || epConfig == 3 ) {
ErrorProtectionSpecificConfig();
}
Из этой каши как я понял мне нужно определить
AudioObjectType
samplingFrequencyIndex - мне нужно 0x3 48000Khz
channelConfiguration - 2 - стерео
Вот как это все связать с config & profile-level-id не понятно
Как они получили эти цифры?
profile-level-id=16
config=11B0
Ранее в такие дебри не влезал, но без этого не настроить правильно кодек )
AudioObjectType
A five bit field indicating the audio object type
Допустим я выбираю AudioObjectType=1(AAC Main), что значит пятибитное поле, как куда его писать?