#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 _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://ffmpeg.org/mailman/listinfo/ffmpeg-trac