AAC ADTS for AACObject ELD数据包

时间:2016-10-13 07:11:21

标签: android audio-streaming audio-recording aac adts

如何正确配置 AAC ADTS标头以支持Android中的AAC ELD 。我可以配置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;
}

请求你的帮助。

提前致谢
约瑟夫

1 个答案:

答案 0 :(得分:0)

对不起,你不能这样做。 adts仅支持aac main / lc配置文件。

如果要支持aac-ld aac-eld。则必须使用mp4。 通常用于广播广播的aac frame_size为1024.960,aac-ld和eld为960 480。

相关问题