Wowza Community

WebRTC or HLS for playback?

I’m looking into Wowza Cloud as a way to live-stream videos to a large number of viewers (e.g. 10 thousands - 1 million).
I’m trying to build a proof of concept by referencing Wowza example repo (https://github.com/WowzaMediaSystems/webrtc-examples).
The example uses WebRTC for playback, not HLS, which got me confused because I thought CDN that delivers live streams over HLS is automatically integrated with Wowza Streaming Cloud, therefore no point in connecting via WebRTC? Or was the example mainly for Wowza Streaming Engine, which can optionally integrate CDN?

Can someone please tell me the advantages/disadvantages of both approaches for playback (WebRTC vs HLS)?
(WebRTC for playback)

  1. Suitable for a small number of viewers (given that it only allows around 1,000 concurrent connections?)
  2. Adaptive bitrate streaming is difficult
  3. Cannot use nDVR
  4. Cannot use third-party HTML5 players (e.g. TheoPlayer)

(HLS for playback)

  1. Suitable for a large number of viewers (as it’s delivered through CDN)
  2. Adaptive bitrate streaming is easy
  3. Can use nDVR
  4. Can use third-party HTML5 players (e.g. TheoPlayer)

These are my assumptions, but would appreciate it a lot if someone could clear up my confusion.
Thanks

I can help you @Ren_Ookawa, but first know the webrtc sample you referenced was for Streaming Engine and not Streaming Cloud.

In Cloud you can connect any camera source for delivery over HLS using the CDN as you described and it’s capable of reaching a very large number of viewers.

If you choose your camera source to be through webrtc, well yes, Streaming Cloud can ingest a webrtc stream and deliver it for either webrtc playback or HlS playback. You have the choice between the two meaning you can have webrtc> Cloud>webrtc playback or webrtc>Cloud>HLS playback.

Wowza Streaming Cloud can convert the incoming webrtc stream to HLS if you wanted to.
Webrtc playback is for streams that need to be close to real time but not suitable for thousands of viewers.

HLS is better for reaching a greater number in the tens or hundreds of thousands, but the latency or delay can be anywhere from 6 seconds to 45 seconds depending on your settings.

So that’s the difference: Webrtc is for sub-one second latency or near real time but doesn’t scale well. HLS reaches most devices anywhere in the world so it scales well for very large audiences, but will have some latency.

This article below goes into more detail for you as far as the differences in webrtc or HLS playback when using Streaming Cloud. Hope that helps…last thing to know is webrtc is complicated in wowza and will require advanced knowledge of the webrtc APIs. It’s not an out- of-the box solution like HLS streaming is. Webrtc will require some development and configuration work on your side.

https://www.wowza.com/docs/webrtc-workflows-in-wowza-streaming-cloud