[FFmpeg-trac] #5307(avformat:new): HLS start_time and duration incorrect

FFmpeg trac at avcodec.org
Wed Jun 29 03:33:26 CEST 2016


#5307: HLS start_time and duration incorrect
--------------------------------+------------------------------------
             Reporter:  ronag   |                    Owner:
                 Type:  defect  |                   Status:  new
             Priority:  normal  |                Component:  avformat
              Version:  3.0.2   |               Resolution:
             Keywords:  hls     |               Blocked By:
             Blocking:          |  Reproduced by developer:  0
Analyzed by developer:  0       |
--------------------------------+------------------------------------

Comment (by an_ffmpeg_user):

 Replying to [comment:7 cehoyos]:

 > Is the issue reproducible with current FFmpeg git head?

 Thanks @cehoyos

 It is reproducible using FFmpeg 3.1 (stable), which is less than 24 hours
 old.

 Full, uncut console output below, tested using source material as supplied
 by @ronag, the original poster.

 The key part is that

   #EXTINF:6.673333,
   jellyfish3.ts

 does not equal

   $ ffprobe -loglevel quiet -print_format flat -show_entries
 format=duration "./jellyfish3.ts"
   format.duration="6.706700"

 All other segments are correctly declared in the m3u8.

 {{{
 $ ./ffmpeg -i jellyfish.webm jellyfish.m3u8

 ffmpeg version 3.1-tessus Copyright (c) 2000-2016 the FFmpeg developers
   built with Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM
 3.5svn)
   configuration: --cc=/usr/bin/clang --prefix=/opt/ffmpeg --as=yasm
 --extra-version=tessus --enable-avisynth --enable-fontconfig --enable-gpl
 --enable-libass --enable-libbluray --enable-libfreetype --enable-libgsm
 --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
 --enable-libopencore-amrwb --enable-libopus --enable-libschroedinger
 --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora
 --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-
 libvpx --enable-libwavpack --enable-libx264 --enable-libx265 --enable-
 libxavs --enable-libxvid --enable-libzmq --enable-version3 --disable-
 ffplay --disable-indev=qtkit --disable-indev=x11grab_xcb
   libavutil      55. 27.100 / 55. 27.100
   libavcodec     57. 48.101 / 57. 48.101
   libavformat    57. 40.101 / 57. 40.101
   libavdevice    57.  0.101 / 57.  0.101
   libavfilter     6. 46.102 /  6. 46.102
   libswscale      4.  1.100 /  4.  1.100
   libswresample   2.  1.100 /  2.  1.100
   libpostproc    54.  0.100 / 54.  0.100
 Input #0, matroska,webm, from 'jellyfish.webm':
   Metadata:
     encoder         : Lavf56.40.101
   Duration: 00:00:30.03, start: 0.000000, bitrate: 2319 kb/s
     Stream #0:0(eng): Video: vp8, yuv420p, 1024x576, SAR 1:1 DAR 16:9,
 29.97 fps, 29.97 tbr, 1k tbn, 1k tbc (default)
 [libx264 @ 0x7faa8b800000] using SAR=1/1
 [libx264 @ 0x7faa8b800000] using cpu capabilities: MMX2 SSE2Fast SSSE3
 SSE4.2
 [libx264 @ 0x7faa8b800000] profile High, level 3.1
 [hls @ 0x7faa8a80be00] Using AVStream.codec to pass codec parameters to
 muxers is deprecated, use AVStream.codecpar instead.
 Output #0, hls, to 'jellyfish.m3u8':
   Metadata:
     encoder         : Lavf57.40.101
     Stream #0:0(eng): Video: h264 (libx264), yuv420p, 1024x576 [SAR 1:1
 DAR 16:9], q=-1--1, 29.97 fps, 90k tbn, 29.97 tbc (default)
     Metadata:
       encoder         : Lavc57.48.101 libx264
     Side data:
       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
 Stream mapping:
   Stream #0:0 -> #0:0 (vp8 (native) -> h264 (libx264))
 Press [q] to stop, [?] for help
 frame=  900 fps= 24 q=-1.0 Lsize=N/A time=00:00:29.92 bitrate=N/A
 speed=0.782x
 video:11093kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 [libx264 @ 0x7faa8b800000] frame I:4     Avg QP:22.94  size: 34424
 [libx264 @ 0x7faa8b800000] frame P:570   Avg QP:23.88  size: 13197
 [libx264 @ 0x7faa8b800000] frame B:326   Avg QP:27.59  size: 11348
 [libx264 @ 0x7faa8b800000] consecutive B-frames: 50.7%  2.0%  3.3% 44.0%
 [libx264 @ 0x7faa8b800000] mb I  I16..4: 11.0% 72.9% 16.2%
 [libx264 @ 0x7faa8b800000] mb P  I16..4:  4.7% 18.6%  1.5%  P16..4: 44.7%
 13.0%  4.6%  0.0%  0.0%    skip:12.8%
 [libx264 @ 0x7faa8b800000] mb B  I16..4:  1.0%  3.5%  0.4%  B16..8: 52.5%
 12.5%  2.7%  direct: 8.8%  skip:18.6%  L0:48.7% L1:36.4% BI:14.9%
 [libx264 @ 0x7faa8b800000] 8x8 transform intra:74.6% inter:62.0%
 [libx264 @ 0x7faa8b800000] coded y,uvDC,uvAC intra: 32.5% 34.8% 12.0%
 inter: 35.7% 27.1% 2.5%
 [libx264 @ 0x7faa8b800000] i16 v,h,dc,p: 34% 18% 38% 11%
 [libx264 @ 0x7faa8b800000] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19%  9% 50%  3%
 4%  4%  3%  4%  3%
 [libx264 @ 0x7faa8b800000] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 12% 23%  8%
 9%  9%  6%  7%  5%
 [libx264 @ 0x7faa8b800000] i8c dc,h,v,p: 52% 16% 29%  3%
 [libx264 @ 0x7faa8b800000] Weighted P-Frames: Y:5.4% UV:1.6%
 [libx264 @ 0x7faa8b800000] ref P L0: 64.2% 21.4%  9.6%  4.5%  0.3%
 [libx264 @ 0x7faa8b800000] ref B L0: 93.6%  4.5%  1.9%
 [libx264 @ 0x7faa8b800000] ref B L1: 98.6%  1.4%
 [libx264 @ 0x7faa8b800000] kb/s:3026.07
 }}}

 {{{
 $ cat ./jellyfish.m3u8
 #EXTM3U
 #EXT-X-VERSION:3
 #EXT-X-TARGETDURATION:9
 #EXT-X-MEDIA-SEQUENCE:0
 #EXTINF:8.341667,
 jellyfish0.ts
 #EXTINF:6.639967,
 jellyfish1.ts
 #EXTINF:8.341667,
 jellyfish2.ts
 #EXTINF:6.673333,
 jellyfish3.ts
 #EXT-X-ENDLIST
 }}}
 {{{
 $ ffprobe -loglevel quiet -print_format flat -show_entries format=duration
 "./jellyfish0.ts"
 format.duration="8.341667"
 $ ffprobe -loglevel quiet -print_format flat -show_entries format=duration
 "./jellyfish1.ts"
 format.duration="6.639967"
 $ ffprobe -loglevel quiet -print_format flat -show_entries format=duration
 "./jellyfish2.ts"
 format.duration="8.341667"
 $ ffprobe -loglevel quiet -print_format flat -show_entries format=duration
 "./jellyfish3.ts"
 format.duration="6.706700"
 }}}

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


More information about the FFmpeg-trac mailing list