[FFmpeg-trac] #9615(avcodec:new): MPD playback failed when baseurl is relative addres

FFmpeg trac at avcodec.org
Thu Jan 27 10:45:42 EET 2022


#9615: MPD playback failed when baseurl is relative addres
---------------------------------+--------------------------------------
             Reporter:  luckysk  |                     Type:  defect
               Status:  new      |                 Priority:  important
            Component:  avcodec  |                  Version:  git-master
             Keywords:  dashdec  |               Blocked By:
             Blocking:           |  Reproduced by developer:  0
Analyzed by developer:  0        |
---------------------------------+--------------------------------------
 I use mpv player to play the following stream:
 mpv
 https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/ThreePeriods/ThreePeriod_OnDemand_presentationDur.mpd
 ----
 [ 0.012][v][ffmpeg] Opening
 https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/TwoPeriod_OnDemand.mpd
 [ 0.012][t][ffmpeg] https: Setting default whitelist
 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
 [ 0.025][t][ffmpeg] tcp: Original list of addresses:
 [ 0.025][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 0.025][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 0.025][t][ffmpeg] tcp: Interleaved list of addresses:
 [ 0.025][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 0.025][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 0.025][d][ffmpeg] tcp: Starting connection attempt to 23.215.177.211
 port 443
 [ 0.029][d][ffmpeg] tcp: Successfully connected to 23.215.177.211 port 443
 [ 0.388][t][ffmpeg] https: request: GET
 /dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/TwoPeriod_OnDemand.mpd
 HTTP/1.1
 [ 0.388][t][ffmpeg] User-Agent: libmpv
 [ 0.388][t][ffmpeg] Accept: /
 [ 0.388][t][ffmpeg] Range: bytes=0-
 [ 0.388][t][ffmpeg] Connection: close
 [ 0.388][t][ffmpeg] Host: dash.akamaized.net
 [ 0.388][t][ffmpeg] Icy-MetaData: 1
 [ 0.388][t][ffmpeg]
 [ 0.388][t][ffmpeg]
 [ 0.442][t][ffmpeg] https: header='HTTP/1.1 200 OK'
 [ 0.442][t][ffmpeg] https: http_code=200
 [ 0.442][t][ffmpeg] https: header='ETag:
 "b97e4f97517eb328009ff70eab6312c2:1534859164"'
 [ 0.442][t][ffmpeg] https: header='Last-Modified: Tue, 21 Aug 2018
 13:46:04 GMT'
 [ 0.442][t][ffmpeg] https: header='Server: AkamaiNetStorage'
 [ 0.442][t][ffmpeg] https: header='Cache-Control: max-age=23001486'
 [ 0.442][t][ffmpeg] https: header='Date: Thu, 27 Jan 2022 06:52:09 GMT'
 [ 0.442][t][ffmpeg] https: header='Alt-Svc: h3-Q050=":443";
 ma=93600,quic=":443"; ma=93600; v="46,43"'
 [ 0.442][t][ffmpeg] https: header='Content-Length: 4425'
 [ 0.442][t][ffmpeg] https: header='Connection: close'
 [ 0.442][t][ffmpeg] https: header='Akamai-Mon-Iucid-Del: 941106'
 [ 0.442][t][ffmpeg] https: header='Content-Type: application/dash+xml'
 [ 0.442][t][ffmpeg] https: header='Timing-Allow-Origin: *'
 [ 0.443][t][ffmpeg] https: header='Access-Control-Max-Age: 86400'
 [ 0.443][t][ffmpeg] https: header='Access-Control-Allow-Credentials: true'
 [ 0.443][t][ffmpeg] https: header='Access-Control-Expose-Headers:
 Server,range,Date,hdntl,hdnts,Akamai-Mon-Iucid-Ing,Akamai-Mon-Iucid-Del
 ,Akamai-Request-BC,Content-Length,Content-Range,Geo-Info,Quic-Version'
 [ 0.443][t][ffmpeg] https: header='Access-Control-Allow-Headers:
 origin,range,hdntl,hdnts,accept-encoding,referer,CMCD-Request,CMCD-Object
 ,CMCD-Status,CMCD-Session'
 [ 0.443][t][ffmpeg] https: header='Access-Control-Allow-Methods:
 GET,POST,OPTIONS'
 [ 0.443][t][ffmpeg] https: header='Access-Control-Allow-Origin: *'
 [ 0.443][t][ffmpeg] https: header=''
 [ 0.443][d][ffmpeg] resize stream to 131072 bytes, drop 0 bytes
 [ 0.443][v][ffmpeg] Mime-type: 'application/dash+xml'
 [ 0.443][d][ffmpeg] Stream opened successfully.
 [ 0.443][v][demux] Trying demuxers for level=normal.
 [ 0.443][d][demux] Trying demuxer: disc (force-level: normal)
 [ 0.443][t][ffmpeg] seek request from 0 to 0
 [ 0.443][d][demux] Trying demuxer: edl (force-level: normal)
 [ 0.443][t][ffmpeg] seek request from 0 to 0
 [ 0.443][d][demux] Trying demuxer: cue (force-level: normal)
 [ 0.443][t][ffmpeg] seek request from 0 to 0
 [ 0.443][d][demux] Trying demuxer: rawaudio (force-level: normal)
 [ 0.443][t][ffmpeg] seek request from 0 to 0
 [ 0.443][d][demux] Trying demuxer: rawvideo (force-level: normal)
 [ 0.443][t][ffmpeg] seek request from 0 to 0
 [ 0.443][d][demux] Trying demuxer: mkv (force-level: normal)
 [ 0.443][t][ffmpeg] seek request from 0 to 0
 [ 0.443][d][demux] Trying demuxer: lavf (force-level: normal)
 [ 0.443][t][ffmpeg] seek request from 3 to 0
 [ 0.455][t][ffmpeg] Probing dash score:100 size:2048
 [ 0.456][v][lavf] Found 'dash' at score=100 size=2048.
 [ 0.458][t][lavf] Skipping nested option: 'user_agent'
 [ 0.458][t][lavf] Skipping nested option: 'tls_verify'
 [ 0.458][t][lavf] Skipping nested option: 'icy'
 [ 0.458][t][lavf] Skipping nested option: 'timeout'
 [ 0.458][t][ffmpeg/demuxer] dash: Opening
 'https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/TwoPeriod_OnDemand.mpd'
 for reading
 [ 0.458][t][ffmpeg] https: Setting default whitelist
 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
 [ 0.464][t][ffmpeg] tcp: Original list of addresses:
 [ 0.464][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 0.464][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 0.464][t][ffmpeg] tcp: Interleaved list of addresses:
 [ 0.464][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 0.464][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 0.464][d][ffmpeg] tcp: Starting connection attempt to 23.215.177.211
 port 443
 [ 0.477][d][ffmpeg] tcp: Successfully connected to 23.215.177.211 port 443
 [ 0.698][t][ffmpeg] https: request: GET
 /dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/TwoPeriod_OnDemand.mpd
 HTTP/1.1
 [ 0.698][t][ffmpeg] User-Agent: libmpv
 [ 0.698][t][ffmpeg] Accept: /
 [ 0.698][t][ffmpeg] Range: bytes=0-
 [ 0.698][t][ffmpeg] Connection: close
 [ 0.698][t][ffmpeg] Host: dash.akamaized.net
 [ 0.698][t][ffmpeg] Icy-MetaData: 1
 [ 0.698][t][ffmpeg]
 [ 0.698][t][ffmpeg]
 [ 0.888][t][ffmpeg] https: header='HTTP/1.1 200 OK'
 [ 0.888][t][ffmpeg] https: http_code=200
 [ 0.888][t][ffmpeg] https: header='ETag:
 "b97e4f97517eb328009ff70eab6312c2:1534859164"'
 [ 0.888][t][ffmpeg] https: header='Last-Modified: Tue, 21 Aug 2018
 13:46:04 GMT'
 [ 0.888][t][ffmpeg] https: header='Server: AkamaiNetStorage'
 [ 0.888][t][ffmpeg] https: header='Cache-Control: max-age=23001486'
 [ 0.888][t][ffmpeg] https: header='Date: Thu, 27 Jan 2022 06:52:09 GMT'
 [ 0.888][t][ffmpeg] https: header='Alt-Svc: h3-Q050=":443";
 ma=93600,quic=":443"; ma=93600; v="46,43"'
 [ 0.888][t][ffmpeg] https: header='Content-Length: 4425'
 [ 0.888][t][ffmpeg] https: header='Connection: close'
 [ 0.888][t][ffmpeg] https: header='Akamai-Mon-Iucid-Del: 941106'
 [ 0.888][t][ffmpeg] https: header='Content-Type: application/dash+xml'
 [ 0.888][t][ffmpeg] https: header='Timing-Allow-Origin: *'
 [ 0.888][t][ffmpeg] https: header='Access-Control-Max-Age: 86400'
 [ 0.888][t][ffmpeg] https: header='Access-Control-Allow-Credentials: true'
 [ 0.888][t][ffmpeg] https: header='Access-Control-Expose-Headers:
 Server,range,Date,hdntl,hdnts,Akamai-Mon-Iucid-Ing,Akamai-Mon-Iucid-Del
 ,Akamai-Request-BC,Content-Length,Content-Range,Geo-Info,Quic-Version'
 [ 0.888][t][ffmpeg] https: header='Access-Control-Allow-Headers:
 origin,range,hdntl,hdnts,accept-encoding,referer,CMCD-Request,CMCD-Object
 ,CMCD-Status,CMCD-Session'
 [ 0.888][t][ffmpeg] https: header='Access-Control-Allow-Methods:
 GET,POST,OPTIONS'
 [ 0.888][t][ffmpeg] https: header='Access-Control-Allow-Origin: *'
 [ 0.889][t][ffmpeg] https: header=''
 [ 0.889][t][ffmpeg/demuxer] dash: c->min_buffer_time = [1]
 [ 0.889][t][ffmpeg/demuxer] dash: c->media_presentation_duration = [594]
 [ 0.890][d][ffmpeg/demuxer] dash: DASH request for url
 'https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/BBB_1080_1M_video_init.mp4',
 offset 0
 [ 0.890][t][ffmpeg] https: Setting default whitelist
 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
 [ 0.936][t][ffmpeg] tcp: Original list of addresses:
 [ 0.936][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 0.936][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 0.936][t][ffmpeg] tcp: Interleaved list of addresses:
 [ 0.936][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 0.936][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 0.936][d][ffmpeg] tcp: Starting connection attempt to 23.215.177.211
 port 443
 [ 0.939][d][ffmpeg] tcp: Successfully connected to 23.215.177.211 port 443
 [ 1.541][t][ffmpeg] https: request: GET
 /dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/BBB_1080_1M_video_init.mp4
 HTTP/1.1
 [ 1.542][t][ffmpeg] User-Agent: libmpv
 [ 1.542][t][ffmpeg] Accept: /
 [ 1.542][t][ffmpeg] Range: bytes=0-
 [ 1.542][t][ffmpeg] Connection: close
 [ 1.542][t][ffmpeg] Host: dash.akamaized.net
 [ 1.542][t][ffmpeg] Icy-MetaData: 1
 [ 1.542][t][ffmpeg]
 [ 1.542][t][ffmpeg]
 [ 3.713][t][ffmpeg] https: header='HTTP/1.1 404 Not Found'
 [ 3.713][t][ffmpeg] https: http_code=404
 [ 3.713][w][ffmpeg] https: HTTP error 404 Not Found
 [ 3.715][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
 [ 3.717][e][ffmpeg/demuxer] dash: Error when loading first fragment of
 playlist
 [ 3.717][d][ffmpeg] AVIOContext: Statistics: 4425 bytes read, 0 seeks
 [ 3.719][e][lavf] avformat_open_input() failed
 [ 3.719][w][lavf] Leaking 1 nested connections (FFmpeg bug).
 [ 3.719][d][demux] Trying demuxer: mf (force-level: normal)
 [ 3.719][t][ffmpeg] seek request from 0 to 0
 [ 3.720][d][demux] Trying demuxer: playlist (force-level: normal)
 [ 3.720][t][ffmpeg] seek request from 0 to 0
 [ 3.722][d][demux] Trying demuxer: null (force-level: normal)
 [ 3.722][t][ffmpeg] seek request from 0 to 0
 [ 3.722][v][demux] Trying demuxers for level=unsafe.
 [ 3.722][d][demux] Trying demuxer: disc (force-level: unsafe)
 [ 3.722][t][ffmpeg] seek request from 0 to 0
 [ 3.722][d][demux] Trying demuxer: edl (force-level: unsafe)
 [ 3.722][t][ffmpeg] seek request from 0 to 0
 [ 3.722][d][demux] Trying demuxer: cue (force-level: unsafe)
 [ 3.722][t][ffmpeg] seek request from 0 to 0
 [ 3.722][d][demux] Trying demuxer: rawaudio (force-level: unsafe)
 [ 3.722][t][ffmpeg] seek request from 0 to 0
 [ 3.722][d][demux] Trying demuxer: rawvideo (force-level: unsafe)
 [ 3.722][t][ffmpeg] seek request from 0 to 0
 [ 3.722][d][demux] Trying demuxer: mkv (force-level: unsafe)
 [ 3.722][t][ffmpeg] seek request from 0 to 0
 [ 3.722][d][demux] Trying demuxer: lavf (force-level: unsafe)
 [ 3.722][t][ffmpeg] seek request from 3 to 0
 [ 3.732][t][ffmpeg] Probing dash score:100 size:2048
 [ 3.733][v][lavf] Found 'dash' at score=100 size=2048.
 [ 3.733][t][lavf] Skipping nested option: 'user_agent'
 [ 3.733][t][lavf] Skipping nested option: 'tls_verify'
 [ 3.733][t][lavf] Skipping nested option: 'icy'
 [ 3.733][t][lavf] Skipping nested option: 'timeout'
 [ 3.733][t][ffmpeg/demuxer] dash: Opening
 'https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/TwoPeriod_OnDemand.mpd'
 for reading
 [ 3.733][t][ffmpeg] https: Setting default whitelist
 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
 [ 3.748][t][ffmpeg] tcp: Original list of addresses:
 [ 3.748][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 3.748][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 3.748][t][ffmpeg] tcp: Interleaved list of addresses:
 [ 3.748][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 3.748][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 3.748][d][ffmpeg] tcp: Starting connection attempt to 23.215.177.211
 port 443
 [ 3.783][d][ffmpeg] tcp: Successfully connected to 23.215.177.211 port 443
 [ 4.044][t][ffmpeg] https: request: GET
 /dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/TwoPeriod_OnDemand.mpd
 HTTP/1.1
 [ 4.044][t][ffmpeg] User-Agent: libmpv
 [ 4.044][t][ffmpeg] Accept: /
 [ 4.044][t][ffmpeg] Range: bytes=0-
 [ 4.044][t][ffmpeg] Connection: close
 [ 4.044][t][ffmpeg] Host: dash.akamaized.net
 [ 4.044][t][ffmpeg] Icy-MetaData: 1
 [ 4.044][t][ffmpeg]
 [ 4.044][t][ffmpeg]
 [ 4.101][t][ffmpeg] https: header='HTTP/1.1 200 OK'
 [ 4.101][t][ffmpeg] https: http_code=200
 [ 4.101][t][ffmpeg] https: header='ETag:
 "b97e4f97517eb328009ff70eab6312c2:1534859164"'
 [ 4.101][t][ffmpeg] https: header='Last-Modified: Tue, 21 Aug 2018
 13:46:04 GMT'
 [ 4.101][t][ffmpeg] https: header='Server: AkamaiNetStorage'
 [ 4.101][t][ffmpeg] https: header='Cache-Control: max-age=23001483'
 [ 4.101][t][ffmpeg] https: header='Date: Thu, 27 Jan 2022 06:52:12 GMT'
 [ 4.101][t][ffmpeg] https: header='Alt-Svc: h3-Q050=":443";
 ma=93600,quic=":443"; ma=93600; v="46,43"'
 [ 4.101][t][ffmpeg] https: header='Content-Length: 4425'
 [ 4.101][t][ffmpeg] https: header='Connection: close'
 [ 4.101][t][ffmpeg] https: header='Akamai-Mon-Iucid-Del: 941106'
 [ 4.101][t][ffmpeg] https: header='Content-Type: application/dash+xml'
 [ 4.101][t][ffmpeg] https: header='Timing-Allow-Origin: *'
 [ 4.101][t][ffmpeg] https: header='Access-Control-Max-Age: 86400'
 [ 4.101][t][ffmpeg] https: header='Access-Control-Allow-Credentials: true'
 [ 4.101][t][ffmpeg] https: header='Access-Control-Expose-Headers:
 Server,range,Date,hdntl,hdnts,Akamai-Mon-Iucid-Ing,Akamai-Mon-Iucid-Del
 ,Akamai-Request-BC,Content-Length,Content-Range,Geo-Info,Quic-Version'
 [ 4.101][t][ffmpeg] https: header='Access-Control-Allow-Headers:
 origin,range,hdntl,hdnts,accept-encoding,referer,CMCD-Request,CMCD-Object
 ,CMCD-Status,CMCD-Session'
 [ 4.101][t][ffmpeg] https: header='Access-Control-Allow-Methods:
 GET,POST,OPTIONS'
 [ 4.101][t][ffmpeg] https: header='Access-Control-Allow-Origin: *'
 [ 4.101][t][ffmpeg] https: header=''
 [ 4.101][t][ffmpeg/demuxer] dash: c->min_buffer_time = [1]
 [ 4.102][t][ffmpeg/demuxer] dash: c->media_presentation_duration = [594]
 [ 4.102][d][ffmpeg/demuxer] dash: DASH request for url
 'https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/BBB_1080_1M_video_init.mp4',
 offset 0
 [ 4.102][t][ffmpeg] https: Setting default whitelist
 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
 [ 4.128][t][ffmpeg] tcp: Original list of addresses:
 [ 4.128][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 4.128][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 4.128][t][ffmpeg] tcp: Interleaved list of addresses:
 [ 4.128][t][ffmpeg] tcp: Address 23.215.177.211 port 443
 [ 4.128][t][ffmpeg] tcp: Address 23.215.177.200 port 443
 [ 4.128][d][ffmpeg] tcp: Starting connection attempt to 23.215.177.211
 port 443
 [ 4.140][d][ffmpeg] tcp: Successfully connected to 23.215.177.211 port 443
 [ 4.397][t][ffmpeg] https: request: GET
 /dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/BBB_1080_1M_video_init.mp4
 HTTP/1.1
 [ 4.397][t][ffmpeg] User-Agent: libmpv
 [ 4.397][t][ffmpeg] Accept: /
 [ 4.397][t][ffmpeg] Range: bytes=0-
 [ 4.397][t][ffmpeg] Connection: close
 [ 4.397][t][ffmpeg] Host: dash.akamaized.net
 [ 4.397][t][ffmpeg] Icy-MetaData: 1
 [ 4.397][t][ffmpeg]
 [ 4.397][t][ffmpeg]
 [ 6.170][t][ffmpeg] https: header='HTTP/1.1 404 Not Found'
 [ 6.170][t][ffmpeg] https: http_code=404
 [ 6.170][w][ffmpeg] https: HTTP error 404 Not Found
 [ 6.173][w][ffmpeg/demuxer] dash: Failed to open fragment of playlist
 [ 6.173][e][ffmpeg/demuxer] dash: Error when loading first fragment of
 playlist
 [ 6.173][d][ffmpeg] AVIOContext: Statistics: 4425 bytes read, 0 seeks
 [ 6.176][e][lavf] avformat_open_input() failed
 [ 6.176][w][lavf] Leaking 1 nested connections (FFmpeg bug).
 [ 6.176][d][demux] Trying demuxer: mf (force-level: unsafe)
 [ 6.176][t][ffmpeg] seek request from 0 to 0
 [ 6.176][d][demux] Trying demuxer: playlist (force-level: unsafe)
 [ 6.176][t][ffmpeg] seek request from 0 to 0
 [ 6.177][d][demux] Trying demuxer: null (force-level: unsafe)
 [ 6.177][t][ffmpeg] seek request from 0 to 0
 [ 6.177][d][ffmpeg] AVIOContext: Statistics: 4425 bytes read, 0 seeks
 [ 6.179][v][cplayer] Opening failed or was aborted:
 https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/TwoPeriod_OnDemand.mpd
 [ 6.180][v][cplayer] finished playback, unrecognized file format (reason
 4)
 [ 6.180][e][cplayer] Failed to recognize file format.
 [ 6.180][i][cplayer]
 [ 6.180][i][cplayer] Exiting... (Errors when loading file)
 ------------

 I compared GStreamer and other players that can play those stream,the
 correct request address should be:
 https://dash.akamaized.net/dash264/TestCasesHD/1a/qualcomm/1/BBB_1080_1M_video_init.mp4,
 But mpv is
 https://dash.akamaized.net/dash264/TestCasesHD/MultiPeriod_OnDemand/TwoPeriods/BBB_1080_1M_video_init.mp4
-- 
Ticket URL: <https://trac.ffmpeg.org/ticket/9615>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list