将LPCM缓冲区转换为AAC以进行HTTP实时流式传输

时间:2018-02-22 17:23:18

标签: macos audio core-audio audio-streaming http-live-streaming

我有一个应用程序将设备中的音频记录到Float32(LPCM)缓冲区中。

然而,根据HTTP Live Streaming specifications,LPCM需要以音频格式(MP3,AAC)进行编码,以用作要流式传输的媒体段。我在how to convert a LPCM file to an AAC / MP3 file 上找到了一些有用的资源,但这并不是我想要的,因为我不愿意转换文件而是缓冲区。

  • 转换音频文件原始音频缓冲区(LPCM,Float32)之间的主要区别是什么?后者更琐碎吗?

我最初的想法是创建一个线程,定期从环形缓冲区(存储原始音频)中获取数据,并将其转换为有效的音频格式(AAC或MP3)。

  • 当通过AURenderCallback捕获AudioBuffer并因此修剪环形缓冲区时,立即这样做会更明智吗?

感谢您的帮助,

1 个答案:

答案 0 :(得分:0)

核心音频录制缓冲区长度和所需的音频文件长度很少总是完全相同。所以最好轮询你的循环/环形缓冲区(你知道采样率,它应该告诉大约多少次)来解耦这两种速率,并在稍后将缓冲区(如果充分填充)转换为文件。您可以将原始音频文件的内存映射到缓冲区,但是它之间可能存在或可能没有任何性能差异,并且异步写入临时文件。

相关问题