What you did there is extremely similar to what I did in the Foxglove-webrtc connector. Like yours, it is also a fork of Foxglove that adds a new connection type, but instead of using websocket (over TCP) it uses webrtc. The latter, of course, was specifically designed for teleconferencing, i.e., live video-streaming into the browser. It hence has, unsurprisingly, several advantages over websockets (e.g., UDP, h264 video compression, congestion control, packet loss mitigation, no latency build-up when network is unstable, ability to get past firewalls – no ngrok required). See image below for a comparison on bandwidth efficiency. More details in this blog post 5 Ways to Stream Video from Robots and Why You Should Use WebRTC.

3 Likes