[FFmpeg-trac] #9126(avformat:new): 404 when playing back DASH
FFmpeg
trac at avcodec.org
Wed Feb 24 20:36:55 EET 2021
#9126: 404 when playing back DASH
----------------------------------+--------------------------------------
Reporter: hjmallon | Type: defect
Status: new | Priority: normal
Component: avformat | Version: git-master
Keywords: dash 404 | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
----------------------------------+--------------------------------------
Summary of the bug:
How to reproduce:
{{{
% ffprobe http://192.168.1.18:8080/live/manifest.mpd
ffprobe version 4.3.2 Copyright (c) 2007-2021 the FFmpeg developers
built with Apple clang version 12.0.0 (clang-1200.0.32.29)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.3.2 --enable-shared
--enable-pthreads --enable-version3 --enable-avresample --cc=clang --host-
cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl
--enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame
--enable-libopus --enable-librav1e --enable-librubberband --enable-
libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora
--enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp
--enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid
--enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r
--enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb
--enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-libsoxr
--enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack
--enable-videotoolbox
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100
[http @ 0x7f849d805580] HTTP error 404 Not Found
[dash @ 0x7f849e00c000] Failed to open an initialization section in
playlist 0
[dash @ 0x7f849e00c000] Error when loading first fragment, playlist 0
http://192.168.1.18:8080/live/manifest.mpd: Server returned 404 Not Found
}}}
This DASH manifest plays back in VLC OK. I have tracked the problem down
to BaseURL handling in resolve_content_path. The manifest has a BaseURL in
the AdaptationSet and another in the Representation.
e.g.
URL - http://192.168.1.18:8080/live/manifest.mpd
AdaptationSet/BaseURL - video/
Representation/BaseURL - v_34_10000/
The assets are under http://192.168.1.18:8080/live/video/v_34_10000/ but
ffmpeg only concatenates the BaseURL with the Root URL (i.e.
http://192.168.1.18:8080/live/v_34_10000/), rather than all the parent
BaseURLs. I do not have access to the relevant standard so I don't know if
concat parents is the expected behaviour (but that seems to be what VLC
does).
{{{
<?xml version="1.0" encoding="UTF-8"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" id="1614186048"
profiles="urn:mpeg:dash:profile:full:2011" type="dynamic"
availabilityStartTime="2021-02-24T17:00:49Z"
publishTime="2021-02-24T18:02:43Z" minimumUpdatePeriod="PT2S"
timeShiftBufferDepth="PT20S" minBufferTime="PT2S">
<Period id="p0" start="PT0S">
<AdaptationSet contentType="video" segmentAlignment="true"
mimeType="video/mp4" par="16:9" maxWidth="1920" maxHeight="1080"
maxFrameRate="30.00/1001">
<BaseURL>video/</BaseURL>
<Representation id="v_34_10000"
bandwidth="10000000" width="1920" height="1080" sar="1:1"
frameRate="30.00/1001" codecs="hvc1.1.60000000.L93.B0.00.00.00.00.00"
startWithSAP="1">
<BaseURL>v_34_10000/</BaseURL>
<SegmentTemplate timescale="30030"
duration="84084" startNumber="1" media="1614186048_$Number$.m4s"
initialization="1614186048_init.mp4"/>
</Representation>
</AdaptationSet>
<AdaptationSet contentType="audio" lang="und"
segmentAlignment="true" mimeType="audio/mp4">
<BaseURL>audio/</BaseURL>
<Representation id="a_35_SAMPLE_RATE_48000"
bandwidth="128000" audioSamplingRate="SAMPLE_RATE_48000"
codecs="mp4a.40.2" startWithSAP="1">
<BaseURL>a_35_SAMPLE_RATE_48000/</BaseURL>
<AudioChannelConfiguration
schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011"
value="1"></AudioChannelConfiguration>
<SegmentTemplate timescale="48000"
duration="134400" startNumber="1" media="1614186048_$Number$.m4s"
initialization="1614186048_init.mp4"/>
</Representation>
</AdaptationSet>
</Period>
</MPD>
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9126>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list