EasyAACEncoder测试

去年就捣鼓过aac.但貌似怎么遇到了挫折就放弃了。。。

今天看见文件夹里还有EasyAACEncoder。就打开编译了。

因为这个工程是lib.我重建了控制台工程。把源码复制进去。添加一个main.cpp

写测试代码。

发现他只支持g711 to AAC. 我看调用是这个流程。 我没搞过g726.手头只有g711.

if ( Law_ALaw == m_inAudioInfo.CodecType())
    {
        m_pDecodeToPcm = new G711AToPcm();
    }else if ( Law_ULaw == m_inAudioInfo.CodecType() )
    {
        m_pDecodeToPcm = new G711UToPcm();
    }else if ( Law_G726 == m_inAudioInfo.CodecType())
    {
        m_pDecodeToPcm = new G726ToPcm();
    }else
    {
        m_pDecodeToPcm = new G711AToPcm();
    }

 

我就制造了一个g711a.wav

p.ucAudioCodec=Law_ALaw;

EasyAACEncoder_Handle api=Easy_AACEncoder_Init(p);

先读取WaveFileHeader。然后读取g711块.Encode

ret= Easy_AACEncoder_Encode(api, (BYTE*)pcm_buffer ,pcm_buffer_size,(BYTE*)aacbuf , &nBytesEncode);
 返回值ret和nBytesEncode 其实是一样的。

 

经过运行,压缩出了一个aac音频。播放正常。但是我g711是单声道。

aac给我编码成了立体声。

在对比下文件大小。

音源   1:49秒   44100  单声道

raw_pcm.wav  9.18 MB (9,629,740 字节)

g711.wav   4.59 MB (4,814,892 字节)    

out.aac     741 KB (759,157 字节)

同时用speex压缩pcm输出spx  1.2M 

压缩率7% 

9M的原始音频数据压缩成不到1M 很牛逼了。aac

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章