WHIP/WHEP Streaming

Last update:2025-08-19 18:42:42

This guide explains how to use WHIP (WebRTC-HTTP Ingestion Protocol) to publish a live stream and WHEP (WebRTC-HTTP Egress Protocol) to play it back using the CDNetworks Low Latency Live Streaming service.

What are WHIP and WHEP?

  • WHIP (WebRTC-HTTP Ingestion Protocol) is an IETF standard that simplifies publishing a WebRTC stream. Instead of complex signaling, it uses a standard HTTP POST request. This allows any WHIP-compatible encoder to connect to a media server, enabling ultra-low latency, scalable, and secure streaming.
  • WHEP (WebRTC-HTTP Egress Protocol) is the corresponding standard for playback. It uses a similar HTTP-based method to simplify receiving a WebRTC stream, ensuring broad compatibility with modern players.

CDNetworks supports both WHIP for ingest and WHEP for playback.

Prerequisites

Before you start, ensure you have the following:

  1. Configure Your Streaming Domains: Go to the Low Latency Live Streaming console and ensure you have an active push domain (for ingest) and pull domain (for playback).
  2. Compatible Encoder: This guide uses OBS Studio (v30.0 or higher) as an example. You can download it from the OBS Studio Website. For a list of other supported tools, see our Third-Party Compatibility Guide.

Step 1: Configure Your Encoder (OBS)

For a stable WebRTC stream, you must configure both the encoding and stream destination settings correctly.

1. Set Encoding Parameters

  1. In OBS, navigate to Settings > Output.
  2. Set the Output Mode to Advanced.
  3. In the Streaming tab, apply the following settings for optimal performance:
Setting Recommended Value Reason
Video Encoder H.264 Ensures the best compatibility across browsers and devices.
Audio Encoder Opus Required for WebRTC. OBS automatically selects this for WHIP streams.
x264 Options bframes=0 Crucial. Disables B-frames, which can cause stuttering in web players.
OBS advanced output settings for streaming.

2. Set Stream Destination

  1. Navigate to Settings > Stream.

  2. For Service, select WHIP.

  3. In the Server field, enter your WHIP ingest URL using the following format:

    https://<your-push-domain>/<appname>/<streamname>.sdp
    
    • Replace <your-push-domain> with your configured push domain.
    • Replace <appname> and <streamname> with your application and stream identifiers. These are user-defined names that help you organize and manage different streams (e.g., ‘live’ and ‘test’).

Important
The .sdp suffix is mandatory. Our platform requires it to identify the stream as a WHIP ingest.

OBS stream settings configured for WHIP service.

Step 2: Start Your Stream

  1. Click Apply and OK to save your settings.
  2. In the main OBS window, click Start Streaming.
  3. Monitor the connection status at the bottom of the OBS window:
    • Green: The connection is stable and your stream is live.
    • Yellow/Red: There is a connection issue. Verify your Server URL and network stability.

Step 3: Verify Playback

To test your live stream, you can use any WHEP-compatible player or our web-based demo player. For both methods, the playback URL format is the same.

Playback URL Format

https://<your-pull-domain>/<appname>/<streamname>.sdp
  • Ensure the <appname> and <streamname> match the values you set in OBS.
  • The .sdp suffix is required for all WebRTC playback.

Option 1: Test with a WHEP Player

You can use any WHEP-compatible player to test your stream. For example, the Eyevinn WebRTC Player is one such player that our team has confirmed is compatible.

To test with the Eyevinn player:

  1. Open the player: Eyevinn WebRTC Player.
  2. Enter your WHEP URL: Paste your full playback URL into the “WHEP URL” field.
  3. Start Playback: The stream should begin playing automatically.

Option 2: Test with the CDNetworks Demo Player

For a quick verification, you can use our demo player.

Note
This player uses our custom signaling protocol instead of WHEP. It’s a simple way to confirm your stream is working, as it receives the same low-latency video from our network.

To test:

  1. Open the CDNetworks WebRTC Player.
  2. Enter your full playback URL (including .sdp) into the input field.
  3. Click Play. If your stream appears, the configuration is successful.

FAQ

Q: My encoder doesn’t support the Opus audio codec. What should I do?
A:
Our platform can transcode the audio for you. Please contact our support team to enable the audio transcoding feature for your account.

Q: Can I stream with the H.265 (HEVC) codec?
A:
No, WHIP/WHEP do not natively support H.265. You must use H.264 for direct publishing. However, if your source is H.265, please contact our support team to enable video transcoding for your account.

Q: Is disabling B-frames (bframes=0) absolutely required?
A:
While not a protocol requirement, it is highly recommended. B-frames are the most common cause of stuttering and playback freezing in web browsers. For a smooth viewing experience, you should always disable them for WebRTC streaming.

Is the content of this document helpful to you?
Yes
I have suggestion
Submitted successfully! Thank you very much for your feedback, we will continue to strive to do better!