[FFmpeg-trac] #9126(avformat:new): 404 when playing back DASH
FFmpeg
trac at avcodec.org
Tue Mar 2 05:53:53 EET 2021
#9126: 404 when playing back DASH
------------------------------------+------------------------------------
Reporter: hjmallon | Owner:
Type: defect | Status: new
Priority: normal | Component: avformat
Version: git-master | Resolution:
Keywords: dash | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
------------------------------------+------------------------------------
Comment (by stevenliu):
Replying to [comment:3 hjmallon]:
> Is the issue reproducible with current FFmpeg git head, the only
version supported on this bug tracker?
>
> I can reproduce it on HEAD (d3d99a0a / "lavc/lscrdec: use
ff_reget_buffer()").
>
> Can you provide how to create that mpd or leave the usable mpd url
here?
>
> Hmm, the manifest is made by a live video encoder (one of these https
://videon-central.com/) so I don't have a web link. With the manifest like
above the layout of files is:
>
> - http://192.168.1.18:8080/live/
> - manifest.mpd
> - video/
> - v_34_10000/
> - 1614186048_init.mp4
> - 1614186048_123456.m4s
> - audio/
> - a_35_SAMPLE_RATE_48000/
> - 1614186048_init.mp4
> - 1614186048_123456.m4s
>
> The 404 is generated when ffprobe looks for
"http://192.168.1.18:8080/live/v_34_10000/1614186048_init.mp4" (without
the video/ part).
>
> I have been able to fix the issue with a patch as follows (I wouldn't
say I know enough about DASH to say that the patch is correct):
>
> {{{
> diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
> index b82805c9ce..5abc914c68 100644
> --- a/libavformat/dashdec.c
> +++ b/libavformat/dashdec.c
> @@ -777,14 +777,14 @@ static int resolve_content_path(AVFormatContext
*s, const char *url, int *max_ur
> size += 2;
> }
>
> + memset(tmp_str, 0, strlen(tmp_str));
> for (i = 0; i < n_baseurl_nodes; ++i) {
> if (i == rootId) {
> continue;
> }
> text = xmlNodeGetContent(baseurl_nodes[i]);
> if (text && !av_strstart(text, "/", NULL)) {
> - memset(tmp_str, 0, strlen(tmp_str));
> - if (!ishttp(text) && isRootHttp) {
> + if (!ishttp(tmp_str) && !ishttp(text) && isRootHttp) {
> av_strlcpy(tmp_str, root_url, size + 1);
> }
> start = (text[0] == token);
> }}}
Can you send this patch to maillist?
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9126#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list