[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