AAC ES流如何解码播放

本文介绍了如何对AAC原始流进行解码播放,特别是通过添加ADTS头实现软解或硬解的方法。示例代码展示了每个sample单元的处理过程。
摘要由CSDN通过智能技术生成

AAC原始流能让ffmpeg软解或系统硬解,最简单的处理可在前面加上ADTS头,那么这个ADTS头如何添加呢?其实就是七个字节,下面分享一个我使用的代码样例,每次传递数据都是以一个个sample为单元的:

adts_header[7] = {0xff,0xf9,0x00,0x00,0x00,0x1f,0xfc};

     //AAC level
     switch(AAC_level)
     {
        case AUDIO_AACM:
       adts_header[2] |= (0x00 << 6)&0xc0;
       break;
          
        case AUDIO_AACL:
       adts_header[2] |= (0x01 << 6)&0xc0;
       break;
        
        case AUDIO_AACS:
       adts_header[2] |= (0x02 << 6)&0xc0;;
       break;
       
        default:/*use AACL*/
          adts_header[2] |= (0x01 << 6)&0xc0;
          break;
     }
     
     //sampling rate
     switch(AAC_sample_rate)
     {
        case SAMPLINGRATE_96000HZ:
       adts_header[2] |= (0x00 << 2)&0x3c;
       break;
          
        case SAMPLINGRATE_88200HZ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值