【发布时间】:2018-02-25 11:37:05
【问题描述】:
我创建了对讲机/对讲机,用户可以在其中进行单向通信。音频字节是实时广播的。
我正面临网络延迟问题。在本地网络中它工作正常,但在实时网络上它会出现故障。
以下是与之相关的信息。请建议优化延迟的正确方法。
以下是广播字节的代码:
socket.on('talk', function (data) {
io.emit('listen', data);
});
每秒采样率:44100 Hz
缓冲区大小:1024
在移动端我有以下速度:
0.49 Mbps 下载
0.88 Mbps 上传
我的网速如下,这是我托管socket.io nodejs服务的服务器,我从外部网络连接套接字:
【问题讨论】:
-
网络 延迟是您无法影响的(除非您更改提供商)。 应用程序延迟在你手中(意味着你的应用程序编码/解码声音数据的速度)。您提到了 44100Hz 的采样率,这对于语音来说似乎很高,减少它也会减少您发送的数据量。增加缓冲区大小是另一种选择,因此您的应用可以在每个周期处理更长的数据块。
-
您是在压缩音频数据还是仅压缩原始样本?你编码了多少个通道(IE:单声道或立体声)?您的样本深度是多少(IE:16 位)?
-
它是立体声,不压缩,是原始样本。
标签: node.js nginx socket.io network-programming