通过ESP32 WebSocket流JPEG;提高性能的最佳方法?

问题描述

我目前正在使用ESP32芯片上的WebSocket服务器将实时图像流式传输(半)到浏览器。

消息的传输似乎很慢,除非队列增加太多(除非擦除内存),否则除非进行限制才能使服务器崩溃。

现在我将队列设置为限制2条消息,更新频率为500ms。

当服务器/客户端之间的延迟良好时,降低队列的工作效果很好。一旦延迟增加,就需要减小文件大小,以防止服务器崩溃。

一个例子是,在良好的等待时间和2的队列限制下,可以以500ms的更新频率发送640x480图像。一旦通过将ESP进一步移离接入点来降低等待时间,图像质量就会迅速下降至240x176,以保持该发送频率。更大的队列需要达到1,甚至崩溃。我没有尝试只是没有队列。

是否有压缩或分块数据以减少交付时间的方法

我正在使用ESPAsyncWebServer作为套接字服务器,然后客户端只是在进行基本的消息侦听:

ws = new WebSocket(streamURL)
ws.onmessage = message => {
if (message.data instanceof Blob) {
  var urlObject = URL.createObjectURL(message.data)
  viewContent.src = urlObject;
}};

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)