如何解决通过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(将#修改为@)