iOS 音頻使用AAC HE編碼

定義音頻格式宏

#define PROFILE_AAC_LC 2
#define PROFILE_AAC_HE 5
#define PROFILE_AAC_HE_v2 29
#define PROFILE_AAC_LD 23
#define PROFILE_AAC_ELD 39

初始化

HANDLE_AACENCODER _encoder;

AACENC_ERROR rt = aacEncOpen(&_encoder, 0, 0);
  if (rt != AACENC_OK) {
    NSLog(@"aac enc open error %zd",rt);
    return;
  }
  aacEncoder_SetParam(_encoder, AACENC_AOT, PROFILE_AAC_HE_v2);
  aacEncoder_SetParam(_encoder, AACENC_BITRATE, 64 * 1000);
  aacEncoder_SetParam(_encoder, AACENC_SAMPLERATE, 44100);
  aacEncoder_SetParam(_encoder, AACENC_CHANNELMODE, MODE_2);

編碼

  size_t length = xx;//pcm len
  char *point = xx; //pcm data
 
  AACENC_BufDesc in = {0};
  {
    INT bid = IN_AUDIO_DATA;
    INT elSize = 2;
    void *buf[1] = {point};
    in.bufs = buf;
    in.numBufs = 1;
    in.bufferIdentifiers = &bid;
    in.bufElSizes = &elSize;
  }
 
  AACENC_BufDesc out = {0};
  {
    INT size = 1024;
    INT bid = OUT_BITSTREAM_DATA;
    void *buf[1] = {malloc(1024)};
    INT elSize = 1;
   
    out.bufs = buf;
    out.bufSizes = &size;
    out.numBufs = 1;
    out.bufferIdentifiers = &bid;
    out.bufElSizes = &elSize;
  }
 
  AACENC_InArgs inArgs = {0};
  inArgs.numInSamples = (INT)length/2;
 
  AACENC_OutArgs outArgs = {0};
 
  AACENC_ERROR rt = aacEncEncode(_encoder, &in, &out, &inArgs, &outArgs);
  if (rt != AACENC_OK) {
    NSLog(@"aac enc encode error %zd",rt);
  }else{
    NSLog(@"aac enc encode size %zd %zd",outArgs.numOutBytes, out.bufSizes[0]);
  }
 
  if (out.bufs[0]) {
    free(out.bufs[0]);
  }

參考
vlc的例子 https://fossies.org/linux/vlc/modules/codec/fdkaac.c

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末搁痛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子揩晴,更是在濱河造成了極大的恐慌,老刑警劉巖贩虾,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件憨琳,死亡現(xiàn)場離奇詭異,居然都是意外死亡第租,警方通過查閱死者的電腦和手機膀息,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門般眉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人潜支,你說我怎么就攤上這事甸赃。” “怎么了冗酿?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵埠对,是天一觀的道長络断。 經常有香客問我,道長项玛,這世上最難降的妖魔是什么貌笨? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮襟沮,結果婚禮上锥惋,老公的妹妹穿的比我還像新娘。我一直安慰自己开伏,他們只是感情好膀跌,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著固灵,像睡著了一般淹父。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怎虫,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天,我揣著相機與錄音困介,去河邊找鬼大审。 笑死,一個胖子當著我的面吹牛座哩,可吹牛的內容都是我干的徒扶。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼根穷,長吁一口氣:“原來是場噩夢啊……” “哼姜骡!你這毒婦竟也來了?” 一聲冷哼從身側響起屿良,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤圈澈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后尘惧,有當地人在樹林里發(fā)現(xiàn)了一具尸體康栈,經...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年喷橙,在試婚紗的時候發(fā)現(xiàn)自己被綠了啥么。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡贰逾,死狀恐怖悬荣,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情疙剑,我是刑警寧澤氯迂,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布践叠,位于F島的核電站,受9級特大地震影響囚戚,放射性物質發(fā)生泄漏酵熙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一驰坊、第九天 我趴在偏房一處隱蔽的房頂上張望匾二。 院中可真熱鬧,春花似錦拳芙、人聲如沸察藐。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽分飞。三九已至,卻和暖如春睹限,著一層夾襖步出監(jiān)牢的瞬間譬猫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工羡疗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留染服,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓叨恨,卻偏偏與公主長得像柳刮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn)巨朦,斷路器,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,503評論 6 427
  • 教程一:視頻截圖(Tutorial 01: Making Screencaps) 首先我們需要了解視頻文件的一些基...
    90后的思維閱讀 4,713評論 0 3
  • 視頻編碼與封裝方式詳解 1.編碼方式和封裝格式 2.視頻編碼標準兩大系統(tǒng) MPEG-1 MPEG-2 MPEG-3...
    latthias閱讀 6,380評論 0 22
  • 再進步的時代也改變不了垃圾人的思想敏释,一大早都碰的什么鬼!上電梯碰一齜著胡子貌似藏獒的老太太摸袁,推著個小孩車占...
    坤哥最帥閱讀 510評論 0 0