Skip to content

vlc adaptive module does not properly handle relative urls

i will put the content of the manifest as the urls will expire quickly(as an example m3u8 and mpd manifests from https://vimeo.com/243867727), i will just put the content of the manifest: DASH manifest:

<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" mediaPresentationDuration="PT2M57.208S" minBufferTime="PT6.000S">
    <BaseURL>../</BaseURL>
    <Period start="PT0.000S" duration="PT2M57.208S">
        <AdaptationSet bitstreamSwitching="true">
            <ContentComponent contentType="video"></ContentComponent>
            <Representation id="video-877607653" codecs="avc1.64001E" mimeType="video/mp4" width="640" height="360" frameRate="24" startWithSAP="1" bandwidth="586000">
                <SegmentTemplate timescale="48000" media="877607653/chop/segment-$Number$.m4s" initialization="877607653/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="288000" r="28"></S>
                        <S t="8352000" d="153999"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation id="video-877607658" codecs="hvc1.2.4.L63.90" mimeType="video/mp4" width="640" height="360" frameRate="24" startWithSAP="1" bandwidth="637000">
                <SegmentTemplate timescale="48000" media="877607658/chop/segment-$Number$.m4s" initialization="877607658/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="288000" r="28"></S>
                        <S t="8352000" d="153999"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation id="video-877607652" codecs="avc1.64001F" mimeType="video/mp4" width="960" height="540" frameRate="24" startWithSAP="1" bandwidth="1008000">
                <SegmentTemplate timescale="48000" media="877607652/chop/segment-$Number$.m4s" initialization="877607652/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="288000" r="28"></S>
                        <S t="8352000" d="153999"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation id="video-877607651" codecs="hvc1.2.4.H120.90" mimeType="video/mp4" width="1920" height="1080" frameRate="24" startWithSAP="1" bandwidth="4693000">
                <SegmentTemplate timescale="48000" media="877607651/chop/segment-$Number$.m4s" initialization="877607651/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="288000" r="28"></S>
                        <S t="8352000" d="153999"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation id="video-877607649" codecs="avc1.640028" mimeType="video/mp4" width="1920" height="1080" frameRate="24" startWithSAP="1" bandwidth="3107000">
                <SegmentTemplate timescale="48000" media="877607649/chop/segment-$Number$.m4s" initialization="877607649/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="288000" r="28"></S>
                        <S t="8352000" d="153999"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation id="video-877607648" codecs="avc1.640020" mimeType="video/mp4" width="1280" height="720" frameRate="24" startWithSAP="1" bandwidth="1695000">
                <SegmentTemplate timescale="48000" media="877607648/chop/segment-$Number$.m4s" initialization="877607648/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="288000" r="28"></S>
                        <S t="8352000" d="153999"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation id="video-877607641" codecs="hvc1.2.4.L90.90" mimeType="video/mp4" width="960" height="540" frameRate="24" startWithSAP="1" bandwidth="1587000">
                <SegmentTemplate timescale="48000" media="877607641/chop/segment-$Number$.m4s" initialization="877607641/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="288000" r="28"></S>
                        <S t="8352000" d="153999"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation id="video-877607636" codecs="hvc1.2.4.L93.90" mimeType="video/mp4" width="1280" height="720" frameRate="24" startWithSAP="1" bandwidth="2479000">
                <SegmentTemplate timescale="48000" media="877607636/chop/segment-$Number$.m4s" initialization="877607636/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="288000" r="28"></S>
                        <S t="8352000" d="153999"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet>
            <ContentComponent contentType="audio"></ContentComponent>
            <Representation id="audio-877607653" codecs="mp4a.40.2" mimeType="audio/mp4" startWithSAP="1" bandwidth="128000" audioSamplingRate="48000">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></AudioChannelConfiguration>
                <SegmentTemplate timescale="48000" media="../audio/877607653/chop/segment-$Number$.m4s" initialization="../audio/877607653/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="287744"></S>
                        <S t="287744" d="288768"></S>
                        <S t="576512" d="287744" r="2"></S>
                        <S t="1439744" d="288768"></S>
                        <S t="1728512" d="287744" r="2"></S>
                        <S t="2591744" d="288768"></S>
                        <S t="2880512" d="287744" r="2"></S>
                        <S t="3743744" d="288768"></S>
                        <S t="4032512" d="287744" r="2"></S>
                        <S t="4895744" d="288768"></S>
                        <S t="5184512" d="287744" r="2"></S>
                        <S t="6047744" d="288768"></S>
                        <S t="6336512" d="287744" r="2"></S>
                        <S t="7199744" d="288768"></S>
                        <S t="7488512" d="287744" r="2"></S>
                        <S t="8351744" d="154624"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation id="audio-877607652" codecs="mp4a.40.2" mimeType="audio/mp4" startWithSAP="1" bandwidth="256000" audioSamplingRate="48000">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"></AudioChannelConfiguration>
                <SegmentTemplate timescale="48000" media="../audio/877607652/chop/segment-$Number$.m4s" initialization="../audio/877607652/chop/segment-0.mp4">
                    <SegmentTimeline>
                        <S t="0" d="287744"></S>
                        <S t="287744" d="288768"></S>
                        <S t="576512" d="287744" r="2"></S>
                        <S t="1439744" d="288768"></S>
                        <S t="1728512" d="287744" r="2"></S>
                        <S t="2591744" d="288768"></S>
                        <S t="2880512" d="287744" r="2"></S>
                        <S t="3743744" d="288768"></S>
                        <S t="4032512" d="287744" r="2"></S>
                        <S t="4895744" d="288768"></S>
                        <S t="5184512" d="287744" r="2"></S>
                        <S t="6047744" d="288768"></S>
                        <S t="6336512" d="287744" r="2"></S>
                        <S t="7199744" d="288768"></S>
                        <S t="7488512" d="287744" r="2"></S>
                        <S t="8351744" d="154624"></S>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>

HLS manifest:

#EXTM3U
#EXT-X-VERSION:7
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=626307,AVERAGE-BANDWIDTH=432000,RESOLUTION=640x360,FRAME-RATE=24.000,CODECS="avc1.64001E,mp4a.40.2"
../877607653/playlist.m3u8
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=685637,AVERAGE-BANDWIDTH=504000,RESOLUTION=640x360,FRAME-RATE=24.000,VIDEO-RANGE="SDR",CODECS="hvc1.2.4.L63.90,mp4a.40.2"
../877607658/playlist.m3u8
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=1407618,AVERAGE-BANDWIDTH=864000,RESOLUTION=960x540,FRAME-RATE=24.000,CODECS="avc1.64001F,mp4a.40.2"
../877607652/playlist.m3u8
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=5073822,AVERAGE-BANDWIDTH=2897000,RESOLUTION=1920x1080,FRAME-RATE=24.000,VIDEO-RANGE="SDR",CODECS="hvc1.2.4.H120.90,mp4a.40.2"
../877607651/playlist.m3u8
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=4142353,AVERAGE-BANDWIDTH=2118000,RESOLUTION=1920x1080,FRAME-RATE=24.000,CODECS="avc1.640028,mp4a.40.2"
../877607649/playlist.m3u8
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=2329263,AVERAGE-BANDWIDTH=1239000,RESOLUTION=1280x720,FRAME-RATE=24.000,CODECS="avc1.640020,mp4a.40.2"
../877607648/playlist.m3u8
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=1812583,AVERAGE-BANDWIDTH=1037000,RESOLUTION=960x540,FRAME-RATE=24.000,VIDEO-RANGE="SDR",CODECS="hvc1.2.4.L90.90,mp4a.40.2"
../877607641/playlist.m3u8
#EXT-X-STREAM-INF:CLOSED-CAPTIONS=NONE,BANDWIDTH=2974810,AVERAGE-BANDWIDTH=1726000,RESOLUTION=1280x720,FRAME-RATE=24.000,VIDEO-RANGE="SDR",CODECS="hvc1.2.4.L93.90,mp4a.40.2"
../877607636/playlist.m3u8

the output of vlc:

VLC media player 3.0.0-git Vetinari (revision 2.2.0-git-15671-gd127141f6d)
[000055b94651c5f0] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
Using Wayland-EGL
Using the 'xdg-shell-v6' shell integration
[00007faa305770a0] adaptive demux error: Failed reading https://skyfire.vimeocdn.com:443/1511803115-0x004839952a0b77baacb2ef430164ac8349b8e9d2/243867727/video/877607653,877607658,877607652,877607651,877607649,877607648,877607641,877607636/../877607653/playlist.m3u8: HTTP/1.1 503 backend read error
[00007faa305770a0] adaptive demux error: Failed to create demuxer (nil) Unknown
[00007faa3021d9b0] adaptive demux error: Failed reading https://128skyfiregce-vimeo.akamaized.net:443/exp=1511803115~acl=%2F243867727%2F%2A~hmac=845be3b91ca34f16a93c0dca5fcd8aeeb713011800cf7990690e9de5af0ce9ea/243867727/video/877607653,877607658,877607652,877607651,877607649,877607648,877607641,877607636/../877607653/playlist.m3u8: HTTP/1.1 404 Not Found
[00007faa3021d9b0] adaptive demux error: Failed to create demuxer (nil) Unknown
Unexpected wl_surface.enter received for output with id: 6 screen name: "Screen4" screen model: "0x0525"
Unexpected wl_surface.enter received for output with id: 6 screen name: "Screen4" screen model: "0x0525"
[00007faa24070c70] adaptive stream error: Failed reading https://128skyfiregce-vimeo.akamaized.net:443/exp=1511803115~acl=%2F243867727%2F*~hmac=845be3b91ca34f16a93c0dca5fcd8aeeb713011800cf7990690e9de5af0ce9ea/243867727/video/877607653,877607658,877607652,877607651,877607649,877607648,877607641,877607636/../877607653/chop/segment-0.mp4: HTTP/1.1 404 Not Found
[00007faa24012c50] adaptive demux error: Failed to create demuxer (nil) MP4
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information