iOS :lame框架將PCM錄音轉為MP3格式

lame框架將PCM錄音轉成MP3格式

1垂涯、lame下載地址:https://github.com/rbrito/lame,它是一個不可執(zhí)行的文件碌补,需要借助build-lame.sh腳本將其編譯成.a靜態(tài)包壁公。

2、build-lame.sh下載地址:[https://github.com/kewlbear/lame-ios-build][圖片上傳中...(791499-20171011151510980-1910598493.png-dfdad9-1565596345680-0)]
(https://github.com/kewlbear/lame-ios-build)

3焚鲜、解壓下載的lame-ios-build-master框架, 將build-lame.sh 拷貝到 /Users/xxx/xxx/lame/lame-origin目錄下。

4放前、修改build-lame.sh腳本恃泪,將SOURCE="lame" 修改為 SOURCE=“”。

5犀斋、sudo ./build-lame.sh贝乎, 編譯所有.a文件,大概需要一分鐘左右叽粹,編譯完成后lame-origin目錄下會生成fat-lame览效、thin-lame、scratch-lame三個文件夾虫几。

6锤灿、fat-lame下的libmp3lame.a靜態(tài)包適用于所有的處理器,而thin-lame下的libmp3lame.a靜態(tài)包分別對應各個類型處理器辆脸,其實可以自己使用lipo -create -output進行合成但校,可以自己看看。

7啡氢、這里我們使用fat-lame下的靜態(tài)包状囱,將fat-lame中的lame.h 和 libmp3lame.a導入工程即可。

8倘是、截圖


791499-20171011151510980-1910598493.png

9亭枷、注意,特別說明:
(1)合適libmp3lame 轉換成mp3搀崭,pcm數據必須是雙聲道叨粘。否則轉換會失敗。

(2)使用 lame_set_in_samplerate 設置參數必須與pcm數據采樣率一致。

(3)轉換源碼如下升敲。

 (void)Wav2Mp3  
{  
    NSString *srcFile = self.srcFilePath;  
    NSString *dstFile = self.dstFilePath; long readLen, writeLen;  
    FILEFILE *srcWav = fopen([srcFile UTF8String], "rb"); //跳過文件頭 
    fseek(srcWav, sizeof(WavFileHeader), SEEK_CUR);  

    FILEFILE *destMp3 = fopen([dstFile UTF8String], "wb"); const int PCM_SIZE = 16384; const int MP3_SIZE = 16384; short pcm_buffer[PCM_SIZE*2];  
    unsigned char mp3_buffer[MP3_SIZE];  

    //這里要注意答倡,lame的配置要跟AVAudioRecorder的配置一樣,否則會造成轉換失敗  
    lame_t lame = lame_init();  
    lame_set_in_samplerate(lame, kSampleRate);  
    lame_set_VBR(lame, vbr_default);  
    lame_init_params(lame); do {  
        readLen = fread(pcm_buffer, 2*sizeof(short int), PCM_SIZE, srcWav); if (readLen == 0)  
        {  
            writeLen = lame_encode_flush(lame, mp3_buffer, MP3_SIZE);  
        } else {  
            writeLen = lame_encode_buffer_interleaved(lame, pcm_buffer, (int)readLen, mp3_buffer, MP3_SIZE);  
        }  

        fwrite(mp3_buffer, writeLen, 1, destMp3);  

    } while (readLen != 0);  

    lame_close(lame);  
    fclose(destMp3);  
    fclose(srcWav);  
} 


10驴党、參考

lame(直接使用,已經編譯成功過了):lame.zip
demo:https://github.com/rpplusplus/iOSMp3Recorder

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末瘪撇,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子鼻弧,更是在濱河造成了極大的恐慌设江,老刑警劉巖锦茁,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件攘轩,死亡現場離奇詭異,居然都是意外死亡码俩,警方通過查閱死者的電腦和手機度帮,發(fā)現死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稿存,“玉大人笨篷,你說我怎么就攤上這事“曷模” “怎么了率翅?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長袖迎。 經常有香客問我冕臭,道長,這世上最難降的妖魔是什么燕锥? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任辜贵,我火速辦了婚禮,結果婚禮上归形,老公的妹妹穿的比我還像新娘托慨。我一直安慰自己,他們只是感情好暇榴,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布厚棵。 她就那樣靜靜地躺著,像睡著了一般蔼紧。 火紅的嫁衣襯著肌膚如雪窟感。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天歉井,我揣著相機與錄音柿祈,去河邊找鬼。 笑死,一個胖子當著我的面吹牛躏嚎,可吹牛的內容都是我干的蜜自。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼卢佣,長吁一口氣:“原來是場噩夢啊……” “哼重荠!你這毒婦竟也來了?” 一聲冷哼從身側響起虚茶,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤戈鲁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后嘹叫,有當地人在樹林里發(fā)現了一具尸體婆殿,經...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年罩扇,在試婚紗的時候發(fā)現自己被綠了婆芦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡喂饥,死狀恐怖消约,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情员帮,我是刑警寧澤或粮,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站捞高,受9級特大地震影響氯材,放射性物質發(fā)生泄漏。R本人自食惡果不足惜棠枉,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一浓体、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辈讶,春花似錦命浴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至月幌,卻和暖如春碍讯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扯躺。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工捉兴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蝎困,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓倍啥,卻偏偏與公主長得像禾乘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子虽缕,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容