オーディオAAC符号化の概要
1455 ワード
/*
* unsigned long nSampleRate, // , bps
* unsigned long nChannels, // ,1 ,2
* unsigned long &samplesInput, // ,
* unsigned long &maxBytesOutput // , AAC
*/
enc = faacEncOpen(samplerate, channels, &samplesInput, &maxBytesOutput);
aac符号化を使用する前に、既知のサンプリングレートおよびチャネルによって、aac符号化のたびに受信されるべき元のデータ長、すなわち、上記のコードの3番目のパラメータsamplesInputが最初に取得される
また、符号化毎に出力されるaacデータの最大長、すなわち、上のコードの4番目のパラメータmaxBytesOutput
オーディオコード:
int enc_result = faacEncEncode(enc, (int32_t *) pcm_buffer, samplesInput, out, enc_size);
本物のオーディオaac符号化時に、このインタフェースで使用されるpcm_buffer[]すなわち、入力された元のデータが、前に取得したaac符号化のたびに受信すべき元のデータ長、すなわち、上記で取得したsamplesInputの長さに等しい
enc_sizeとは、上記で取得した符号化毎に出力されるaacデータの最大長、すなわち、上記で取得したmaxBytesOutputである
上のout[]サイズがmaxBytesOutputの長さです
備考:オーディオ符号化には元のpcmデータしか必要ありません.それらのタイムスタンプは本当のaac符号化とはあまり関係ありません.タイムスタンプは、オーディオaac符号化後のデータとともに次の操作を行う可能性があります.
---------------------------------------------
http://blog.sina.com.cn/s/blog_4d61a75701016j05.html