【问题标题】:Good library for realtime audio (both sending and receiving)? [closed]实时音频(发送和接收)的好图书馆? [关闭]
【发布时间】:2012-02-02 07:12:33
【问题描述】:

我正在考虑做实时音频聊天的东西 node.js。但是,据我所知,目前没有任何好的节点库。为了录制音频,我可能会打开一个音频设备并从中读取 PCM 字节 - 但是,我不确定如何继续。我想控制网络的东西,例如我希望能够通过现有连接多路复用流量,因此同时处理网络部分的库对我不起作用。所以,我认为我需要什么:

  • 一个 C/C++/JavaScript 库,能够进行快速(可能有损)实时音频(去)压缩(可能针对压缩人声进行了优化)
  • 一个 C/C++/JavaScript 库,可以确保事情保持实时,例如处理抖动后丢弃数据 - 也许我自己也可以在 JavaScript 中完成这部分

这听起来合理吗?这些东西有哪些好的库?

【问题讨论】:

  • “C/C++/JavaScript”是什么意思?
  • @sergio:C 或 C++ 或 JavaScript。如果它是用 JavaScript 编写的,我可以直接使用它。如果它是用 C/C++ 编写的,我应该能够为 node.js 编写绑定。

标签: c++ audio node.js real-time


【解决方案1】:

我创建了一个名为“Crosstalk”的 C++ 音频库。

它是一个实时 C++ 音频引擎,可让您实时创建和路由音频系统。基本上,引擎负责所有音频路由,并为您提供一个简单的平台来创建系统组件(例如,连接到连接到“文件记录器”的“低通滤波器”的“网络输入馈送”组件)。

它非常易于使用。下面是一个如何播放 mp3 文件的示例(这些组件是引擎提供的):

XtSystem system;
XtMp3Decoder mp3Decoder;
XtAudioDevice audioDevice;

long md = system.addComponent(&mp3Decoder);
long ad = system.addComponent(&audioDevice);

system.connOutToIn(md,0,ad,0);
system.connOutToIn(md,1,ad,1);

mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3");
mp3Decoder.play();

您可以在此处查看 API 文档和许可详细信息:http://www.adaptaudio.com/Crosstalk

更新:与免费许可证的兼容性。

只有 Crosstalk 的演示版本可以与免费许可软件一起使用,但是仍然不允许 Crosstalk 的商业用途和分发。如果您希望在免费软件中使用 Crosstalk 演示,只需在您的 EULA 中提及您的程序使用 Crosstalk 的演示版本,并且无论您在何处提供指向您的软件的链接,请提供指向:“http://www.adaptaudio.com/Crosstalk”的链接,他们在其中可以自己下载。

编辑(01-12-2012):

Crosstalk 已被名为“DSPatch”的开源项目取代。 DSPatch 本质上是 Crosstalk 背后路由引擎的升级版本,不再局限于音频处理。 DSPatch 允许您创建和路由几乎任何可以想象的类型的流程链,并且免费供个人和专有使用:)

【讨论】:

  • 关于许可条件:我不能在打算根据免费许可分发的软件中使用该库,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多