如何正确配置aac-adts头以支持android中的aac-eld。我可以配置LC和Main。
根据以下条款
https://wiki.multimedia.cx/index.php?title=ADTS
profile只取两位(e2profile,mpeg-4音频对象类型减1),但是aacobjecteld的profile值是39 ie: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;
}

请请求您的帮助。
提前谢谢
约瑟夫

最佳答案

很抱歉你不能那样做。
ADT仅支持AAC主/LC配置文件。
如果你想支持aac ld aac-eld,你必须使用mp4。
通常的aac帧的大小是1024.960,用于无线电广播,aac ld和eld是960480。

关于android - AACObject ELD数据包的AAC ADTS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40014508/

10-11 15:05