EXT-X-DISCONTINUITY

Hi,


I would like to know what is the method by hls draft pantos standard to handle missing HLS segments on the playlist.

It's not very clear to me.


The scenario is that the HLS server for some reason like ingest network issue has a segment which is missing.

How should we handle this on the playlist by standard?

Using EXT-X-DISCONTINUITY tags for the missing segment or doing nothing in the playlist and letting the HLS client get 404?


Thanks and Regards,


Marco

Replies

Best thing I can do is point you to two talks from WWDC 2017:


"Error Handling Best Practices for HTTP Live Streaming"

https://developer.apple.com/videos/play/wwdc2017/514/


and


"Advances in HTTP Live Streaming"

https://developer.apple.com/videos/play/wwdc2017/504/

Hi,


Thanks for your help.

So from the two videos I see that there is a new tag EXT-X-GAP which is exactly for the scenario which I am describing.

As this is new this is not implemented on my case, so my question is before this tag what should the server use in order for the client not to freeze if for some reason there a missing segment?

I know it will depend on the client implementation but in this scenario is all Apple native players (Safari in IOS and MacOS).

So, basically the big question is what is Safari expecting to receive?


I guess as there is a new tag for this maybe it does not make sense to receive EXT-X-DISCONTINUITY and just receve a normal manifest which will get 404. Do you know what safari expects in order not to freeze in a missing segment?


Regards,


Marco

The error handling talk mentions - "For backward compatibility for any segment request marked as GAP the server should still send 404"

Hi,


I tested using the 404 reply for missing segments and what I see is that Safari reacts to it by trying the same segment on other bitrates, going down and down until it has no more (it asks for media playlist before each segment). Then stops.

The problem with this is that if I have for example a 3 second glitch on the encoder ingest network the same segment on all bitrates is affected and will be missing.

So Safari gets 404 for the segment for all bitrates and quits.

What I would like to know is if there is some implementation that could make Safari not quit but pass to the next segment.

Of course it will have a freeze for some seconds, but I want it to continue after that and make it robust to a missing segment in all layers.


Do you know, before this new EXT-X-GAP tag if there was a way to implement that with Safari, I mean, to signal somehow a gap that would make Safari go to the next segment?

We were trying to use EXT-X-DISCONTINUITY but we also cannot make it work and Safari freezes anyway.


Regards,


Marco