faac和faad有win32的編譯工程,相對其他開源專案來說,win32的編譯很簡單了
faac,faad的編碼和解碼也封裝的非常好,使用上很簡單。
開啟faac編碼器
m_faachandle = faacencopen(isamplerate, ichannels, &m_usampleinput, &m_uoutputbytes);
if( 0 == m_faachandle )
return false ;
faacencconfigurationptr faaccfg;
faaccfg = faacencgetcurrentconfiguration(m_faachandle);
if (faaccfg->version != faac_cfg_version)
//* 設定配置引數
faaccfg->aacobjecttype = low; //lc編碼
faaccfg->mpegversion = mpeg4; //
faaccfg->usetns = 1 ; //時域噪音控制,大概就是消爆音
faaccfg->allowmidside = 0 ; //
faaccfg->bitrate = m_nbitrate/m_uchannelnums;
faaccfg->bandwidth = 0 ; //頻寬
faaccfg->outputformat = isadts; //輸出是否包含adts頭
faaccfg->inputformat = faac_input_16bit;
//faaccfg->shortctl = 0 ;
faaccfg->quantqual = 50 ;
//* 獲取解碼資訊.
//unsigned char* ucbuffer = null;
//unsigned long uldecoderspecificinfosize;
//faacencgetdecoderspecificinfo(m_faachandle, &ucbuffer, &uldecoderspecificinfosize);
if (!faacencsetconfiguration(m_faachandle, faaccfg))
m_usampleinput這個引數要注意,需要在編碼時使用。是faac所使用的音訊樣片數量
隨後就可以解碼了
int ibyteswritten = faacencencode(m_faachandle, (int32_t*)input, m_usampleinput , output, outlen );
判斷下ibyteswritten初始編碼的幾幀資料會返回0,0是資料被緩衝,並不是錯誤。
解碼相對編碼更簡單。
使用FAAC進行AAC編碼
faac和faad有win32的編譯工程,相對其他開源專案來說,win32的編譯很簡單了 faac,faad的編碼和解碼也封裝的非常好,使用上很簡單。開啟faac編碼器 m faachandle faacencopen isamplerate,ichannels,m usampleinput,m u...
使用FAAC進行AAC編碼
faac和faad有win32的編譯工程,相對其他開源專案來說,win32的編譯很簡單了 faac,faad的編碼和解碼也封裝的非常好,使用上很簡單。開啟faac編碼器 m faachandle faacencopen isamplerate,ichannels,m usampleinput,m u...
利用faac進行編碼
利用faac直接對pcm進行aac編碼 下面是我在faac fronted main.c中抽出來 對pcm進行aac編碼的例子 希望對大家有用。片源資訊 output.pcm 44100 2 16 include include include include include include def...