[FFmpeg-trac] #6673(avformat:reopened): fmp4/hls not working with remote paths

FFmpeg trac at avcodec.org
Tue Sep 19 16:06:26 EEST 2017


#6673: fmp4/hls not working with remote paths
-------------------------------------+-------------------------------------
             Reporter:               |                    Owner:
  thecodeassassin                    |                   Status:  reopened
                 Type:  defect       |                Component:  avformat
             Priority:  normal       |               Resolution:
              Version:  git-master   |               Blocked By:
             Keywords:  fmp4 hls     |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------

Comment (by thecodeassassin):

 Yeah this patch solves the problem. However my playlist doesn't seem to
 play in a test player:

 #EXTM3U
 #EXT-X-VERSION:7
 #EXT-X-MEDIA-SEQUENCE:0
 #EXT-X-ALLOW-CACHE:YES
 #EXT-X-PLAYLIST-TYPE:VOD
 #EXT-X-TARGETDURATION:4
 #EXT-X-INDEPENDENT-SEGMENTS
 #EXT-X-MAP:URI="init_720p.mp4"

 #EXTINF:4.000000,
 720p_segment_1505824953.m4s
 #EXTINF:4.000000,
 720p_segment_1505824958.m4s
 #EXTINF:2.200000,
 720p_segment_1505824962.m4s
 #EXT-X-ENDLIST


 {{{
  stephen at Stephens-MacBook-Pro  ~/ffmpeg-git   master ●  ffmpeg -i
 https://d3ksou5z0j9mc7.cloudfront.net/stephen-test-7/720p/playlist.m3u8
 -acodec aac -b:a 128k -vcodec libx264 -b:v 3000k -preset ultrafast
 -movflags +faststart -f mp4 pipe:1 > ~/test.mp4
 ffmpeg version N-87327-g18821e3 Copyright (c) 2000-2017 the FFmpeg
 developers
   built with Apple LLVM version 8.0.0 (clang-800.0.42.1)
   configuration: --prefix=/usr/local --enable-gpl --enable-nonfree
 --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libx264
   libavutil      55. 75.100 / 55. 75.100
   libavcodec     57.106.101 / 57.106.101
   libavformat    57. 82.100 / 57. 82.100
   libavdevice    57.  8.101 / 57.  8.101
   libavfilter     6.105.100 /  6.105.100
   libswscale      4.  7.103 /  4.  7.103
   libswresample   2.  8.100 /  2.  8.100
   libpostproc    54.  6.100 / 54.  6.100
 [hls,applehttp @ 0x7fafb3001400] Opening
 'https://d3ksou5z0j9mc7.cloudfront.net/stephen-test-7/720p/init_720p.mp4'
 for reading
 Could not read complete segment.
 [hls,applehttp @ 0x7fafb3001400] Opening
 'https://d3ksou5z0j9mc7.cloudfront.net/stephen-
 test-7/720p/720p_segment_1505824953.m4s' for reading
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fafb3805400] stream 0, offset 0xc76: partial
 file
 [hls,applehttp @ 0x7fafb3001400] Could not find codec parameters for
 stream 0 (Video: h264 (avc1 / 0x31637661), none, 1280x720, 2239 kb/s):
 unspecified pixel format
 Consider increasing the value for the 'analyzeduration' and 'probesize'
 options
 Input #0, hls,applehttp, from 'https://d3ksou5z0j9mc7.cloudfront.net
 /stephen-test-7/720p/playlist.m3u8':
   Duration: 00:04:49.37, bitrate: 0 kb/s
   Program 0
     Metadata:
       variant_bitrate : 0
     Stream #0:0: Video: h264 (avc1 / 0x31637661), none, 1280x720, 2239
 kb/s, 15360 tbr, 15360 tbn, 30720 tbc
     Metadata:
       variant_bitrate : 0
     Stream #0:1: Audio: aac (mp4a / 0x6134706D), 44100 Hz, 5.1, fltp, 127
 kb/s
     Metadata:
       variant_bitrate : 0
 Stream mapping:
   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
   Stream #0:1 -> #0:1 (aac (native) -> aac (native))
 Press [q] to stop, [?] for help
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fafb3805400] stream 0, offset 0xc76: partial
 file
 https://d3ksou5z0j9mc7.cloudfront.net/stephen-test-7/720p/playlist.m3u8:
 Invalid data found when processing input
 Finishing stream 0:0 without any data written to it.
 Finishing stream 0:1 without any data written to it.
 Nothing was written into output file 0 (pipe:1), because at least one of
 its streams received no packets.
 frame=    0 fps=0.0 q=0.0 Lsize=       0kB time=-577014:32:22.77 bitrate=
 -0.0kbits/s speed=N/A
 video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 [aac @ 0x7fafb2808e00] Qavg: nan
 }}}

 However, the same structure with ts segments work fine.

 Replying to [comment:5 stevenliu]:
 > Replying to [comment:3 thecodeassassin]:
 > > hi stevenliu, thanks for the quick reponse. It seems that it does not
 upload the init.mp4 to the remote endpoint. As in i'm not getting PUT
 request here for that file.
 >
 > https://patchwork.ffmpeg.org/patch/5191/
 >
 > Try this patch please.
 >
 >
 >
 > {{{
 > liuqideMBP:hlsdemux liuqi$ ls -hl /usr/local/nginx/html/
 > total 48
 > -rwxrwxrwx  1 root    admin   537B  5 17  2016 50x.html
 > -rw-r--r--  1 liuqi   admin   1.0K  1 28  2017 a.html
 > -rw-r--r--  1 liuqi   admin   1.1K  7  1 08:17 aaa.mpd
 > -rw-r--r--  1 liuqi   admin   1.1K  6 30 23:20 aaa_bbb.mpd
 > drwxrwxrwx  2 root    admin    68B 10 12  2016 flowstream
 > -rwxrwxrwx  1 root    admin   612B  5 17  2016 index.html
 > drwxrwxrwx  7 liuqi   admin   238B  7 18 19:59 test
 > -rwxrwxrwx  1 nobody  admin   239B  5 18  2016 upload.hls
 > liuqideMBP:hlsdemux liuqi$ ./ffmpeg -i ~/Movies/objectC/facebook.mp4
 -loglevel warning      -hls_fmp4_init_filename
 http://192.168.0.157/init.mp4 -c:a aac -b:a 128k -ar 44100 -c:v libx264
 -max_muxing_queue_size 400 -x264opts no-scenecut -force_key_frames
 "expr:gte(t,n_forced*2)" -crf 23 -start_number 0 -hls_time 4
 -hls_list_size 3 -use_localtime 1 -hls_segment_type fmp4
 -hls_segment_filename "http://192.168.0.157/segment_%s.m4s" -preset
 ultrafast -profile:v main -level 3.1 -r 30 -threads 0 -vf "scale=-2:720"
 -bufsize 2000k -maxrate 2000k -b:v 2000k -f hls -method PUT -t 20
 "http://192.168.0.157/playlist.m3u8"
 > [libx264 @ 0x7f9198030e00] frame MB size (81x45) > level limit (3600)
 > [libx264 @ 0x7f9198030e00] MB rate (109350) > level limit (108000)
 > [hls @ 0x7f91980a4c00] Cannot use rename on non file protocol, this may
 lead to races and temporary partial files
 > [mp4 @ 0x7f9198000600] Track 0 starts with a nonzero dts 357, while the
 moov already has been written. Set the delay_moov flag to handle this
 case.
 > [hls muxer @ 0x7f91980a5200] Duplicated segment filename detected:
 segment_1505815744.m4s
 > [hls muxer @ 0x7f91980a5200] Duplicated segment filename detected:
 segment_1505815745.m4s
 > liuqideMBP:hlsdemux liuqi$ ls -hl /usr/local/nginx/html/
 > total 8800
 > -rwxrwxrwx  1 root    admin   537B  5 17  2016 50x.html
 > -rw-r--r--  1 liuqi   admin   1.0K  1 28  2017 a.html
 > -rw-r--r--  1 liuqi   admin   1.1K  7  1 08:17 aaa.mpd
 > -rw-r--r--  1 liuqi   admin   1.1K  6 30 23:20 aaa_bbb.mpd
 > drwxrwxrwx  2 root    admin    68B 10 12  2016 flowstream
 > -rwxrwxrwx  1 root    admin   612B  5 17  2016 index.html
 > -rw-rw-rw-  1 nobody  admin   1.2K  9 19 18:09 init.mp4
 > -rw-rw-rw-  1 nobody  admin   217B  9 19 18:09 playlist.m3u8
 > -rw-rw-rw-  1 nobody  admin   1.2M  9 19 18:09 segment_1505815744.m4s
 > -rw-rw-rw-  1 nobody  admin   1.0M  9 19 18:09 segment_1505815745.m4s
 > -rw-rw-rw-  1 nobody  admin   1.0M  9 19 18:09 segment_1505815746.m4s
 > -rw-rw-rw-  1 nobody  admin   1.0M  9 19 18:09 segment_1505815747.m4s
 > drwxrwxrwx  7 liuqi   admin   238B  7 18 19:59 test
 > -rwxrwxrwx  1 nobody  admin   239B  5 18  2016 upload.hls
 > }}}

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


More information about the FFmpeg-trac mailing list