AAC ADTS для пакетов AACObject ELD

Как правильно настроить заголовок AAC ADTS для поддержки AAC ELD в Android. Я могу настроить для LC и Main.

Согласно статье ниже
https://wiki.multimedia.cx/index.php?title=ADTS

Профиль занимает только два бита (профиль E 2, тип аудиообъекта MPEG-4 минус 1), но значение профиля для AACObjectELD равно 39, т. Е. 0010 0110

private void addADTStoPacket(byte[] packet, int packetLen) {
    int profile = 39; // 2 - AAC LC,  39 = MediaCodecInfo.CodecProfileLevel.AACObjectELD;
    int freqIdx = 8;  // 4 44.1KHz 8 16KHZ
    int chanCfg = 2;  //2 channel 

    // fill in ADTS data
    packet[0] = (byte)0xFF;
    packet[1] = (byte)0xF1;
    packet[2] = (byte)(((profile-1)<<6) + (freqIdx<<2) +(chanCfg>>2));
    packet[3] = (byte)(((chanCfg&3)<<6) + (packetLen>>11));
    packet[4] = (byte)((packetLen&0x7FF) >> 3);
    packet[5] = (byte)(((packetLen&7)<<5) + 0x1F);
    packet[6] = (byte)0xFC;
}

Просьба просить вашей помощи.

заранее спасибо
Джозеф

0 ответов

Мне жаль, что ты не можешь этого сделать. ADTS поддерживает только профиль aac main/lc.

если вы хотите поддерживать aac-ld aac-eld. вы должны использовать mp4. обычный aac frame_size равен 1024.960 для радиопередачи, aac-ld и eld - 960 480.

Другие вопросы по тегам