This update includes a suite of features that radically reduce latency in Livepeer's livestreaming service and unlock a variety of new viewer experiences.
New Livestream Protocols (Open Beta)
We've enabled WebRTC as an output protocol for livestreaming. This protocol is significantly more performant than HLS and reduces the total latency in our pipeline to ~4 seconds.
To see the benefit of these upgrades, developers must either use the Livepeer Player, or implement a player with support for WebRTC playback
and HLS fallback logic
.
This feature is in open beta, and can be accessed by using the Livepeer Player at
@livepeer/react@2.5.0-next.2
. It will be incorporated into the embeddable player when we move it into the stable release.
Multiparticipant Livestreaming (Closed Beta)
We've shipped a closed beta implementation of multiparticipant livestreaming with sub-second latency. This feature is suitable for video calls and other realtime communication. For early access to this feature, please reach out to hunter@livepeer.org.
While all core management actions (create room, add/remove participant, etc) are contained within the Livepeer API, this implementation makes use of Livekit's open-source stack, and we recommend that frontend developers make use of Livekit's Client SDKs, initializing them with room details provided by Livepeer's API.
Bringing It All Together
While these features enable unique viewing experience on their own, they can be used together to create interactive experiences similar to Twitter Spaces or Instagram Live. With an additional API call, you can livestream a multiparticipant stream or call to a broader audience.
The resulting livestream can be used in conjunction with other livestream features like token-gated access control to build exclusive, community-based video features.
Notes and Limitations
--- In-browser streaming ---
We are currently developing in-browser streaming workflows using WebRTC. For early access, please send an email to hunter@livepeer.org.
--- bframes ---
If your stream includes bframes, HLS will be used in lieu of WebRTC because. This limitation does not affect RTSP playback.
If bframes are present in your stream, you will see a warning on the stream's page in the Livepeer Studio UI. The simplest way to turn off bframes is to choose the "main" profile for H264 instead of the "high" profile in your broadcasting software, but you can usually find a bframes count setting in the advanced settings and/or pass the string "bframes=0" in advanced options (depending on encoder used)