Remote.IO を使用して PCM からオーディオ バッファを取得していますが、生データが大きすぎてセルラー ネットワーク (3G ネットワーク) でリモート側に送信できません。いくつかの記事を参照しましたが、ほとんどの記事は、ファイルを別の形式のファイルに変換することを提案しています。
オーディオ バッファをリアルタイムで AAC エンコーディング データに変換する方法はありますか?
Remote.IO を使用して PCM からオーディオ バッファを取得していますが、生データが大きすぎてセルラー ネットワーク (3G ネットワーク) でリモート側に送信できません。いくつかの記事を参照しましたが、ほとんどの記事は、ファイルを別の形式のファイルに変換することを提案しています。
オーディオ バッファをリアルタイムで AAC エンコーディング データに変換する方法はありますか?
実際、オーディオバッファを直接AAC形式で保存できます。
ASBDを設定するときは、次のように設定してください。
AudioStreamBasicDescription audioFormat;
audioFormat.mFormatID = kAudioFormatMPEG4AAC;
kAudioFileM4AType
次のようにExtAudioFileCreateWithURLを呼び出すときに指定します。
err = ExtAudioFileCreateWithURL((CFURLRef)audioFileURL,
kAudioFileM4AType,
&audioFormat,
NULL,
kAudioFileFlags_EraseFile,
&outFile);
また、このようにコーデックを設定する必要があります。
UInt32 codecManf = kAppleSoftwareAudioCodecManufacturer;
ExtAudioFileSetProperty(outFile, kExtAudioFileProperty_CodecManufacturer, sizeof(UInt32), &codecManf);
これは、AACエンコーディングを機能させるのに役立ちます。