[FFmpeg-trac] #6533(avformat:new): Invalid EXT-X-TARGETDURATION in HLS

FFmpeg trac at avcodec.org
Tue Jul 18 12:56:48 EEST 2017


#6533: Invalid EXT-X-TARGETDURATION in HLS
----------------------------------+---------------------------------------
             Reporter:  tonn81    |                     Type:  defect
               Status:  new       |                 Priority:  normal
            Component:  avformat  |                  Version:  unspecified
             Keywords:  hls       |               Blocked By:
             Blocking:            |  Reproduced by developer:  0
Analyzed by developer:  0         |
----------------------------------+---------------------------------------
 == Summary of the bug:

 When I convert MP4 file to HLS (.m3u8 + .ts files), in some cases I get
 invalid #EXT-X-TARGETDURATION value.

 In my case, I provide duration = 4, but have 5 in the file.

 == How to reproduce:

 1. Get source file

 {{{
 ffmpeg -hide_banner -y -ss 00:01:00 -i
 http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/tearsofsteel_4k.mov
 -to 00:01:00 -vn -b:a 80k -c:a libfdk_aac file.mp4
 }}}

 {{{
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from
 'http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/tearsofsteel_4k.mov':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf54.29.104
   Duration: 00:12:14.00, start: 0.000000, bitrate: 73434 kb/s
     Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
 3840x1714 [SAR 1:1 DAR 1920:857], 73244 kb/s, 24 fps, 24 tbr, 24 tbn, 48
 tbc (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : libx264
     Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
 stereo, fltp, 182 kb/s (default)
     Metadata:
       handler_name    : DataHandler
 Stream mapping:
   Stream #0:1 -> #0:0 (aac (native) -> aac (libfdk_aac))
 Press [q] to stop, [?] for help
 Output #0, mp4, to 'file.mp4':
   Metadata:
     major_brand     : qt
     minor_version   : 512
     compatible_brands: qt
     encoder         : Lavf57.75.100
     Stream #0:0(eng): Audio: aac (libfdk_aac) (mp4a / 0x6134706D), 44100
 Hz, stereo, s16, 80 kb/s (default)
     Metadata:
       handler_name    : DataHandler
       encoder         : Lavc57.100.104 libfdk_aac
 size=     598kB time=00:01:00.00 bitrate=  81.6kbits/s speed=0.917x
 video:0kB audio:587kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 1.845107%
 }}}

 2. Generate HLS out of it

 {{{
 ffmpeg -loglevel info -i file.mp4 -c:a copy -hls_time 4 -hls_flags
 single_file -hls_list_size 0 file.m3u8
 }}}

 {{{
 ffmpeg version N-86781-gd8f1982 Copyright (c) 2000-2017 the FFmpeg
 developers
   built with gcc 4.9.2 (Debian 4.9.2-10)
   configuration: --disable-shared --enable-static --enable-network
 --disable-ffplay --disable-ffserver --disable-debug --enable-logging
 --enable-avresample --enable-chromaprint --enable-bzlib --enable-frei0r
 --enable-gcrypt --enable-gmp --enable-gnutls --enable-gpl --enable-gray
 --enable-hardcoded-tables --enable-iconv --enable-ladspa --enable-libass
 --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio
 --enable-libcelt --enable-libdc1394 --enable-libfdk-aac --enable-libflite
 --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-
 libgme --enable-libgsm --enable-libiec61883 --enable-libilbc --enable-
 libkvazaar --enable-libmodplug --enable-libmp3lame --enable-libopencore-
 amrnb --enable-libopencore-amrwb --enable-libopencv --enable-libopenh264
 --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp
 --enable-librubberband --enable-libshine --enable-libsmbclient --enable-
 libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-
 libtesseract --enable-libtheora --enable-libtwolame --enable-libv4l2
 --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-
 libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
 libx265 --enable-libxavs --enable-libxcb --enable-libxcb-shape --enable-
 libxcb-shm --enable-libxcb-xfixes --enable-libxvid --enable-libzimg
 --enable-libzmq --enable-libzvbi --enable-lzma --enable-nonfree --enable-
 openal --enable-opengl --enable-openssl --enable-pthreads --enable-sdl2
 --enable-vaapi --enable-vdpau --enable-version3 --enable-xlib --enable-
 zlib
   libavutil      55. 67.100 / 55. 67.100
   libavcodec     57.100.104 / 57.100.104
   libavformat    57. 75.100 / 57. 75.100
   libavdevice    57.  7.100 / 57.  7.100
   libavfilter     6. 95.100 /  6. 95.100
   libavresample   3.  6.  0 /  3.  6.  0
   libswscale      4.  7.101 /  4.  7.101
   libswresample   2.  8.100 /  2.  8.100
   libpostproc    54.  6.100 / 54.  6.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file.mp4':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2mp41
     encoder         : Lavf57.75.100
   Duration: 00:01:00.05, start: 0.000000, bitrate: 81 kb/s
     Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
 stereo, fltp, 80 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 [hls @ 0x2da3e00] Opening 'file.ts' for writing
 [mpegts @ 0x2db8060] frame size not set
 Output #0, hls, to 'file.m3u8':
   Metadata:
     major_brand     : isom
     minor_version   : 512
     compatible_brands: isomiso2mp41
     encoder         : Lavf57.75.100
     Stream #0:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
 stereo, fltp, 80 kb/s (default)
     Metadata:
       handler_name    : SoundHandler
 Stream mapping:
   Stream #0:0 -> #0:0 (copy)
 Press [q] to stop, [?] for help
 [hls @ 0x2da3e00] Opening 'file.m3u8.tmp' for writing
     Last message repeated 14 times
 [hls @ 0x2da3e00] Opening 'file.m3u8.tmp' for writing
 size=N/A time=00:00:59.97 bitrate=N/A speed=1.15e+03x
 video:0kB audio:587kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 }}}

 3. Check results:

 {{{
 grep EXT-X-TARGETDURATION file.m3u8
 }}}

 {{{
 #EXT-X-TARGETDURATION:5
 }}}

 == Expected result:

 {{{
 grep EXT-X-TARGETDURATION file.m3u8
 }}}

 {{{
 #EXT-X-TARGETDURATION:5
 }}}

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


More information about the FFmpeg-trac mailing list