#1645: Duration calculation error when -ss precedes -i -------------------------------------+------------------------------------- Reporter: cheedoong | Type: defect Status: new | Priority: important Component: avformat | Version: git- Keywords: Duration | master error; ss before i | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | -------------------------------------+------------------------------------- Summary of the bug:
It appeared long time ago, I also saw somebody else posted similar issues onto other forums. How to reproduce: {{{ % ffmpeg.exe -y -ss 00:00:05 -t 00:00:15 -i "http://182.131.19.177/videoctfs.tc.qq.com/k01025rk99s.p708.1.flv?sdtfrom=v2&type=tflv&vkey=49B6CAA790F75B58D8D8C20CA392116CD6A4B647573068BF7B66B03859BFB5E0B6A814A10B843B18&level=3&sha=3928588565e69ba1897b9ad4b876014ef0697d2a&platform=1&br=20&fmt=sd" -vcodec libx264 -acodec libmp3lame -strict -2 -f mpegts dura_err.ts 2>dura_err.txt dura_err.txt: ffmpeg version N-42547-g7543fd8 Copyright (c) 2000-2012 the FFmpeg developers built on Jul 15 2012 21:36:07 with gcc 4.7.1 configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable- frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable- libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable- libschroedinger --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable- libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib libavutil 51. 65.100 / 51. 65.100 libavcodec 54. 40.100 / 54. 40.100 libavformat 54. 16.104 / 54. 16.104 libavdevice 54. 1.100 / 54. 1.100 libavfilter 3. 2.100 / 3. 2.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 Input #0, flv, from 'http://182.131.19.177/videoctfs.tc.qq.com/k01025rk99s.p708.1.flv?sdtfrom=v2&type=tflv&vkey=49B6CAA790F75B58D8D8C20CA392116CD6A4B647573068BF7B66B03859BFB5E0B6A814A10B843B18&level=3&sha=3928588565e69ba1897b9ad4b876014ef0697d2a&platform=1&br=20&fmt=sd': Metadata: creator : QQVideo hasKeyframes : true hasVideo : true hasAudio : true hasMetadata : true canSeekToEnd : true datasize : 6994383 videosize : 5049011 audiosize : 1889996 lasttimestamp : 238 lastkeyframetimestamp: 238 lastkeyframelocation: 6995950 Duration: 00:03:58.33, start: 0.067000, bitrate: 234 kb/s Stream #0:0: Video: h264 (Main), yuv420p, 480x270 [SAR 1:1 DAR 16:9], 168 kb/s, 15 tbr, 1k tbn, 30 tbc Stream #0:1: Audio: aac, 44100 Hz, stereo, s16, 59 kb/s -t is not an input option, keeping it for the next output; consider fixing your command line. [libx264 @ 03532a20] using SAR=1/1 [libx264 @ 03532a20] using cpu capabilities: MMX2 SSE2Fast FastShuffle SSEMisalign LZCNT [libx264 @ 03532a20] profile High, level 2.1 [mpegts @ 03532320] muxrate VBR, pcr every 1 pkts, sdt every 200, pat/pmt every 40 pkts Output #0, mpegts, to 'bug3.ts': Metadata: creator : QQVideo hasKeyframes : true hasVideo : true hasAudio : true hasMetadata : true canSeekToEnd : true datasize : 6994383 videosize : 5049011 audiosize : 1889996 lasttimestamp : 238 lastkeyframetimestamp: 238 lastkeyframelocation: 6995950 encoder : Lavf54.16.104 Stream #0:0: Video: h264, yuv420p, 480x270 [SAR 1:1 DAR 16:9], q=-1-- 1, 90k tbn, 15 tbc Stream #0:1: Audio: mp3, 44100 Hz, stereo, s16 Stream mapping: Stream #0:0 -> #0:0 (h264 -> libx264) Stream #0:1 -> #0:1 (aac -> libmp3lame) Press [q] to stop, [?] for help DTS -3000, next:-3001000 st:0 invalid dropping PTS -2867, next:-3001000 invalid dropping st:0 DTS -2933, next:-2935000 st:0 invalid dropping PTS -2933, next:-2935000 invalid dropping st:0 DTS -2867, next:-2869000 st:0 invalid dropping PTS -2733, next:-2869000 invalid dropping st:0 DTS -2800, next:-2803000 st:0 invalid dropping PTS -2800, next:-2803000 invalid dropping st:0 DTS -2733, next:-2737000 st:0 invalid dropping PTS -2533, next:-2737000 invalid dropping st:0 frame= 0 fps=0.0 q=0.0 size= 0kB time=00:00:-2.-70 bitrate= -0.0kbits/s dup=0 drop=2 frame= 0 fps=0.0 q=0.0 size= 0kB time=00:00:-1.-14 bitrate= -0.0kbits/s dup=0 drop=26 frame= 58 fps= 36 q=27.0 size= 114kB time=00:00:00.40 bitrate=2331.2kbits/s dup=0 drop=43 frame= 134 fps= 64 q=27.0 size= 481kB time=00:00:05.46 bitrate= 720.5kbits/s dup=0 drop=43 frame= 207 fps= 79 q=27.0 size= 824kB time=00:00:10.33 bitrate= 652.9kbits/s dup=0 drop=43 frame= 225 fps= 73 q=27.0 Lsize= 1209kB time=00:00:14.86 bitrate= 666.3kbits/s dup=6 drop=43 video:809kB audio:282kB subtitle:0 global headers:0kB muxing overhead 10.804575% [libx264 @ 03532a20] frame I:10 Avg QP:22.60 size: 8799 [libx264 @ 03532a20] frame P:150 Avg QP:24.22 size: 4437 [libx264 @ 03532a20] frame B:65 Avg QP:26.54 size: 1149 [libx264 @ 03532a20] consecutive B-frames: 48.0% 39.1% 4.0% 8.9% [libx264 @ 03532a20] mb I I16..4: 5.1% 70.4% 24.5% [libx264 @ 03532a20] mb P I16..4: 4.7% 26.6% 6.3% P16..4: 30.4% 12.3% 4.2% 0.0% 0.0% skip:15.5% [libx264 @ 03532a20] mb B I16..4: 0.5% 1.9% 0.5% B16..8: 33.9% 6.0% 1.3% direct: 2.9% skip:52.9% L0:41.0% L1:51.8% BI: 7.2% [libx264 @ 03532a20] 8x8 transform intra:70.6% inter:62.4% [libx264 @ 03532a20] coded y,uvDC,uvAC intra: 77.3% 60.1% 12.9% inter: 23.7% 18.2% 1.4% [libx264 @ 03532a20] i16 v,h,dc,p: 20% 23% 7% 50% [libx264 @ 03532a20] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 19% 15% 5% 7% 8% 7% 7% 9% [libx264 @ 03532a20] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 22% 21% 15% 6% 9% 9% 8% 6% 6% [libx264 @ 03532a20] i8c dc,h,v,p: 54% 25% 16% 5% [libx264 @ 03532a20] Weighted P-Frames: Y:10.7% UV:5.3% [libx264 @ 03532a20] ref P L0: 59.1% 17.4% 15.9% 6.8% 0.8% [libx264 @ 03532a20] ref B L0: 86.0% 13.5% 0.6% [libx264 @ 03532a20] ref B L1: 97.8% 2.2% [libx264 @ 03532a20] kb/s:441.71 % ffmpeg -i dura_err.ts 2>dura_err2.txt dura_err2.txt: ffmpeg version N-42547-g7543fd8 Copyright (c) 2000-2012 the FFmpeg developers built on Jul 15 2012 21:36:07 with gcc 4.7.1 configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-runtime-cpudetect --enable-avisynth --enable-bzlib --enable- frei0r --enable-libass --enable-libcelt --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --enable- libmp3lame --enable-libnut --enable-libopenjpeg --enable-librtmp --enable- libschroedinger --enable-libspeex --enable-libtheora --enable-libutvideo --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable- libvpx --enable-libx264 --enable-libxavs --enable-libxvid --enable-zlib libavutil 51. 65.100 / 51. 65.100 libavcodec 54. 40.100 / 54. 40.100 libavformat 54. 16.104 / 54. 16.104 libavdevice 54. 1.100 / 54. 1.100 libavfilter 3. 2.100 / 3. 2.100 libswscale 2. 1.100 / 2. 1.100 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [mpegts @ 02220fe0] max_analyze_duration 5000000 reached at 5015467 Input #0, mpegts, from 'bug3.ts': Duration: 26:30:58.56, start: 1.400000, bitrate: 0 kb/s Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p, 480x270 [SAR 1:1 DAR 16:9], 15 fps, 15 tbr, 90k tbn, 30 tbc Stream #0:1[0x101]: Audio: mp3 ([3][0][0][0] / 0x0003), 44100 Hz, stereo, s16, 128 kb/s At least one output file must be specified The Duration should be 00:00:10. However I also saw the duration occurred to be {-ss + -t} in some cases, which was also wrong. When I put -ss before and after -i (the fast and accurate seeking mode), everything became correct. }}} -- Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/1645> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://avcodec.org/mailman/listinfo/ffmpeg-trac