Show HN: webrtcforthestreamer.com – How WHIP makes streaming more connected

Sean-Der2 pts1 comments

WebRTC for the Streamer

Nerd Mode

WebRTC for the Streamer

We wrote this site to explain/share the ways that we believe WebRTC (WHIP/WHEP) can improve streaming.

These things are available in other protocols (SRT, MoQ, RIST). The protocol itself isn't the important part. We<br>would just like streamers to know what is possible. These improvements can change so many things around streaming for the better.

WebRTC for the Streamer was written by the developers who added<br>WHIP/WebRTC support to OBS<br>and maintain<br>Broadcast Box. A companion piece to<br>this site is WebRTC for the Curious.

Streaming can be better... Read, Watch or Try it Now!

Watch

Read

Speed

WebRTC has ~200ms of latency. Interact with your viewers and friends like a video call. Everything is more connected and fun.

Privacy

WebRTC has End-to-End Encryption (E2E). When enabled, servers can't watch or tamper with your stream. Only end users can decrypt it.

Everyone Streams

WebRTC can publish from a web browser directly, no download necessary. Makes it easier to convince a friend to stream or bring entirely<br>new types of people into streaming that couldn't do it before.

Higher Quality

WebRTC supports modern audio and video codecs like AV1, which can deliver about 30% better quality at the same bitrate.

Self Hosted

WebRTC uses one protocol for publishing and playback. Since WebRTC is widely used outside of streaming, lots of open source servers already exist.

Stream Anywhere

Stream on cellular, satellite, or bad Wi-Fi. WebRTC is designed to adapt to changing network conditions.

Speed

With WebRTC you get sub-500ms latency, you will get the experience of a video call. Having this latency can change the dynamics of streaming.

Streaming together

Streaming to a private group of friends is more connected when the latency is lower. It's a lot of fun to recreate the "sitting on the couch together"<br>experience when you stream gameplay/movie to your friends.

Co-streaming to an audience

When co-streaming to an audience you want the lowest latency possible. It allows you to have authentic conversations with the other streamer, instead of<br>an awkward back and forth. High latency leads to desync between you and your partner's gameplay. It is confusing as a viewer to see events happening<br>at different times on the two feeds.

Audience interaction

WebRTC allows you to respond to chat like a real conversation. It feels like a more connected/human experience to talk with people directly, and not responding seconds later.<br>The audience interaction doesn't have to be text only. Some games allow the audience to change the game environment itself. Seeing it instantly react when they press<br>the button is kind of magical.

Privacy

WebRTC provides APIs that lets broadcasters encrypt media and viewers decrypt it so the server has no access to the video. The server can support<br>all different types of clients thanks to simulcast.

flowchart LR<br>Broadcaster[Broadcaster]<br>Server[WebRTC Server]<br>ViewerA[Viewer A]<br>ViewerB[Viewer B]

Broadcaster |P2P key exchange| ViewerA<br>Broadcaster |P2P key exchange| ViewerB<br>Broadcaster -->|Encrypted media| Server<br>Server -->|Encrypted media| ViewerA<br>Server -->|Encrypted media| ViewerB

Self Hosted

WebRTC has quite a few self-hosting options. This has happened for a few reasons.

Wide usage outside of streaming

WebRTC is widely used outside of broadcasting. It is used for robotics, conferencing, "AI voice assistants" and more.<br>So it can benefit from the ecosystem that existed before WebRTC broadcasting.

One protocol for publish+playback

If you are using RTMP you have to use another protocol for playback (usually HLS/DASH). With WHIP and WHEP you can use WebRTC for both,<br>which means fewer moving parts to run.

Cheaper to run/no transcoding

A WebRTC server just forwards media packets instead of transcoding the stream. It's a lot easier to deploy/manage/scale because of this.

Flexible topologies (P2P and Mesh)

WebRTC isn't limited to client-server. You can connect viewers directly (P2P) or in a Mesh. This makes self-hosting easier and cheaper since you don't always need a powerful central server to distribute media.

graph LR<br>A[OBS] --> B[Browser]

graph LR<br>A[OBS] --> B[User A]<br>B --> C[User B]<br>B --> D[User C]<br>D --> E[User E]

Everyone Streams

Streaming from the browser increases accessibility. The video quality/composition won't be as good, but these voices are important.

Everyone can broadcast

Streaming today requires that you install dedicated software. When configuring your software you have to be aware of things like bitrate, codecs and watch your resource usage.<br>Broadcasting from the browser significantly reduces the barrier of entry to streaming. So many new voices and types of streams will be available when it is opened to more people.

Browser is everywhere

A web browser is available everywhere. Phones, TVs, tablets and smart cars etc... this allows you to broadcast from all these places where it wasn't available...

webrtc streaming server like latency stream

Related Articles