Better latency in Stb-tester's live video (goodbye Flash, hello WebRTC)
24 Dec 2020.
The Stb-tester Portal shows live video from the device-under-test, right in your web browser. Previously, this video was streamed from your Stb-tester Nodes using RTMP (Flash’s video-streaming protocol). With our latest firmware release, Stb-tester Nodes now stream this live audio & video using WebRTC – the W3C standard protocol for low-latency, real-time communication. WebRTC allowed us to achieve much better latency when you are interacting manually with your device-under-test via the Stb-tester Portal.
Note: Everything in this article is about the live video streamed to web browsers for humans to see. It isn’t related to Stb-tester’s video-capture when running automated tests, which isn’t affected by this change.
Low latency
The latency improvements are best shown with a video. Here we have 2 browser windows open at the same page. The left window is using WebRTC, and the right window is using Flash:
With WebRTC the latency is under 500ms, and this includes the time to send the “keypress” instruction to the Stb-tester Node. Flash’s latency is around 2 seconds.
NAT traversal
WebRTC uses peer-to-peer communication to stream the video from the Stb-tester Node to your web browser — the video traffic doesn’t go via the Stb-tester Portal. If your PC is on the same network as the Stb-tester Node, the traffic doesn’t leave your local network.
This was also true of our old Flash video implementation; the difference is that WebRTC also has the ability to negotiate a peer-to-peer connection when you are on different networks, using ICE protocols. However, this only works with some firewalls/NATs.
When direct peer-to-peer communication isn’t possible, WebRTC allows tunnelling the video traffic through a TURN server. Contact sales@stb-tester.com if you want this capability.
Note that the Stb-tester Portal has always had a fallback mechanism for viewers on a different network, using JPEG thumbnails at 1 frame per second — see Live video formats in the Stb-tester manual for details.
WebRTC traffic is secured using industry-standard DTLS encryption.
Flash reaches end-of-life soon
Flash is being discontinued by Adobe after December 31 2020, and major browsers will disable their Flash support entirely.
To summarise:
WebRTC | Flash |
---|---|
<500ms latency | 2+ seconds latency |
Peer to peer with NAT traversal | Peer to peer (local network only) |
DTLS encryption | Unencrypted video (local network only) |
W3C standard | Proprietary protocol |
Supported by all major browsers | Requires Flash browser plugin |
Future proof | Discontinued Jan 2021 |
Selecting the video format in the Stb-tester portal
To use WebRTC, click the settings icon underneath the video:
Browser settings
You may need to enable “auto-play” for the Stb-tester Portal. For example on Firefox, click the “permissions” icon next to the URL bar: