[FFmpeg-trac] #8625(avformat:reopened): function ff_make_absolute_url failed to process too many "../" in relative path while handling HLS

FFmpeg trac at avcodec.org
Mon Apr 27 13:21:42 EEST 2020


#8625: function ff_make_absolute_url failed to process too many "../" in relative
path while handling HLS
-------------------------------------+------------------------------------
             Reporter:  neksus       |                    Owner:
                 Type:  defect       |                   Status:  reopened
             Priority:  normal       |                Component:  avformat
              Version:  unspecified  |               Resolution:
             Keywords:  hls          |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+------------------------------------
Changes (by stevenliu):

 * status:  closed => reopened
 * resolution:  needs_more_info =>


Comment:

 reproduce step:

 {{{
 (base) liuqi05:html liuqi$ ffmpeg -f lavfi -i testsrc2=s=176x144 -vcodec
 libx264 -g 25 -r:v 25 -hls_time 1 -t 3 -hls_base_url ../../ index.m3u8
 ffmpeg version 4.2 Copyright (c) 2000-2019 the FFmpeg developers
   built with clang version 4.0.1 (tags/RELEASE_401/final)
   configuration: --prefix=/Users/liuqi/miniconda3 --cc=x86_64-apple-
 darwin13.4.0-clang --disable-doc --disable-openssl --enable-avresample
 --enable-gnutls --enable-gpl --enable-hardcoded-tables --enable-
 libfreetype --enable-libopenh264 --enable-libx264 --enable-pic --enable-
 pthreads --enable-shared --enable-static --enable-version3 --enable-zlib
 --enable-libmp3lame
   libavutil      56. 31.100 / 56. 31.100
   libavcodec     58. 54.100 / 58. 54.100
   libavformat    58. 29.100 / 58. 29.100
   libavdevice    58.  8.100 / 58.  8.100
   libavfilter     7. 57.100 /  7. 57.100
   libavresample   4.  0.  0 /  4.  0.  0
   libswscale      5.  5.100 /  5.  5.100
   libswresample   3.  5.100 /  3.  5.100
   libpostproc    55.  5.100 / 55.  5.100
 Input #0, lavfi, from 'testsrc2=s=176x144':
   Duration: N/A, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 176x144
 [SAR 1:1 DAR 11:9], 25 tbr, 25 tbn, 25 tbc
 Stream mapping:
   Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
 Press [q] to stop, [?] for help
 [libx264 @ 0x7ffea6010000] using SAR=1/1
 [libx264 @ 0x7ffea6010000] using cpu capabilities: MMX2 SSE2Fast SSSE3
 SSE4.2 AVX FMA3 BMI2 AVX2
 [libx264 @ 0x7ffea6010000] profile High, level 1.1
 [libx264 @ 0x7ffea6010000] 264 - core 152 - H.264/MPEG-4 AVC codec -
 Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1
 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1
 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1
 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=4
 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0
 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1
 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=25 keyint_min=2
 scenecut=40 intra_refresh=0 rc_lookahead=25 rc=crf mbtree=1 crf=23.0
 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
 [hls @ 0x7ffea600cc00] Opening 'index0.ts' for writing
 Output #0, hls, to 'index.m3u8':
   Metadata:
     encoder         : Lavf58.29.100
     Stream #0:0: Video: h264 (libx264), yuv420p, 176x144 [SAR 1:1 DAR
 11:9], q=-1--1, 25 fps, 90k tbn, 25 tbc
     Metadata:
       encoder         : Lavc58.54.100 libx264
     Side data:
       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
 [hls @ 0x7ffea600cc00] Opening 'index.m3u8.tmp' for writing
 [hls @ 0x7ffea600cc00] Opening 'index1.ts' for writing
 [hls @ 0x7ffea600cc00] Opening 'index.m3u8.tmp' for writing
 [hls @ 0x7ffea600cc00] Opening 'index2.ts' for writing
 [hls @ 0x7ffea600cc00] Opening 'index.m3u8.tmp' for writing
 frame=   75 fps=0.0 q=-1.0 Lsize=N/A time=00:00:02.92 bitrate=N/A
 speed=57.5x
 video:62kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 [libx264 @ 0x7ffea6010000] frame I:3     Avg QP:20.74  size:  3496
 [libx264 @ 0x7ffea6010000] frame P:21    Avg QP:27.15  size:  1111
 [libx264 @ 0x7ffea6010000] frame B:51    Avg QP:31.96  size:   569
 [libx264 @ 0x7ffea6010000] consecutive B-frames:  6.7%  2.7% 16.0% 74.7%
 [libx264 @ 0x7ffea6010000] mb I  I16..4: 33.7% 15.2% 51.2%
 [libx264 @ 0x7ffea6010000] mb P  I16..4:  3.1%  2.4%  1.8%  P16..4: 19.9%
 15.1% 12.8%  0.0%  0.0%    skip:44.9%
 [libx264 @ 0x7ffea6010000] mb B  I16..4:  0.3%  0.3%  0.1%  B16..8: 27.6%
 12.7%  3.8%  direct: 3.4%  skip:51.9%  L0:47.9% L1:45.5% BI: 6.7%
 [libx264 @ 0x7ffea6010000] 8x8 transform intra:22.3% inter:27.7%
 [libx264 @ 0x7ffea6010000] coded y,uvDC,uvAC intra: 28.3% 60.4% 50.0%
 inter: 9.6% 24.2% 19.4%
 [libx264 @ 0x7ffea6010000] i16 v,h,dc,p: 73% 20%  7%  0%
 [libx264 @ 0x7ffea6010000] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 12% 71%  0%
 0%  0%  1%  0%  0%
 [libx264 @ 0x7ffea6010000] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 49% 25% 18%  1%
 1%  1%  2%  2%  2%
 [libx264 @ 0x7ffea6010000] i8c dc,h,v,p: 35% 24% 39%  2%
 [libx264 @ 0x7ffea6010000] Weighted P-Frames: Y:0.0% UV:0.0%
 [libx264 @ 0x7ffea6010000] ref P L0: 61.7%  7.8% 18.2% 12.3%
 [libx264 @ 0x7ffea6010000] ref B L0: 80.4% 15.8%  3.9%
 [libx264 @ 0x7ffea6010000] ref B L1: 91.1%  8.9%
 [libx264 @ 0x7ffea6010000] kb/s:167.59
 (base) liuqi05:html liuqi$
 }}}


 {{{
 (base) liuqi05:dash liuqi$ ./ffmpeg -v debug -i
 http://127.0.0.1/index.m3u8
 ffmpeg version N-97504-g1128aa8753 Copyright (c) 2000-2020 the FFmpeg
 developers
   built with Apple clang version 11.0.3 (clang-1103.0.32.59)
   configuration: --quiet --enable-htmlpages --enable-libx264 --enable-
 libxml2 --enable-gpl --extra-ldflags=-I/usr/local/include --extra-
 ldflags=-L/usr/local/lib --enable-libfreetype --enable-fontconfig
 --enable-libspeex --enable-libopus --enable-libzmq --enable-libx265
 --enable-libass --enable-videotoolbox --disable-optimizations --disable-
 stripping --samples=fate-suite/
   libavutil      56. 43.100 / 56. 43.100
   libavcodec     58. 82.100 / 58. 82.100
   libavformat    58. 42.101 / 58. 42.101
   libavdevice    58.  9.103 / 58.  9.103
   libavfilter     7. 79.100 /  7. 79.100
   libswscale      5.  6.101 /  5.  6.101
   libswresample   3.  6.100 /  3.  6.100
   libpostproc    55.  6.100 / 55.  6.100
 Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument 'debug'.
 Reading option '-i' ... matched as input url with argument
 'http://127.0.0.1/index.m3u8'.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument debug.
 Successfully parsed a group of options.
 Parsing a group of options: input url http://127.0.0.1/index.m3u8.
 Successfully parsed a group of options.
 Opening an input file: http://127.0.0.1/index.m3u8.
 [NULL @ 0x7fa771809000] Opening 'http://127.0.0.1/index.m3u8' for reading
 [http @ 0x7fa77140bec0] Setting default whitelist
 'http,https,tls,rtp,tcp,udp,crypto,httpproxy,data'
 [tcp @ 0x7fa771700300] Original list of addresses:
 [tcp @ 0x7fa771700300] Address 127.0.0.1 port 80
 [tcp @ 0x7fa771700300] Interleaved list of addresses:
 [tcp @ 0x7fa771700300] Address 127.0.0.1 port 80
 [tcp @ 0x7fa771700300] Starting connection attempt to 127.0.0.1 port 80
 [tcp @ 0x7fa771700300] Successfully connected to 127.0.0.1 port 80
 [http @ 0x7fa77140bec0] request: GET /index.m3u8 HTTP/1.1
 User-Agent: Lavf/58.42.101
 Accept: */*
 Range: bytes=0-
 Connection: close
 Host: 127.0.0.1
 Icy-MetaData: 1


 [hls @ 0x7fa771809000] Format hls probed with size=2048 and score=100
 [hls @ 0x7fa771809000] Skip ('#EXT-X-VERSION:3')
 [hls @ 0x7fa771809000] HLS request for url 'http:/index0.ts', offset 0,
 playlist 0
 [hls @ 0x7fa771809000] Opening 'http:/index0.ts' for reading
 [tcp @ 0x7fa771700dc0] Failed to resolve hostname index0.ts: nodename nor
 servname provided, or not known
 [hls @ 0x7fa771809000] Failed to open segment 0 of playlist 0
 [hls @ 0x7fa771809000] HLS request for url 'http:/index1.ts', offset 0,
 playlist 0
 [hls @ 0x7fa771809000] Opening 'http:/index1.ts' for reading
 [tcp @ 0x7fa771700c80] Failed to resolve hostname index1.ts: nodename nor
 servname provided, or not known
 [hls @ 0x7fa771809000] Failed to open segment 1 of playlist 0
 [hls @ 0x7fa771809000] HLS request for url 'http:/index2.ts', offset 0,
 playlist 0
 [hls @ 0x7fa771809000] Opening 'http:/index2.ts' for reading
 [tcp @ 0x7fa77140c5c0] Failed to resolve hostname index2.ts: nodename nor
 servname provided, or not known
 [hls @ 0x7fa771809000] Failed to open segment 2 of playlist 0
 [hls @ 0x7fa771809000] Error when loading first segment 'http:/index0.ts'
 [AVIOContext @ 0x7fa7717004c0] Statistics: 190 bytes read, 0 seeks
 http://127.0.0.1/index.m3u8: Invalid data found when processing input
 (base) liuqi05:dash liuqi$
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8625#comment:7>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list