簡體   English   中英

為iOS錄制時如何將PCM緩沖區實時轉換為AAC數據?

[英]How to real-time convert the PCM buffer to AAC data when recording for iOS?

我正在使用Remote.IO從PCM獲取音頻緩沖區,但是原始數據太大,無法通過蜂窩網絡(3G網絡)發送到遠程端。 我確實參考了一些文章,但是大多數文章建議將文件轉換為其他格式的文件。

有沒有辦法將音頻緩沖區實時轉換為AAC編碼數據?

實際上,您可以將音頻緩沖區直接保存為AAC格式。

設置ASBD時,請像這樣設置

AudioStreamBasicDescription audioFormat;
audioFormat.mFormatID = kAudioFormatMPEG4AAC;

像這樣調用ExtAudioFileCreateWithURL時指定kAudioFileM4AType

err = ExtAudioFileCreateWithURL((CFURLRef)audioFileURL,
                             kAudioFileM4AType,
                             &audioFormat, 
                             NULL,
                             kAudioFileFlags_EraseFile,
                             &outFile);

您還需要像這樣設置編解碼器。

UInt32 codecManf = kAppleSoftwareAudioCodecManufacturer;
ExtAudioFileSetProperty(outFile, kExtAudioFileProperty_CodecManufacturer, sizeof(UInt32), &codecManf);

這應該可以幫助您使AAC編碼正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM