Update WebRTC

WSE 4.11 introduced an updated WebRTC stack, which includes the features listed below. We recommend updating your WSE version to take advantage of this upgraded functionality.

  • WHIP and WHEP support: Standard HTTP signaling for publishing (WHIP) and playback (WHEP), interoperable with tools such as OBS Studio, FFmpeg, and GStreamer.
  • Configurable STUN and TURN servers (with TURN authentication) per application, to improve connectivity across restrictive NATs and firewalls.
  • Improved ICE: Full candidate gathering and connectivity checks, trickle ICE, and TCP candidate support where UDP is blocked.
  • Expanded codecs: Adds HEVC (H.265) and VP9 alongside H.264 and VP8, with automatic negotiation.
  • Multiple IP / NIC support: Works on secondary public IPs and additional host ports.

The legacy WebRTC implementation remains available.

Upgrading from an earlier version

A fresh installation of WSE 4.11+ will include the proper configuration files for the latest WebRTC stack needs. When upgrading from an earlier version, you must manually update your VHost.xml and Application.xml before you can use the latest WebRTC features. To update your server's configuration files, follow the steps below.

Update VHost.xml

Within your server's [install-dir]/conf/VHost.xml file, you must update the WebRTC HTTP provider and the HTTP streamer adapter. After making the changes below, save the file and restart Wowza Streaming Engine.

WebRTC HTTP provider

Point the WebRTC signaling provider at the updated signaling router. In the <HTTPProviders> element of your SSL/TLS host port, find the <HTTPProvider> whose <BaseClass> is the deprecated class:

<!-- Deprecated WebRTC HTTP provider -->
<HTTPProvider>
    <BaseClass>com.wowza.wms.webrtc.http.HTTPWebRTCExchangeSessionInfo</BaseClass>
    <RequestFilters>*webrtc-session.json</RequestFilters>
    <AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>

Update the <BaseClass> value to the updated class:

<!-- Updated WebRTC HTTP provider -->
<HTTPProvider>
    <BaseClass>com.wowza.wms.webrtc2.http.HTTPWebRTCSignalingRouter</BaseClass>
    <RequestFilters>*webrtc-session.json</RequestFilters>
    <AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>

WebRTC HTTP streamer adapter

  1. In the <HTTPStreamerAdapters> element, add a webrtc adapter:
    <HTTPStreamerAdapter>
      <ID>webrtc</ID>
      <Name>webrtc</Name>
      <Properties>
      </Properties>
    
    </HTTPStreamerAdapter>
  2. Add webrtc to the <HTTPStreamerAdapterIDs> list. For example:
    <HTTPStreamerAdapterIDs>cupertinostreaming,smoothstreaming,sanjosestreaming,dvrchunkstreaming,mpegdashstreaming,webrtc</HTTPStreamerAdapterIDs>

Update Application.xml

For each WebRTC application, open [install-dir]/conf/[application-name]/Application.xml and add webrtc to the existing <HTTPStreamers> list. For example:

<HTTPStreamers>cupertinostreaming,mpegdashstreaming,webrtc</HTTPStreamers>

Save the file and restart Wowza Streaming Engine.