html - 发送和接收PCM样本

标签 html node.js audio socket.io webrtc

我一直在做一个近实时的语音聊天应用程序。该网页将把数据包发送到服务器,服务器会将数据包保存到磁盘,然后将数据包重新传输到其他连接的网页。我尝试了许多其他解决方案,但是它们要么太迟钝,要么不玩。我已经意识到发送PCM样本将是最佳选择(服务器也将记录这些样本),但是我不确定如何使它们在另一个客户端播放。我正在使用NodeJS和Socket.IO。提前致谢!

最佳答案

The webpage will send packets to the server, and the server will save the packets to disk, and then re transmit the packets to the other connected webpages.



已经不是那么有效了。最好是在对等方之间直接发送数据。

I've realized that sending PCM samples would be optimal



不,不会。这需要更多的带宽,这将需要更好的缓冲,这意味着更高的延迟。这是语音聊天...无需使用像PCM这样的无损编码。

I've been working on making a near real-time voice chat app.



这基本上是WebRTC构建的事实上的主要用例。如果使用WebRTC,则会得到:
  • 对等流传输(如果可能)
  • NAT遍历(在可能的情况下启用那些P2P连接,或在不启用时进行代理)
  • 低延迟优化,从头到尾
  • 硬件加速(如果有)
  • Opus音频编解码器
  • 自动重采样,以保持兼容性并在事物掉线时保持较低的延迟

  • 换句话说,这已经是WebRTC解决的问题。

    关于html - 发送和接收PCM样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61922547/

    相关文章:

    node.js - Express - 为某些文件设置不同的 maxAge

    android - mp.release崩溃的音板应用程序

    javascript - 使用 Javascript 的 HTML5 音频

    html - 如何将选项标签链接到html中的其他页面?

    javascript - Node.js 使用 Express 和 EJS 更新 View 中的单个元素

    html - 居中 iframe 谷歌地图

    node.js - 使用 Sequelize.js 添加带有自动生成字段的数据

    node.js - 接收 wav 文件并将其写入 Node/Express Server 上的磁盘

    html - body 和 aside 元素的文本换行问题

    html - 如何禁用 CSS 规则