This article describes the supported WebRTC functionality and workflows in Wowza Streaming Engine.
About WebRTC
Web real-time communication (WebRTC) is an open-source project that enables real-time transmission of audio, video, and data in web browsers and native apps. WebRTC is designed for peer-to-peer connections but includes fallbacks in case direct connections fail. TLS is mandatory for WebRTC streams.
When ingesting WebRTC source content, WSE retrieves session description protocol (SDP) information over a WebSocket connection to the browser, or over HTTP when using WHIP (publishing) or WHEP (playback).
You can ingest and play WebRTC streams with all major desktop and mobile browsers that support WebRTC APIs.
WebRTC supported codecs
| Video | Audio |
|---|---|
|
|
WebRTC limitations
- Wowza Streaming Engine only supports audio and video streaming via WebRTC. Support for a data channel, commonly used for text-based chat in WebRTC, hasn't been implemented.
WebRTC workflows in Wowza Streaming Engine
WebRTC ingest and egress
The simplest WebRTC implementation in WSE is pass-through ingest and egress. (Note: WebRTC outputs consume significant bandwidth.)
One-to-few and few-to-few WebRTC broadcasts
You can ingest one or a few WebRTC streams and deliver them to a few viewers via WebRTC. As the number of connections grows, however, your performance may suffer.
Wowza Streaming Engine also supports ingesting source streams over RTSP, SRT, and RTMP and then outputting them for playback over WebRTC.
One-to-many WebRTC broadcasts
For one-to-many WebRTC streams, we recommend the WSE transcoder feature, which allows you to transcode audio and video into any standard output format. After transcoding you can deliver a stream to HLS or MPEG-DASH. This allows you to scale your solution with significantly less bandwidth than direct WebRTC delivery.
To scale your delivery to viewers, you can also use the Stream Targets feature to send the stream to content delivery networks (CDNs) and services such as Wowza Video.
Notes:
- To send a WebRTC stream from WSE to a Wowza CDN endpoint, transcode it to RTMP or HLS.
- When using ABR with MPEG-TS HLS transcode both the audio and video codecs.
Learn more
WebRTC port configuration
When configuring Wowza Streaming Engine to ingest or play streams with WebRTC, you must ensure that certain ports are accessible for client connections.
Note: If you have endpoint security enabled, deep packet inspection (DPI) may cause WebRTC streams to stutter. To prevent this, configure your platform to bypass DPI for ports 443 (signaling), 6970–9999 (media), and 1935 (fallback).
| Port | Protocol | Description |
|---|---|---|
| 443 | TCP | WSE uses WSS for peer-to-peer connections. You can use the default port of 443 or modify
[install-dir]/conf/VHost.xml if needed. |
| 6970 to 9999 | UDP | Default range. Configure starting port using the DatagramStartingPort parameter in [install-dir]/conf/Server.xml. |
| 1935 | TCP | Configure the host post in [install-dir]/conf/VHost.xml. Set the IceCandidateIpAddresses property in [install-dir]/conf/[application-name]/Application.xml.
|
| 554 | TCP | Not supported for TCP ICE candidates. |
See Troubleshoot network errors for information about troubleshooting port configurations.




