audio相关(下)

分类: C/C++ 发布时间: 2018-09-08 14:30

G726的数据使用libEasyAACEncoder编码之后使用系统自带的mediaplay播放没有声音,其他的播放器例如VLC,暴风影音,迅雷等都可以播放声音。最后只能硬着头皮看libEasyAACEncoder的源码,调试中发现了问题:

1) libEasyAACEncoder使用faac将pcm转化为AAC,在PcmToAac的Init函数中将mpegVersion 选择了MPEG2,而我的电脑faacEnOpen打开时mpegVersion 版本为MPEG4

2)libEasyAACEncoder 输出的音频都是带ADTS头的,需要使用raw格式mediaplay才可以播放。

4)必须要设置MP4SetTrackESConfiguration();否则播放没有声音,其中的参数可以通过faacEncGetDecoderSpecificInfo函数获取:

unsigned char* pBuffer = NULL;

unsigned long pBuffLen = 0;

int bRet = faacEncGetDecoderSpecificInfo( hEncoder, &pBuffer, &ppBuffLen);

memcpy( pConfig, pBuff, pBuffLen);

if( pBuff )

{  free( pBuff ); }


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!