[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