html - 发送和接收 PCM 样本
问题描述
我一直在制作一个近乎实时的语音聊天应用程序。网页将数据包发送到服务器,服务器将数据包保存到磁盘,然后将数据包重新传输到其他连接的网页。我尝试了许多其他解决方案,但它们要么滞后,要么无法播放。我已经意识到发送 PCM 样本是最佳的(服务器也会记录这些样本),但我不确定如何让它们在另一个客户端播放。我正在使用带有 Socket.IO 的 NodeJS。提前致谢!
解决方案
网页将数据包发送到服务器,服务器将数据包保存到磁盘,然后将数据包重新传输到其他连接的网页。
这已经不是那么有效了。最好尽可能直接从对等点发送数据。
我已经意识到发送 PCM 样本是最佳的
不,它不会。这需要更多带宽,这将需要更好的缓冲,这意味着更高的延迟。这是语音聊天......无需使用像 PCM 这样的无损编码。
我一直在制作一个近乎实时的语音聊天应用程序。
这基本上是构建 WebRTC 的事实上的主要用例。如果你使用 WebRTC,你会得到:
- 点对点流式传输(在可能的情况下)
- NAT 遍历(在可能的情况下启用这些 P2P 连接,或者在不启用时代理它们)
- 端到端的低延迟优化
- 硬件加速(如果可用)
- Opus 音频编解码器
- 自动重采样,以实现兼容性并在事情下降时保持低延迟
换句话说,这已经是 WebRTC 解决的问题。
推荐阅读
- git - 更新 GitHub 身份验证以在 macOS 上使用令牌(而不是密码)?
- python - 如何在 Heroku 上正确安装 PyICU?
- javascript - AWS S3 图片上传大小限制
- if-statement - 如何将 XSLT 与 If 条件和元素副本一起使用
- java - 您可以在单个测试类上启用 Bean 覆盖吗?
- java - 如何让 JButton 播放和停止
- python - 模板中显示的Django累积值
- c - 使用 unlocked_ioctl 获得 Linux 内核 ramfs 的 NOTTY
- excel - 创建公式以避免在不使用 (=array) 的情况下向下拖动
- google-chrome - 有什么方法可以在 Shopify 中使用 google 或 facebook 对客户进行身份验证?