Skip to content

HLS live streams playback problem

When VLC starts to play an HLS live stream it wrongly counts the next update time of M3U8-playlist. A stream starts to play, it plays for several seconds and then hangs for random amount of time (15, may be 30, may be 50 seconds - depends on chunks amount in M3U8 playlist).

Here is an example taken from VLC 3.0.9.2 debug log:

adaptive debug: Updated playlist ID http://192.168.1.135/TOKEN/585/stream.m3u8, next update in 42s

adaptive debug: Representation http://192.168.1.135/TOKEN/585/stream.m3u8
adaptive debug: Segment [#94](https://code.videolan.org/videolan/vlc/-/issues/94) url=http://192.168.1.135/TOKEN/585/stream15907787433044.ts duration 486
adaptive debug: Segment [#95](https://code.videolan.org/videolan/vlc/-/issues/95) url=http://192.168.1.135/TOKEN/585/stream15907787459058.ts stime 486 duration 514
adaptive debug: Segment [#96](https://code.videolan.org/videolan/vlc/-/issues/96) url=http://192.168.1.135/TOKEN/585/stream15907787483895.ts stime 1000 duration 463
adaptive debug: Segment [#97](https://code.videolan.org/videolan/vlc/-/issues/97) url=http://192.168.1.135/TOKEN/585/stream15907787531148.ts stime 1464 duration 568
adaptive debug: Segment [#98](https://code.videolan.org/videolan/vlc/-/issues/98) url=http://192.168.1.135/TOKEN/585/stream15907787579053.ts stime 2032 duration 454
adaptive debug: Segment [#99](https://code.videolan.org/videolan/vlc/-/issues/99) url=http://192.168.1.135/TOKEN/585/stream15907787608472.ts stime 2486 duration 514
adaptive debug: Segment [#100](https://code.videolan.org/videolan/vlc/-/issues/100) url=http://192.168.1.135/TOKEN/585/stream15907787650983.ts stime 3000 duration 486
adaptive debug: Segment [#101](https://code.videolan.org/videolan/vlc/-/issues/101) url=http://192.168.1.135/TOKEN/585/stream15907787710020.ts stime 3486 duration 450
adaptive debug: Segment [#102](https://code.videolan.org/videolan/vlc/-/issues/102) url=http://192.168.1.135/TOKEN/585/stream15907787749430.ts stime 3936 duration 496
adaptive debug: Segment [#103](https://code.videolan.org/videolan/vlc/-/issues/103) url=http://192.168.1.135/TOKEN/585/stream15907787786634.ts stime 4432 duration 568

adaptive debug: Retrieving http://192.168.1.135:80/TOKEN/585/stream15907787608472.ts @0
adaptive debug: Retrieving http://192.168.1.135:80/TOKEN/585/stream15907787650983.ts @0
adaptive debug: Retrieving http://192.168.1.135:80/TOKEN/585/stream15907787710020.ts @0
adaptive debug: Retrieving http://192.168.1.135:80/TOKEN/585/stream15907787749430.ts @0
adaptive debug: Retrieving http://192.168.1.135:80/TOKEN/585/stream15907787786634.ts @0

Here it hangs for a while. As you can see in the beginning, the "next update time" is 42s, but it plays only for retrieved chunks duration (25.4 sec. in total). The rest time (42 sec - 25.4 sec = 16.6 sec) it just waiting (hangs) and do nothing. That is reproducible for all live HLS streams with a playlist length of more than 3,4,5? chunks. You can try to get any live HLS stream and make sure of it. For example: http://strm.yandex.ru/kal/worldlife/worldlife0_169_720p.json/index-v1-a1.m3u8

The problem does not exists in VLC versions below 3.0.9. 3.0.8 plays ok.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information