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

 

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