jwplayer / jwplayer

JW Player is the world's most popular embeddable media player.
https://developer.jwplayer.com/
Other
2.53k stars 976 forks source link

Missing segments on hls make player switch and block in error state #1569

Closed privaloops closed 7 years ago

privaloops commented 7 years ago

Expected Behavior

Continue playing even if some segment are missing (juste like with 7.6.0)

Actual Behavior

With > 7.7.0, an error is triggered and the player blocks in error state, no possibility to read video anymore.

Steps to reproduce

  1. go on old stream tester : http://demo.jwplayer.com/developer-tools/http-stream-tester/
  2. use this hls : http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/master.m3u8
  3. select 720p (where segments are missing)

Environment

robwalch commented 7 years ago

We don't error in 7.8.0, but the video does not play either. We can see this behavior in the hls.js demo page as well. I'm not sure yet what is preventing the player from beginning playback http://dailymotion.github.io/hls.js/demo/?src=http%3A%2F%2Fartehls-vh.akamaihd.net%2Fi%2Fam%2Ftvguide%2Fdefault%2F052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil%2Fmaster.m3u8&enableStreaming=true&autoRecoverError=true&enableWorker=false&levelCapping=-1&defaultAudioCodec=undefined

The stream also freezes our Flash HLS provider - even in 7.6.1. It only plays there for about a second and then gets stuck.

This seems like an issue with the media being provided. Can you include more information about how it should work? Is there a particular level that has playable media you expect the player to fallback to? Is that what's happening in Safari?

Here's some of the output from Apple's mediastreamvalidator. Are all three top levels missing segments?

mediastreamvalidator: Beta Version 1.1(150608)

Validating master playlist http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/master.m3u8
Validating media playlist http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_0_av.m3u8 [ 1.78 Mbits/sec]
Validating media playlist http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_1_av.m3u8 [ 2.60 Mbits/sec]
Validating media playlist http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_2_av.m3u8 [923.00 kbits/sec]
Validating media playlist http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_3_av.m3u8 [428.00 kbits/sec]
Validating media playlist http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_3_a.m3u8 [61.00 kbits/sec]

Segment processing interrupted: http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_0_av.m3u8 - 180 out of 551 segments processed...

Segment processing interrupted: http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_1_av.m3u8 - 123 out of 551 segments processed...

Segment processing interrupted: http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_2_av.m3u8 - 322 out of 551 segments processed...

--------------------------------------------------------------------------------
http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/master.m3u8
--------------------------------------------------------------------------------

Playlist Syntax:

    Warning: (0:-12274) PROGRAM-ID has been deprecated and is no longer a valid attribute for #EXT-X-STREAM-INF
    --> Line: #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1776000,RESOLUTION=720x406,CODECS="avc1.77.30, mp4a.40.2",CLOSED-CAPTIONS=NONE

    Warning: (0:-12274) PROGRAM-ID has been deprecated and is no longer a valid attribute for #EXT-X-STREAM-INF
    --> Line: #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2603000,RESOLUTION=1280x720,CODECS="avc1.77.30, mp4a.40.2",CLOSED-CAPTIONS=NONE

    Warning: (0:-12274) PROGRAM-ID has been deprecated and is no longer a valid attribute for #EXT-X-STREAM-INF
    --> Line: #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=923000,RESOLUTION=640x360,CODECS="avc1.77.30, mp4a.40.2",CLOSED-CAPTIONS=NONE

    Warning: (0:-12274) PROGRAM-ID has been deprecated and is no longer a valid attribute for #EXT-X-STREAM-INF
    --> Line: #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=428000,RESOLUTION=384x216,CODECS="avc1.66.30, mp4a.40.2",CLOSED-CAPTIONS=NONE

    Warning: (0:-12274) PROGRAM-ID has been deprecated and is no longer a valid attribute for #EXT-X-STREAM-INF
    --> Line: #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=61000,CODECS="mp4a.40.2",CLOSED-CAPTIONS=NONE

    Warning: (-31000:0) Old codec format (RFC 4281) subelements found. Use format specified by RFC 6381
    --> Detail: Subelements: 77.30
    --> Compare URL: http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_0_av.m3u8

    Warning: (-31000:0) Old codec format (RFC 4281) subelements found. Use format specified by RFC 6381
    --> Detail: Subelements: 77.30
    --> Compare URL: http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_1_av.m3u8

    Warning: (-31000:0) Old codec format (RFC 4281) subelements found. Use format specified by RFC 6381
    --> Detail: Subelements: 77.30
    --> Compare URL: http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_2_av.m3u8

    Warning: (-31000:0) Old codec format (RFC 4281) subelements found. Use format specified by RFC 6381
    --> Detail: Subelements: 66.30
    --> Compare URL: http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_3_av.m3u8

Alternate playlist(s):

--------------------------------------------------------------------------------
http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/index_0_av.m3u8
--------------------------------------------------------------------------------

Playlist Syntax:

    Warning: (0:-12268) #EXT-X-ALLOW-CACHE has been deprecated
    --> Line: #EXT-X-ALLOW-CACHE:YES

    Warning: (0:-12264) extra characters at end of line
    --> Line: #EXT-X-ALLOW-CACHE:YES

Processed 180 out of 551 segments:

http://artehls-vh.akamaihd.net/i/am/tvguide/default/052745-000-A_2_VO-STF_AMM-Tvguide_XQ.9726875.smil/segment5_0_av.ts:

    WARNING: Media segment bandwidth exceeded target playlist bandwidth
    --> Bandwidth exceeded by 6800.710 kbits/sec (8576.710 kbits/sec vs 1776.000 kbits/sec).
shaikhimran786 commented 7 years ago

hi @robwalch , any updates on this?

fdambrosio commented 7 years ago

we've similar issue too

privaloops commented 7 years ago

the given example hls has been reencoded, no more missing segment for the demo sorry

johnBartos commented 7 years ago

@shaikhimran786 We're working on improving HLS playback in cases where a segment is missing/incomplete. Hlsjs right now doesn't always handle these cases well. There's a lot of cases but the big one is when a segment 404's. You can track our progress on these issues in our hlsjs fork: https://github.com/jwplayer/hls.js/pulls

Any test streams you can give us help a lot!

robwalch commented 7 years ago

Streams with missing segments will error one way or another. Please address the issue with your missing segments.