[FFmpeg-trac] #8913(undetermined:new): Ffmpeg Restream a Hls that served by cloudflare

FFmpeg trac at avcodec.org
Wed Sep 30 01:31:17 EEST 2020


#8913: Ffmpeg Restream a Hls that served by cloudflare
-------------------------------------+-------------------------------------
             Reporter:               |                     Type:  defect
  englishchannel42                   |
               Status:  new          |                 Priority:  critical
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:  ffmpeg,      |               Blocked By:
  restream hls                       |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 How to reproduce:
 {{{
 The page is : https://imajbet80.tv
 I test different ffmpeg version, latest & git-2019-11-15-bfa8272

 The restream code is
 ffmpeg  -headers "scheme: https" -headers "accept-encoding: gzip, deflate,
 br" -referer "https://imajbet80.tv" -headers "origin:
 https://imajbet80.tv" -headers "referer: https://imajbet80.tv" -headers
 "pragma: no-cache" -headers "cache-control:no-cache" -headers "sec-fetch-
 site: cross-site" -headers "sec-fetch-mode: cors" -headers "sec-fetch-
 dest: empty" -headers ":authority:d1.supercdn.cc" -headers ":method: GET"
 -user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" -i
 "https://fast.supercdn.cc/o/1/bein-sports-1/supercdn.cc/1" -loglevel debug
 -f mp4 test.mp4

 }}}

 The Stream not encrypted, only the ts file extension changed to thge
 images, when you right click over browser the jpeg ( actually ts ) is
 downloading and when you change the extension you can watch it . The
 playlist.m3u8 file can be get by ffmpeg
 however the jpeg file gives http 444 error , it seems ffmepg handshake bug
 but I cant be sure ?
 it can get m3u8 without any issue
 it tries to get the jpeg , got 444 ?

 here is the verbose mode output

 -----------------

 Splitting the commandline.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 'scheme: https'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 ''.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 'accept-encoding: gzip, deflate, br'.
 Reading option '-referer' ... matched as AVOption 'referer' with argument
 'https://imajbet80.tv'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 'origin: https://imajbet80.tv'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 'referer: https://imajbet80.tv'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 'pragma: no-cache'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 'cache-control:no-cache'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 'sec-fetch-site: cross-site'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 'sec-fetch-mode: cors'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 'sec-fetch-dest: empty'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 ':authority:d1.supercdn.cc'.
 Reading option '-headers' ... matched as AVOption 'headers' with argument
 ':method: GET'.
 Reading option '-user_agent' ... matched as AVOption 'user_agent' with
 argument 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'.
 Reading option '-i' ... matched as input url with argument
 'https://fast.supercdn.cc/o/1/bein-sports-1/supercdn.cc/1'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument 'debug'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'mp4'.
 Reading option 'test.mp4' ... matched as output url.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option loglevel (set logging level) with argument debug.
 Successfully parsed a group of options.
 Parsing a group of options: input url https://fast.supercdn.cc/o/1/bein-
 sports-1/supercdn.cc/1.
 Successfully parsed a group of options.
 Opening an input file: https://fast.supercdn.cc/o/1/bein-
 sports-1/supercdn.cc/1.
 [NULL @ 000001b5f2a4b280] Opening 'https://fast.supercdn.cc/o/1/bein-
 sports-1/supercdn.cc/1' for reading
 [https @ 000001b5f2a4c380] Setting default whitelist
 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
 [https @ 000001b5f2a4c380] No trailing CRLF found in HTTP header. Adding
 it.
 [tcp @ 000001b5f2a4f380] Original list of addresses:
 [tcp @ 000001b5f2a4f380] Address 104.26.3.147 port 443
 [tcp @ 000001b5f2a4f380] Address 172.67.70.129 port 443
 [tcp @ 000001b5f2a4f380] Address 104.26.2.147 port 443
 [tcp @ 000001b5f2a4f380] Interleaved list of addresses:
 [tcp @ 000001b5f2a4f380] Address 104.26.3.147 port 443
 [tcp @ 000001b5f2a4f380] Address 172.67.70.129 port 443
 [tcp @ 000001b5f2a4f380] Address 104.26.2.147 port 443
 [tcp @ 000001b5f2a4f380] Starting connection attempt to 104.26.3.147 port
 443
 [tcp @ 000001b5f2a4f380] Successfully connected to 104.26.3.147 port 443
 [https @ 000001b5f2a4c380] request: GET /o/1/bein-sports-1/supercdn.cc/1
 HTTP/1.1
 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
 Referer: https://imajbet80.tv
 Accept: */*
 Range: bytes=0-
 Connection: close
 Host: fast.supercdn.cc
 Icy-MetaData: 1
 :method: GET


 [https @ 000001b5f2a4c380] Last chunk received, closing conn
 [hls @ 000001b5f2a4b280] Format hls probed with size=2048 and score=100
 [hls @ 000001b5f2a4b280] Skip ('#EXT-X-VERSION:3')
 [hls @ 000001b5f2a4b280] HLS request for url 'https://d1.supercdn.cc/i
 /bein-sports-1-1601418444.jpeg', offset 0, playlist 0
 [hls @ 000001b5f2a4b280] Opening 'https://d1.supercdn.cc/i/bein-
 sports-1-1601418444.jpeg' for reading
 [tcp @ 000001b5f2b13440] Original list of addresses:
 [tcp @ 000001b5f2b13440] Address 104.26.2.147 port 443
 [tcp @ 000001b5f2b13440] Address 104.26.3.147 port 443
 [tcp @ 000001b5f2b13440] Address 172.67.70.129 port 443
 [tcp @ 000001b5f2b13440] Interleaved list of addresses:
 [tcp @ 000001b5f2b13440] Address 104.26.2.147 port 443
 [tcp @ 000001b5f2b13440] Address 104.26.3.147 port 443
 [tcp @ 000001b5f2b13440] Address 172.67.70.129 port 443
 [tcp @ 000001b5f2b13440] Starting connection attempt to 104.26.2.147 port
 443
 [tcp @ 000001b5f2b13440] Successfully connected to 104.26.2.147 port 443
 [https @ 000001b5f2b13200] request: GET /i/bein-sports-1-1601418444.jpeg
 HTTP/1.1
 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
 Referer: https://imajbet80.tv
 Accept: */*
 Range: bytes=0-
 Connection: keep-alive
 Host: d1.supercdn.cc
 Cookie: __cfduid=de801933f540c57f5f468fd1bdb563cd41601418460
 Icy-MetaData: 1
 :method: GET


 [https @ 000001b5f2b13200] HTTP error 444 unknown
 [hls @ 000001b5f2a4b280] Failed to open segment 399 of playlist 0
 [hls @ 000001b5f2a4b280] HLS request for url 'https://d1.supercdn.cc/i
 /bein-sports-1-1601418449.jpeg', offset 0, playlist 0
 [hls @ 000001b5f2a4b280] Opening 'https://d1.supercdn.cc/i/bein-
 sports-1-1601418449.jpeg' for reading
 [tcp @ 000001b5f2af1d40] Original list of addresses:
 [tcp @ 000001b5f2af1d40] Address 104.26.2.147 port 443
 [tcp @ 000001b5f2af1d40] Address 104.26.3.147 port 443
 [tcp @ 000001b5f2af1d40] Address 172.67.70.129 port 443
 [tcp @ 000001b5f2af1d40] Interleaved list of addresses:
 [tcp @ 000001b5f2af1d40] Address 104.26.2.147 port 443
 [tcp @ 000001b5f2af1d40] Address 104.26.3.147 port 443
 [tcp @ 000001b5f2af1d40] Address 172.67.70.129 port 443
 [tcp @ 000001b5f2af1d40] Starting connection attempt to 104.26.2.147 port
 443
 [tcp @ 000001b5f2af1d40] Successfully connected to 104.26.2.147 port 443
 [https @ 000001b5f2b13200] request: GET /i/bein-sports-1-1601418449.jpeg
 HTTP/1.1
 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
 Referer: https://imajbet80.tv
 Accept: */*
 Range: bytes=0-
 Connection: keep-alive
 Host: d1.supercdn.cc
 Cookie: __cfduid=de801933f540c57f5f468fd1bdb563cd41601418460
 Icy-MetaData: 1
 :method: GET


 [https @ 000001b5f2b13200] HTTP error 444 unknown
 [hls @ 000001b5f2a4b280] Failed to open segment 400 of playlist 0
 [hls @ 000001b5f2a4b280] HLS request for url 'https://d1.supercdn.cc/i
 /bein-sports-1-1601418453.jpeg', offset 0, playlist 0
 [hls @ 000001b5f2a4b280] Opening 'https://d1.supercdn.cc/i/bein-
 sports-1-1601418453.jpeg' for reading
 [tcp @ 000001b5f2b12a80] Original list of addresses:
 [tcp @ 000001b5f2b12a80] Address 104.26.2.147 port 443
 [tcp @ 000001b5f2b12a80] Address 104.26.3.147 port 443
 [tcp @ 000001b5f2b12a80] Address 172.67.70.129 port 443
 [tcp @ 000001b5f2b12a80] Interleaved list of addresses:
 [tcp @ 000001b5f2b12a80] Address 104.26.2.147 port 443
 [tcp @ 000001b5f2b12a80] Address 104.26.3.147 port 443
 [tcp @ 000001b5f2b12a80] Address 172.67.70.129 port 443
 [tcp @ 000001b5f2b12a80] Starting connection attempt to 104.26.2.147 port
 443
 [tcp @ 000001b5f2b12a80] Successfully connected to 104.26.2.147 port 443
 [https @ 000001b5f2af1b80] request: GET /i/bein-sports-1-1601418453.jpeg
 HTTP/1.1
 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36
 Referer: https://imajbet80.tv
 Accept: */*
 Range: bytes=0-
 Connection: keep-alive
 Host: d1.supercdn.cc
 Cookie: __cfduid=de801933f540c57f5f468fd1bdb563cd41601418460
 Icy-MetaData: 1
 :method: GET

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8913>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list