演示
https://github.com/tsonglew/aiortc-datachannel-delay
运行python main.py启动服务器,然后使用web浏览器访问localhost:8080
问题
我正在尝试处理来自视频轨道的视频帧,并用数据通道发回结果。
在上述demo存储库中,将结果替换为time.time(),如下所示:
self.channel.send(
json.dumps({"now": time.time() * 1000})
)<client receive from datachannel time> - <datachennl.send() time>被认为是延迟,并使用代码进行console.log:
ch.addEventListener("message", function (evt) {
console.log(Date.now() - JSON.parse(evt.data).now);
});输出

如截图所示,延迟在增长,但视频和音频是流畅的。
我如何才能摆脱日益增长的延迟?Thx
发布于 2021-09-29 08:22:48
在aiortc中调用RTCDataChannel.send不会立即发送SCTP数据块。作为一种解决方法,刷新出站数据队列并显式传输数据可能会有所帮助。
self.channel.send(json.dumps({"now": time.time() * 1000}))
await self.channel._RTCDataChannel__transport._data_channel_flush()
await self.channel._RTCDataChannel__transport._transmit()有关更多细节,请访问:https://github.com/aiortc/aiortc/issues/547
https://stackoverflow.com/questions/68466271
复制相似问题