Client-side HLS playlist with EXT-X-DISCONTINUITY tag

Hi there,

We would like to playback multiple files as one playlist (with total duration) on iOS devices. We call this a sequential playlist. According to the HLS spec (http://tools.ietf.org/html/draft-pantos-http-live-streaming-08) the way to do this is by separating different TS files with the EXT-X-DISCONTINUITY tag. We tested this with manually generated TS files and playlists and it works fine: the different video’s are seamless stitched together and the standard media player on iOS shows the duration of the combined files.

Our next step was to implement this for Wowza. The idea is to requests the m3u8’s file for the different files that need to be ‘stitched’. This ‘script server’ parses the different playlists, extracts the links of the TS files (including sesssionid’s) and references all the TS files (with absolute url) in one m3u8 file (separated by the EXT-X-DISCONTINUITY tag).

The problem is that a server-side script on the script server is actually requesting the files from Wowza. I am afraid that the session is with the script server instead of with the user. The other problem I see is the expiration of a session. The third file (in a playlist with total 3 videos) is logically played some time (up to 1 or 2 hour later) after the first file. The session could be closed by then.

My questions:

  1. Is there a solution for this sequential playlist feature that is supported by Wowza?

  2. Is it possible for a random client to reuse the sessionid that is given to the server when server-side parsing the different playlists?

  3. If the script server uses (for example) CURL to change the headers (incl. adding user ip) of the m3u8 request to Wowza, would the user later be able to reuse the session? Or is something else binding the session to the user?

  4. Another solution that we thought of is requesting the m3u8 files with javascript, parse them locally and feed the local generated playlist to the iOS mediaplayer. Do you think that this is theoretically possible?

  5. I’ve read that there are differences between Wowza 2 and 3.11 with regards to reusing closed sessions. Does this apply to this situation and what would be the limitations of Wowza 2?

Any help would be appreciated.

Best,

Bauke

Bauke,

This is not supported at present, but it will be in a future release of Wowza. I don’t have any time-frame.

Richard

This is still anticipated, a future feature, but still no time frame.

Richard

Is such a feature already implemented now?

This feature has been requested many times in this forum, and is already for a very long time on the list.

Please, is there a more concrete indication regarding timeframe or priority?

Hi wowza support,

Does latest Wowza Streaming Server supports EXT-X-DISCONTINUITY tag?

This is not currently supported. But it will be in a future version of Wowza I do not have a time frame.

+1 for also wanting this. Has anyone managed to find a workaround for doing client side seamless playlists? We’re experimenting with using two players and swapping the z-indexes then manually building a timeline.

There is an answer for this ?? it is possible now?

This was fixed in 4.6.0 @carlos rios see the release notes for that version.

  • Added support to the Akamai HLS stream target for adding the EXT-X-ENDLIST tag to the end of the media playlist when the source times out or disconnects. This is enabled by adding “cupertino.addEndListOnDisconnect”:“true” to the map file entry (default is false)

Hope this helps you and I responded to your other post as well. Sorry we didn’t update this thread when we offered the feature.

Thanks Rose. In fact this is important to do… and I certainly will use but the question here is about discontinuity… or this two are related ?

I’m sorry, I wasn’t very clear. I checked with support and a feature request to support EXT-X-DISCONTINUITY tag to HLS playlist in nDVR mode has been made, but that’s for DVR.

Otherwise: Wowza will only add the discontinuity tag between clips if there is a change in the encoding params, such as frame size, aspect ratio or codec changes. We generally won’t insert a tag for timing issues. It isn’t possible to force a discontinuity tag to be inserted.

As far as implementation, you will need to do the implementation and injection of this. You will need a method of injecting the data into the stream and it should pass through.

Here is one option we have documented and have code for on the player side: (Client Side)
https://www.wowza.com/docs/how-to-enable-player-side-ad-insertion-using-wowza-streaming-engine

Thank you Rose. Now, I went to HTTP Streamers Cupertino Settings and there is not such property cupertino.addEndListOnDisconnect I must add with the custom option? it is well written with a dot ?

The engineers say this is can be complicated depending on the workflow and we don’t currently have a one size-fits-all solution unfortunately.

They’re requesting a support ticket from you so they can see how to implement this for your use case. Thanks so much for your patience on this Carlos.

https://www.wowza.com/support/open-ticket