网络音频API和直播延迟

德瓦林

我一直在使用Web Audio API和Node.js开发音频会议应用程序。一个人会讲话,其他联系的客户也应该听到他的声音。

在客户端,我先使用libopus对PCM样本进行编码,然后再将其发送到服务器。

在服务器端,我只是将这些编码的数据包发送回连接的用户,最后,在每个客户端上,我将这些数据包解码回可以使用Web Audio API播放的示例。

当我在本地环境上测试应用程序时,一切工作正常。在生产环境中,当客户可以从本地外部空间进行连接时,将发生几个主要问题。

  1. 一些客户的音频延迟似乎在增加。例如,如果流已经进行了1分钟,则某些客户端的延迟可能长达10秒,而几分钟后,某些客户端的延迟甚至会增加30-50秒。

  2. 一些客户没有问题。

  3. 尤其是遇到延迟的客户,声音非常低调。对于没有音频延迟的客户也可能会发生这种情况。

饼干0dks

那是因为您可以使用不同的声卡获得不同的采样率。因此,在这种情况下,音频是高音调和滞后的(来自PC1-> PC2),低音调和延迟是随着时间的推移(从PC2-> PC1)。在这种情况下,PC1的采样率低于PC2。

您必须编写一个重采样器来解决此问题。检查不同PC上的采样率:

var audioCtx = new AudioContext();
var mySampleRate = audioCtx.sampleRate;

查看关于无WebRTC解决方案的文章:我可以使用nodejs在客户端之间流传麦克风音频吗?

能给我您使用过的Opus Lib的链接吗?也许我也会在我的项目中对此加以说明。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

网络音频API和WebRTC

来自分类Dev

移动和网络直播音频(广播)流传输的最佳协议是什么?

来自分类Dev

如何从直播中保存和存储音频?

来自分类Dev

来自静态图像和音频的 ffmpeg 直播

来自分类Dev

MySQL和网络延迟

来自分类Dev

网络音频综合API?

来自分类Dev

使用网络音频api和jquery的变量+循环

来自分类Dev

使用网络音频api和waveurfer.js剪切和粘贴音频

来自分类Dev

是否设置为通过Wi-Fi直播(低延迟)音频视频?

来自分类Dev

网络音频api记录功能

来自分类Dev

在Ubuntu 12.04上延迟音频和视频

来自分类Dev

在Ubuntu 12.04上延迟音频和视频

来自分类Dev

网络音频Api和Javascript:从麦克风中获取正确的选择

来自分类Dev

如何避免CORS对网络音频API的限制?

来自分类Dev

在Android中播放,暂停/停止和设置音频的相对延迟

来自分类Dev

录制音频,同步到循环,补偿延迟和导出部分

来自分类Dev

字幕和视频/音频之间的延迟hls ffmpeg videojs

来自分类Dev

在背景视频中延迟音频和视频的FFMpeg视频叠加

来自分类Dev

YouTube在线直播API

来自分类Dev

流直播音频live555

来自分类Dev

如何防止播放多个直播音频?

来自分类Dev

ROKU 直播延迟约 1 小时

来自分类Dev

有没有一种方法可以在合理的时间延迟内捕获和广播直播电台?

来自分类Dev

使用 AWS 实现零延迟(超低延迟 UUL)直播?

来自分类Dev

RTC 网络浏览器(视频和音频)

来自分类Dev

播放前延迟音频

来自分类Dev

播放前延迟音频

来自分类Dev

延迟特定设备的音频

来自分类Dev

低延迟音频流