如何转换PCM音频流以进行在线播放

时间:2015-08-13 15:58:03

标签: web audio-streaming pcm audio-converter interleave

我可以访问PCM音频缓冲区的音频流。我应该清楚我无法访问音频文件。我只能访问4096字节的音频数据块。

PCM缓冲区采用以下格式:

  • PCM Int 16
  • Little Endian
  • 两个频道
  • 交错

要在标准浏览器上支持音频播放,我需要将音频转换为以下格式:

  • PCM Float 32
  • Big Endian
  • 两个频道(最多)
  • 去交织的

此音频来自iOS应用程序,因此我可以访问Swift和Objective C(虽然我对Objective C不太满意......这使得Apple Audio Converter Services几乎无法使用,因为斯威夫特真的不喜欢指针。

此外,播放将在浏览器上进行,因此我可以在客户端Javascript或服务器端处理转换。我精通以下服务器端语言进行转换:

  • Java(首选)
  • PHP
  • Node.js的
  • 的Python

如果有人知道使用这些语言的方法,请告诉我。我已经研究了这个问题足够长的时间,我甚至可能会理解如何做到这一点的非常技术性的描述。

我目前的计划是使用按位运算对左右声道进行解交织,然后将Int 16缓冲区转换为带有Web Audio API的Float 32缓冲区。这看起来像个好计划吗?

感谢任何帮助,谢谢。

0 个答案:

没有答案