Knowledge Base > Streaming > WHIP Streaming Guide

WHIP Streaming Guide

General Overview

WHIP is a new protocol that enables broadcasting via WebRTC. WebRTC is a Free/IETF Standard for real-time communication. WebRTC was originally used for conferencing, but is now common in security cameras, robots and other situations that need sub-second latency and have dynamic conditions.

Why WHIP?

  • Interactive latency - Easier to interact with audience with only 100ms of delay.
  • Co-Hosting - Add co-hosts from web browser or anywhere WebRTC is available.
  • P2P - OBS can connect directly to a browser across networks, no servers needed.
  • E2E Encryption - When configured servers can't access/modify video. No ad insertion.
  • Mobile Streaming - WebRTC supports network switching. Move between Wifi/Cellular without disconnects.
  • Simpler Servers - WebRTC handles publishing and playback. Less code to run when hosting servers.
  • Codec Flexibility - AV1, H265 and Opus available. Custom codecs are possible.
  • More Platforms - With WebRTC broadcast or watch from Web, Mobile, microcontrollers and more.
  • Multi-track - Clients can send multiple feeds. Multi-lingual broadcasts or multiple video angles.

To learn more about WebRTC the protocol WebRTC for the Curious is a Free/Open Source book
on how it works. The WHIP standard is here.


Where can I use WHIP?


How to use WHIP with OBS Studio

Note: WHIP is currently not supported in the Ubuntu 24.04 PPA release of OBS Studio. If you require WHIP, use the Flatpak instead.

Obtain a URL and Bearer Token that you will use for your WHIP Session. A Bearer Token is just the WHIP name for 'Stream Key'.

Go to Settings -> Stream and set the following values.

Service: WHIP
Server: Server from WHIP Provider
Bearer Token: Bearer Token from WHIP Provider

Your settings page should look like this:


Simulcast

Note: This section describes possible future functionality that is not yet included in any release of OBS Studio (as of 32.0.1).

Simulcast allows OBS to send multiple quality levels of video. Simulcast is used for the following reasons.

  • Generation Loss - Transcoding causes generational loss. Encoding once is higher quality.
  • More control - Users control the exact encoding settings.
  • Lower Latency - No trancode reduces latency.
  • Simpler Servers - Transcoding is CPU intensive making it hard to manage.

OBS allows for between 1 and 4 layers to be sent. Each layers bitrate/resolution is
taken as a percentage of the global setting.

  • Total Layers 1
    • 100% Resolution and Bitrate
  • Total Layers 2
    • 100% Resolution and Bitrate
    • 50% Resolution and Bitrate
  • Total Layers 3
    • 100% Resolution and Bitrate
    • 66% Resolution and Bitrate
    • 33% Resolution and Bitrate
  • Total Layers 4
    • 100% Resolution and Bitrate
    • 75% Resolution and Bitrate
    • 50% Resolution and Bitrate
    • 25% Resolution and Bitrate

Simulcast is configured on the Settings -> Stream page. Below is a session that is configured to send 3 layers.