Opened 12 years ago
Closed 5 years ago
#2617 closed defect (fixed)
Playback of HLS fails when one of the variant streams are down
Reported by: | Kyle | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avformat |
Version: | git-master | Keywords: | hls |
Cc: | denim2x@cyberdude.com | Blocked By: | |
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Summary of the bug:
In cases of poorly managed HLS streams where one of the variant streams inside the m3u8 playlist are down, ffmpeg fails to play as soon as it sees a 404 error for one of the variant streams, while iOS ignores the dead stream and just plays it with the ones that work.
How to reproduce:
ffmpeg -i http://telly.powerrangermail.net/hlstest/playlist.m3u8 ffmpeg version N-53690-g2886e80 Copyright (c) 2000-2013 the FFmpeg developers built on May 30 2013 15:49:51 with gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1) configuration: --prefix=/usr --enable-gpl --enable-version3 --enable-nonfree --enable-shared --enable-postproc --enable-libx264 --enable-frei0r --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libdc1394 --enable-libmp3lame --enable-libtheora --enable-libopenjpeg --enable-libvpx --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libvorbis --enable-libxvid --enable-libfaac --cpu=amdfam10 --enable-x11grab --enable-libxavs --enable-libfreetype --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libcelt --enable-openal --enable-libcdio --enable-libaacplus --enable-libmodplug --enable-libpulse --enable-openssl --enable-libv4l2 --enable-libass --enable-libbluray --enable-avresample --enable-libiec61883 --enable-libopus --enable-libcaca --enable-libfdk-aac --enable-libilbc --enable-libtwolame --enable-librtmp --enable-libsoxr --disable-stripping --enable-libaacplus --enable-opencl --enable-libflite --enable-libquvi libavutil 52. 34.100 / 52. 34.100 libavcodec 55. 12.102 / 55. 12.102 libavformat 55. 8.100 / 55. 8.100 libavdevice 55. 2.100 / 55. 2.100 libavfilter 3. 73.100 / 3. 73.100 libavresample 1. 1. 0 / 1. 1. 0 libswscale 2. 3.100 / 2. 3.100 libswresample 0. 17.102 / 0. 17.102 libpostproc 52. 3.100 / 52. 3.100 [http @ 0xf8d2c0] HTTP error 404 Not Found http://telly.powerrangermail.net/hlstest/playlist.m3u8: Input/output error
Since the stream in question that I use is only available weekdays for one hour a day, the output above is with a sample I created that intentionally has the same error so you can reproduce.
Change History (9)
comment:1 by , 12 years ago
Keywords: | hls added |
---|---|
Reproduced by developer: | set |
Status: | new → open |
comment:2 by , 8 years ago
comment:3 by , 8 years ago
follow-up: 6 comment:4 by , 8 years ago
@gorilla.maguila I made a patch causing libavformat
to skip some parsing errors related to M3U - let me know if you have any other issues with FFmpeg
comment:5 by , 8 years ago
Cc: | added |
---|
comment:6 by , 8 years ago
Replying to denim2x:
@gorilla.maguila I made a patch causing
libavformat
to skip some errors related to M3U - let me know if you have any other issues with FFmpeg
If the patch is accepted upstream we will gladly grant you the bounty. Thanks
comment:7 by , 8 years ago
This patch fixes the issue.
http://ffmpeg.org/pipermail/ffmpeg-devel/2017-April/210144.html
comment:8 by , 6 years ago
I don't think this patch works, at least not with current FFmpeg git head (5d958f09):
If one of the playlists that were searched for was not found, the corresponding structure exists but contains invalid data which leads to a crash. This cannot be tested with above link as it needs an url for testing with at least one working playlist (and at least one failing).
comment:9 by , 5 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
The issue is still reproducible with latest git:
Other player such as vlc can handle the stream:
Url for testing http://amd.cdn.turner.com/adultswim/big/streams/playlists/toonami.m3u8