Wowza Community

LL-HLS and SMIL adaptive rate streaming

I can play LL-HLS (each of) the single bitrate streams but if I try the streams adaptive streams via smil it always fails (I get a 404 error for the chunklist and successfully loading the smil file).

If I try the smil file via mpegdash and hls streaming it works fine. Your documentation says it’s supported from 4.8. I’ve tried this from our own html based player and VLC.

Is there an issue or can adaptive bitrate cupertino and LL-HLS not work concurrently? Or something specific I’m missing being as it’s the chunklist that appears to fail?

Well it may be impossible to know why you’re getting that 404 without us reviewing your config, could be other variables. Yes, you can configure ABR for LL-HLS, did you happen to see the example urls here?

https://www.wowza.com/docs/deliver-apple-low-latency-hls-live-streams-using-wowza-streaming-engine#test-stream-playback

Your playback url depends on how you configured the chunks or fragments in Wowza. Also keep in mind that if you’re trying this on a player that doesn’t support the LL-HLS spec, it won’t work.

You can test LL-HLS streams by entering the playback URL in the Safari browser on iOS 14, other native apps on devices running iOS 14, or any player that supports LL-HLS. If a player supports HLS but not LL-HLS, it will default to playing LL-HLS streams as standard HLS.

If cmafstreamingpacketizer and cupertinostreamingpacketizer are enabled, specify the stream playback URL using one of the following formats:

Single bitrate

https://[ address ]/[ application ]/[ application-instance ]/[ stream-name ]/playlist_sfm4s.m3u8

Adaptive bitrate

https://[ address ]/[ application ]/[ application-instance ]/smil:[ stream-name ].smil/playlist_sfm4s.m3u8

Where:

  • [ address ] is the IP address or domain and port (default port 443)
  • [ application ] is the application name
  • [ application-instance ] is the name of the application instance (if omitted, defaults to definst)
  • [ stream-name ] is the stream name

So, for example, if only cmafstreamingpacketizer is enabled, the playlist URL for an adaptive bitrate LL-HLS stream that uses the address example.com , the default live application, and the default stream name myStream is:

https://example.com/live/smil:myStream.smil/playlist.m3u8

If cmafstreamingpacketizer and cupertinostreamingpacketizer are both enabled, the adaptive bitrate LL-HLS playlist URL for the same example is:

https://example.com/live/smil:myStream.smil/playlist_sfm4s.m3u8

and the playback URL for the Cupertino HLS stream is either:

https://example.com/live/smil:myStream.smil/playlist.m3u8

or

https://example.com/live/smil:myStream.smil/playlist_sfts.m3u8

where _sfts indicates that the media playlist contains .ts segments.

It’s still so new in the industry, we’d prefer to take a closer look in a support ticket to see where this is failing. But have you tried it in an iOS device that supports LL-HLS?

Also keep this in mind:

  • If you’re trying to use the CMAF packetizer to deliver LL-HLS and HLS or MPEG-DASH streams, you must use two separate live applications: one configured specifically for LL-HLS and another for CMAF-packetized HLS and MPEG-DASH.

https://www.wowza.com/docs/deliver-apple-low-latency-hls-live-streams-using-wowza-streaming-engine#test-stream-playback