• BurroCargado's avatar
    Fix seeking HLS on-demand streaming not working · 11d1f560
    BurroCargado authored
    This issue occurs when playing HLS streaming delivered
    from a server that does not support partial requests.
    The issue is reproduced as follows(using Ubuntu 20.04 PC):
    
    1. Prepare HLS example content.
    
    $ mkdir test
    $ ffmpeg -i example.flac -vn -c:a aac -b:a 128000 -f hls -hls_list_size 0 test/output.m3u8
    (ffmpeg 4.2.4 is used)
    
    2. Prepare web server without partial requests support.
    (Docker version 20.10.12 and NGINX official Docker image is used)
    
    $ docker run --name tmp-nginx-container -d nginx
    $ docker cp tmp-nginx-container:/etc/nginx/conf.d/default.conf .
    $ docker rm -f tmp-nginx-container
    
    Edit default.conf and add "max_ranges 0;" to "location / {...}".
    This disables partial requests support,
    removes 'Accept-Ranges: bytes' header from the server response.
    Then, run the server:
    
    $ docker run --name test-nginx -v $PWD/test:/usr/share/nginx/html:ro -v $PWD/default.conf:/etc/nginx/conf.d/default.conf -d -p 8080:80 nginx
    
    3. Setup MPD to Play the next URL.
    
    http://address-of-the-server:8080/output.m3u8
    
    Seeking this stream results in "exception: Not seekable".
    11d1f560
Name
Last commit
Last update
.github Loading commit data...
android Loading commit data...
build Loading commit data...
doc Loading commit data...
python/build Loading commit data...
src Loading commit data...
subprojects Loading commit data...
systemd Loading commit data...
test Loading commit data...
win32 Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
NEWS Loading commit data...
README.md Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...
mpd.svg Loading commit data...
valgrind.suppressions Loading commit data...