Opened 7 years ago
Closed 16 months ago
#6294 closed defect (fixed)
gif frame delay dropped from last frame when scale filter is used
Reported by: | Jason Ormand | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avformat |
Version: | git-master | Keywords: | gif |
Cc: | steffen.weber@gmail.com | Blocked By: | |
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Summary of the bug:
When converting a gif to an mp4 the delay is not honored when the scale filter is used. If the scale filter is removed from the command options the output is perfect.
In my case, the input gif has only two frames. Each frame has an asis delay duration of 2 seconds, so the full loop should be 4 seconds long. The output video is 2 seconds long, where the first frame shows for nearly 2 seconds the second frame is shown for ... idk, just the last tick.
Input: https://cdn0.vox-cdn.com/uploads/chorus_asset/file/8251197/7GPW_LivingRoom.gif
Simple reproduce:
ffmpeg -i input.gif -vf "scale=-2:-2" output.mp4
Log:
$ ffmpeg -v 9 -loglevel 99 -report -y -f gif -i imagefromIO.gif -an -movflags faststart -f mp4 -pix_fmt yuv420p -profile:v baseline -level 4.0 -qmin 10 -qmax 42 -crf 23 -maxrate 500k -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" imagefromIO.mp4 ffmpeg started on 2017-04-07 at 00:09:46 Report written to "ffmpeg-20170407-000946.log" ffmpeg version N-85306-ge7ec8c1 Copyright (c) 2000-2017 the FFmpeg developers built with Apple LLVM version 8.0.0 (clang-800.0.42.1) configuration: --enable-gpl --enable-libx264 --enable-libfdk-aac --enable-libvpx --enable-libmp3lame --enable-nonfree libavutil 55. 60.100 / 55. 60.100 libavcodec 57. 92.100 / 57. 92.100 libavformat 57. 72.100 / 57. 72.100 libavdevice 57. 7.100 / 57. 7.100 libavfilter 6. 84.100 / 6. 84.100 libswscale 4. 7.100 / 4. 7.100 libswresample 2. 8.100 / 2. 8.100 libpostproc 54. 6.100 / 54. 6.100 Splitting the commandline. Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'. Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'. Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'. Reading option '-f' ... matched as option 'f' (force format) with argument 'gif'. Reading option '-i' ... matched as input url with argument 'imagefromIO.gif'. Reading option '-an' ... matched as option 'an' (disable audio) with argument '1'. Reading option '-movflags' ... matched as AVOption 'movflags' with argument 'faststart'. Reading option '-f' ... matched as option 'f' (force format) with argument 'mp4'. Reading option '-pix_fmt' ... matched as option 'pix_fmt' (set pixel format) with argument 'yuv420p'. Reading option '-profile:v' ... matched as option 'profile' (set profile) with argument 'baseline'. Reading option '-level' ... matched as AVOption 'level' with argument '4.0'. Reading option '-qmin' ... matched as AVOption 'qmin' with argument '10'. Reading option '-qmax' ... matched as AVOption 'qmax' with argument '42'. Reading option '-crf' ... matched as AVOption 'crf' with argument '23'. Reading option '-maxrate' ... matched as AVOption 'maxrate' with argument '500k'. Reading option '-vf' ... matched as option 'vf' (set video filters) with argument 'scale=trunc(iw/2)*2:trunc(ih/2)*2'. Reading option 'imagefromIO.mp4' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option v (set logging level) with argument 9. Applying option report (generate a report) with argument 1. Applying option y (overwrite output files) with argument 1. Successfully parsed a group of options. Parsing a group of options: input url imagefromIO.gif. Applying option f (force format) with argument gif. Successfully parsed a group of options. Opening an input file: imagefromIO.gif. [file @ 0x7fcf184172a0] Setting default whitelist 'file,crypto' [gif @ 0x7fcf18814200] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:1 [gif @ 0x7fcf18814200] stream 0: start_time: -92233720368547760.000 duration: -92233720368547760.000 [gif @ 0x7fcf18814200] format: start_time: -9223372036854.775 duration: -9223372036854.775 bitrate=0 kb/s [gif @ 0x7fcf18814200] After avformat_find_stream_info() pos: 3316873 bytes read:6650772 seeks:2 frames:2 Input #0, gif, from 'imagefromIO.gif': Duration: N/A, bitrate: N/A Stream #0:0, 2, 1/100: Video: gif, 1 reference frame, bgra, 2432x1556, 0/1, 100 tbr, 100 tbn, 100 tbc Successfully opened the file. Parsing a group of options: output url imagefromIO.mp4. Applying option an (disable audio) with argument 1. Applying option f (force format) with argument mp4. Applying option pix_fmt (set pixel format) with argument yuv420p. Applying option profile:v (set profile) with argument baseline. Applying option vf (set video filters) with argument scale=trunc(iw/2)*2:trunc(ih/2)*2. Successfully parsed a group of options. Opening an output file: imagefromIO.mp4. [file @ 0x7fcf18419500] Setting default whitelist 'file,crypto' Successfully opened the file. Stream mapping: Stream #0:0 -> #0:0 (gif (native) -> h264 (libx264)) Press [q] to stop, [?] for help cur_dts is invalid (this is harmless if it occurs once at the start per stream) [gif @ 0x7fcf1881d400] code=21 '!' Last message repeated 1 times [gif @ 0x7fcf1881d400] code=2c ',' detected 8 logical cores [Parsed_scale_0 @ 0x7fcf18600000] Setting 'w' to value 'trunc(iw/2)*2' [Parsed_scale_0 @ 0x7fcf18600000] Setting 'h' to value 'trunc(ih/2)*2' [Parsed_scale_0 @ 0x7fcf18600000] Setting 'flags' to value 'bicubic' [Parsed_scale_0 @ 0x7fcf18600000] w:trunc(iw/2)*2 h:trunc(ih/2)*2 flags:'bicubic' interl:0 [graph 0 input from stream 0:0 @ 0x7fcf185001c0] Setting 'video_size' to value '2432x1556' [graph 0 input from stream 0:0 @ 0x7fcf185001c0] Setting 'pix_fmt' to value '30' [graph 0 input from stream 0:0 @ 0x7fcf185001c0] Setting 'time_base' to value '1/100' [graph 0 input from stream 0:0 @ 0x7fcf185001c0] Setting 'pixel_aspect' to value '0/1' [graph 0 input from stream 0:0 @ 0x7fcf185001c0] Setting 'sws_param' to value 'flags=2' [graph 0 input from stream 0:0 @ 0x7fcf185001c0] Setting 'frame_rate' to value '100/1' [graph 0 input from stream 0:0 @ 0x7fcf185001c0] w:2432 h:1556 pixfmt:bgra tb:1/100 fr:100/1 sar:0/1 sws_param:flags=2 [format @ 0x7fcf1841a660] compat: called with args=[yuv420p] [format @ 0x7fcf1841a660] Setting 'pix_fmts' to value 'yuv420p' [AVFilterGraph @ 0x7fcf1841a1a0] query_formats: 4 queried, 3 merged, 0 already done, 0 delayed [Parsed_scale_0 @ 0x7fcf18600000] w:2432 h:1556 fmt:bgra sar:0/1 -> w:2432 h:1556 fmt:yuv420p sar:0/1 flags:0x4 [libx264 @ 0x7fcf1881f600] VBV maxrate specified, but no bufsize, ignored [libx264 @ 0x7fcf1881f600] using mv_range_thread = 56 [libx264 @ 0x7fcf1881f600] frame MB size (152x98) > level limit (8192) [libx264 @ 0x7fcf1881f600] MB rate (1489600) > level limit (245760) [libx264 @ 0x7fcf1881f600] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 0x7fcf1881f600] profile Constrained Baseline, level 4.0 [libx264 @ 0x7fcf1881f600] 264 - core 148 r2748 97eaef2 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=0 ref=2 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=10 qpmax=42 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'imagefromIO.mp4': Metadata: encoder : Lavf57.72.100 Stream #0:0, 0, 1/12800: Video: h264 (libx264), 1 reference frame ([33][0][0][0] / 0x0021), yuv420p, 2432x1556, 0/1, q=10-42, 100 fps, 12800 tbn, 100 tbc Metadata: encoder : Lavc57.92.100 libx264 Side data: cpb: bitrate max/min/avg: 500000/0/0 buffer size: 0 vbv_delay: -1 Clipping frame in rate conversion by 0.000008 cur_dts is invalid (this is harmless if it occurs once at the start per stream) [gif @ 0x7fcf1881d400] code=21 '!' [gif @ 0x7fcf1881d400] code=2c ',' *** 199 dup! [libx264 @ 0x7fcf1881f600] frame= 0 QP=21.36 NAL=3 Slice:I Poc:0 I:14896 P:0 SKIP:0 size=419387 bytes [libx264 @ 0x7fcf1881f600] frame= 1 QP=20.76 NAL=2 Slice:P Poc:2 I:319 P:2646 SKIP:11931 size=9935 bytes [libx264 @ 0x7fcf1881f600] frame= 2 QP=20.37 NAL=2 Slice:P Poc:4 I:248 P:1273 SKIP:13375 size=6085 bytes [libx264 @ 0x7fcf1881f600] frame= 3 QP=20.70 NAL=2 Slice:P Poc:6 I:185 P:1292 SKIP:13419 size=4747 bytes [libx264 @ 0x7fcf1881f600] frame= 4 QP=20.60 NAL=2 Slice:P Poc:8 I:153 P:1202 SKIP:13541 size=3888 bytes [libx264 @ 0x7fcf1881f600] frame= 5 QP=20.78 NAL=2 Slice:P Poc:10 I:131 P:1145 SKIP:13620 size=3399 bytes [libx264 @ 0x7fcf1881f600] frame= 6 QP=20.91 NAL=2 Slice:P Poc:12 I:107 P:1163 SKIP:13626 size=3033 bytes [libx264 @ 0x7fcf1881f600] frame= 7 QP=20.74 NAL=2 Slice:P Poc:14 I:116 P:1087 SKIP:13693 size=3044 bytes [libx264 @ 0x7fcf1881f600] frame= 8 QP=20.65 NAL=2 Slice:P Poc:16 I:123 P:978 SKIP:13795 size=2905 bytes [libx264 @ 0x7fcf1881f600] frame= 9 QP=20.96 NAL=2 Slice:P Poc:18 I:98 P:948 SKIP:13850 size=2534 bytes [libx264 @ 0x7fcf1881f600] frame= 10 QP=20.56 NAL=2 Slice:P Poc:20 I:93 P:954 SKIP:13849 size=2784 bytes [libx264 @ 0x7fcf1881f600] frame= 11 QP=20.79 NAL=2 Slice:P Poc:22 I:118 P:836 SKIP:13942 size=2658 bytes [libx264 @ 0x7fcf1881f600] frame= 12 QP=20.41 NAL=2 Slice:P Poc:24 I:84 P:795 SKIP:14017 size=2245 bytes [libx264 @ 0x7fcf1881f600] frame= 13 QP=20.48 NAL=2 Slice:P Poc:26 I:113 P:740 SKIP:14043 size=2357 bytes [libx264 @ 0x7fcf1881f600] frame= 14 QP=20.45 NAL=2 Slice:P Poc:28 I:82 P:670 SKIP:14144 size=1981 bytes [libx264 @ 0x7fcf1881f600] frame= 15 QP=20.64 NAL=2 Slice:P Poc:30 I:78 P:604 SKIP:14214 size=1779 bytes [libx264 @ 0x7fcf1881f600] frame= 16 QP=20.65 NAL=2 Slice:P Poc:32 I:88 P:556 SKIP:14252 size=1821 bytes [libx264 @ 0x7fcf1881f600] frame= 17 QP=20.54 NAL=2 Slice:P Poc:34 I:105 P:547 SKIP:14244 size=1948 bytes [libx264 @ 0x7fcf1881f600] frame= 18 QP=20.44 NAL=2 Slice:P Poc:36 I:84 P:546 SKIP:14266 size=1720 bytes [libx264 @ 0x7fcf1881f600] frame= 19 QP=20.68 NAL=2 Slice:P Poc:38 I:84 P:525 SKIP:14287 size=1654 bytes [libx264 @ 0x7fcf1881f600] frame= 20 QP=20.44 NAL=2 Slice:P Poc:40 I:95 P:472 SKIP:14329 size=1654 bytes [libx264 @ 0x7fcf1881f600] frame= 21 QP=20.39 NAL=2 Slice:P Poc:42 I:104 P:458 SKIP:14334 size=1698 bytes [libx264 @ 0x7fcf1881f600] frame= 22 QP=20.36 NAL=2 Slice:P Poc:44 I:101 P:444 SKIP:14351 size=1607 bytes [libx264 @ 0x7fcf1881f600] frame= 23 QP=20.15 NAL=2 Slice:P Poc:46 I:86 P:490 SKIP:14320 size=1814 bytes [libx264 @ 0x7fcf1881f600] frame= 24 QP=20.26 NAL=2 Slice:P Poc:48 I:81 P:450 SKIP:14365 size=1476 bytes [libx264 @ 0x7fcf1881f600] frame= 25 QP=20.60 NAL=2 Slice:P Poc:50 I:81 P:474 SKIP:14341 size=1499 bytes [libx264 @ 0x7fcf1881f600] frame= 26 QP=20.30 NAL=2 Slice:P Poc:52 I:99 P:429 SKIP:14368 size=1534 bytes [libx264 @ 0x7fcf1881f600] frame= 27 QP=20.25 NAL=2 Slice:P Poc:54 I:93 P:437 SKIP:14366 size=1509 bytes [libx264 @ 0x7fcf1881f600] frame= 28 QP=20.23 NAL=2 Slice:P Poc:56 I:99 P:431 SKIP:14366 size=1523 bytes [libx264 @ 0x7fcf1881f600] frame= 29 QP=20.24 NAL=2 Slice:P Poc:58 I:97 P:419 SKIP:14380 size=1487 bytes [libx264 @ 0x7fcf1881f600] frame= 30 QP=20.23 NAL=2 Slice:P Poc:60 I:98 P:415 SKIP:14383 size=1503 bytes [libx264 @ 0x7fcf1881f600] frame= 31 QP=20.24 NAL=2 Slice:P Poc:62 I:96 P:408 SKIP:14392 size=1449 bytes [libx264 @ 0x7fcf1881f600] frame= 32 QP=20.23 NAL=2 Slice:P Poc:64 I:100 P:394 SKIP:14402 size=1461 bytes [libx264 @ 0x7fcf1881f600] frame= 33 QP=20.25 NAL=2 Slice:P Poc:66 I:95 P:398 SKIP:14403 size=1436 bytes [libx264 @ 0x7fcf1881f600] frame= 34 QP=20.25 NAL=2 Slice:P Poc:68 I:99 P:392 SKIP:14405 size=1447 bytes [libx264 @ 0x7fcf1881f600] frame= 35 QP=20.39 NAL=2 Slice:P Poc:70 I:97 P:389 SKIP:14410 size=1420 bytes [libx264 @ 0x7fcf1881f600] frame= 36 QP=20.23 NAL=2 Slice:P Poc:72 I:98 P:396 SKIP:14402 size=1453 bytes [libx264 @ 0x7fcf1881f600] frame= 37 QP=20.24 NAL=2 Slice:P Poc:74 I:96 P:396 SKIP:14404 size=1435 bytes [libx264 @ 0x7fcf1881f600] frame= 38 QP=20.23 NAL=2 Slice:P Poc:76 I:100 P:386 SKIP:14410 size=1440 bytes [libx264 @ 0x7fcf1881f600] frame= 39 QP=20.24 NAL=2 Slice:P Poc:78 I:95 P:394 SKIP:14407 size=1423 bytes [libx264 @ 0x7fcf1881f600] frame= 40 QP=20.23 NAL=2 Slice:P Poc:80 I:99 P:391 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 41 QP=20.24 NAL=2 Slice:P Poc:82 I:97 P:387 SKIP:14412 size=1421 bytes [libx264 @ 0x7fcf1881f600] frame= 42 QP=20.23 NAL=2 Slice:P Poc:84 I:98 P:395 SKIP:14403 size=1450 bytes [libx264 @ 0x7fcf1881f600] frame= 43 QP=20.24 NAL=2 Slice:P Poc:86 I:96 P:395 SKIP:14405 size=1424 bytes [libx264 @ 0x7fcf1881f600] frame= 44 QP=20.23 NAL=2 Slice:P Poc:88 I:100 P:389 SKIP:14407 size=1446 bytes [libx264 @ 0x7fcf1881f600] frame= 45 QP=20.24 NAL=2 Slice:P Poc:90 I:95 P:395 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 46 QP=20.23 NAL=2 Slice:P Poc:92 I:99 P:391 SKIP:14406 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 47 QP=20.24 NAL=2 Slice:P Poc:94 I:97 P:385 SKIP:14414 size=1411 bytes [libx264 @ 0x7fcf1881f600] frame= 48 QP=20.23 NAL=2 Slice:P Poc:96 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 49 QP=20.24 NAL=2 Slice:P Poc:98 I:96 P:394 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 50 QP=20.23 NAL=2 Slice:P Poc:100 I:100 P:388 SKIP:14408 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 51 QP=20.24 NAL=2 Slice:P Poc:102 I:95 P:395 SKIP:14406 size=1422 bytes [libx264 @ 0x7fcf1881f600] frame= 52 QP=20.23 NAL=2 Slice:P Poc:104 I:99 P:393 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] frame= 53 QP=20.24 NAL=2 Slice:P Poc:106 I:97 P:387 SKIP:14412 size=1421 bytes [libx264 @ 0x7fcf1881f600] frame= 54 QP=20.23 NAL=2 Slice:P Poc:108 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 55 QP=20.24 NAL=2 Slice:P Poc:110 I:96 P:392 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 56 QP=20.23 NAL=2 Slice:P Poc:112 I:100 P:386 SKIP:14410 size=1441 bytes [libx264 @ 0x7fcf1881f600] frame= 57 QP=20.24 NAL=2 Slice:P Poc:114 I:95 P:398 SKIP:14403 size=1434 bytes [libx264 @ 0x7fcf1881f600] frame= 58 QP=20.23 NAL=2 Slice:P Poc:116 I:99 P:394 SKIP:14403 size=1450 bytes [libx264 @ 0x7fcf1881f600] frame= 59 QP=20.24 NAL=2 Slice:P Poc:118 I:97 P:388 SKIP:14411 size=1416 bytes [libx264 @ 0x7fcf1881f600] frame= 60 QP=20.23 NAL=2 Slice:P Poc:120 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 61 QP=20.24 NAL=2 Slice:P Poc:122 I:96 P:394 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 62 QP=20.23 NAL=2 Slice:P Poc:124 I:100 P:386 SKIP:14410 size=1440 bytes [libx264 @ 0x7fcf1881f600] frame= 63 QP=20.24 NAL=2 Slice:P Poc:126 I:95 P:393 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 64 QP=20.23 NAL=2 Slice:P Poc:128 I:99 P:393 SKIP:14404 size=1449 bytes [libx264 @ 0x7fcf1881f600] frame= 65 QP=20.24 NAL=2 Slice:P Poc:130 I:97 P:389 SKIP:14410 size=1425 bytes [libx264 @ 0x7fcf1881f600] frame= 66 QP=20.23 NAL=2 Slice:P Poc:132 I:98 P:394 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] frame= 67 QP=20.24 NAL=2 Slice:P Poc:134 I:96 P:392 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 68 QP=20.23 NAL=2 Slice:P Poc:136 I:100 P:386 SKIP:14410 size=1441 bytes [libx264 @ 0x7fcf1881f600] frame= 69 QP=20.24 NAL=2 Slice:P Poc:138 I:95 P:395 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 70 QP=20.23 NAL=2 Slice:P Poc:140 I:99 P:391 SKIP:14406 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 71 QP=20.24 NAL=2 Slice:P Poc:142 I:97 P:385 SKIP:14414 size=1411 bytes [libx264 @ 0x7fcf1881f600] frame= 72 QP=20.23 NAL=2 Slice:P Poc:144 I:98 P:394 SKIP:14404 size=1449 bytes [libx264 @ 0x7fcf1881f600] frame= 73 QP=20.24 NAL=2 Slice:P Poc:146 I:96 P:396 SKIP:14404 size=1433 bytes [libx264 @ 0x7fcf1881f600] frame= 74 QP=20.23 NAL=2 Slice:P Poc:148 I:100 P:388 SKIP:14408 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 75 QP=20.24 NAL=2 Slice:P Poc:150 I:95 P:393 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 76 QP=20.23 NAL=2 Slice:P Poc:152 I:99 P:391 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 77 QP=20.24 NAL=2 Slice:P Poc:154 I:97 P:387 SKIP:14412 size=1421 bytes [libx264 @ 0x7fcf1881f600] frame= 78 QP=20.23 NAL=2 Slice:P Poc:156 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 79 QP=20.24 NAL=2 Slice:P Poc:158 I:96 P:394 SKIP:14406 size=1422 bytes [libx264 @ 0x7fcf1881f600] frame= 80 QP=20.23 NAL=2 Slice:P Poc:160 I:100 P:388 SKIP:14408 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 81 QP=20.24 NAL=2 Slice:P Poc:162 I:95 P:397 SKIP:14404 size=1432 bytes [libx264 @ 0x7fcf1881f600] frame= 82 QP=20.23 NAL=2 Slice:P Poc:164 I:99 P:391 SKIP:14406 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 83 QP=20.24 NAL=2 Slice:P Poc:166 I:97 P:385 SKIP:14414 size=1411 bytes [libx264 @ 0x7fcf1881f600] frame= 84 QP=20.23 NAL=2 Slice:P Poc:168 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 85 QP=20.24 NAL=2 Slice:P Poc:170 I:96 P:394 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 86 QP=20.23 NAL=2 Slice:P Poc:172 I:100 P:388 SKIP:14408 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 87 QP=20.24 NAL=2 Slice:P Poc:174 I:95 P:395 SKIP:14406 size=1422 bytes [libx264 @ 0x7fcf1881f600] frame= 88 QP=20.23 NAL=2 Slice:P Poc:176 I:99 P:393 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] frame= 89 QP=20.24 NAL=2 Slice:P Poc:178 I:97 P:387 SKIP:14412 size=1421 bytes [libx264 @ 0x7fcf1881f600] frame= 90 QP=20.23 NAL=2 Slice:P Poc:180 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 91 QP=20.24 NAL=2 Slice:P Poc:182 I:96 P:392 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 92 QP=20.23 NAL=2 Slice:P Poc:184 I:100 P:386 SKIP:14410 size=1441 bytes [libx264 @ 0x7fcf1881f600] frame= 93 QP=20.24 NAL=2 Slice:P Poc:186 I:95 P:395 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 94 QP=20.23 NAL=2 Slice:P Poc:188 I:99 P:393 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] frame= 95 QP=20.24 NAL=2 Slice:P Poc:190 I:97 P:387 SKIP:14412 size=1415 bytes [libx264 @ 0x7fcf1881f600] frame= 96 QP=20.23 NAL=2 Slice:P Poc:192 I:98 P:394 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] frame= 97 QP=20.24 NAL=2 Slice:P Poc:194 I:96 P:394 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 98 QP=20.23 NAL=2 Slice:P Poc:196 I:100 P:386 SKIP:14410 size=1440 bytes [libx264 @ 0x7fcf1881f600] frame= 99 QP=20.24 NAL=2 Slice:P Poc:198 I:95 P:393 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 100 QP=20.23 NAL=2 Slice:P Poc:200 I:99 P:391 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 101 QP=20.24 NAL=2 Slice:P Poc:202 I:97 P:389 SKIP:14410 size=1425 bytes [libx264 @ 0x7fcf1881f600] frame= 102 QP=20.23 NAL=2 Slice:P Poc:204 I:98 P:394 SKIP:14404 size=1449 bytes [libx264 @ 0x7fcf1881f600] frame= 103 QP=20.24 NAL=2 Slice:P Poc:206 I:96 P:394 SKIP:14406 size=1422 bytes [libx264 @ 0x7fcf1881f600] frame= 104 QP=20.23 NAL=2 Slice:P Poc:208 I:100 P:386 SKIP:14410 size=1441 bytes [libx264 @ 0x7fcf1881f600] frame= 105 QP=20.24 NAL=2 Slice:P Poc:210 I:95 P:395 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 106 QP=20.23 NAL=2 Slice:P Poc:212 I:99 P:391 SKIP:14406 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 107 QP=20.24 NAL=2 Slice:P Poc:214 I:97 P:385 SKIP:14414 size=1411 bytes [libx264 @ 0x7fcf1881f600] frame= 108 QP=20.23 NAL=2 Slice:P Poc:216 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 109 QP=20.24 NAL=2 Slice:P Poc:218 I:96 P:396 SKIP:14404 size=1433 bytes [libx264 @ 0x7fcf1881f600] frame= 110 QP=20.23 NAL=2 Slice:P Poc:220 I:100 P:388 SKIP:14408 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 111 QP=20.24 NAL=2 Slice:P Poc:222 I:95 P:395 SKIP:14406 size=1421 bytes [libx264 @ 0x7fcf1881f600] frame= 112 QP=20.23 NAL=2 Slice:P Poc:224 I:99 P:391 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 113 QP=20.24 NAL=2 Slice:P Poc:226 I:97 P:387 SKIP:14412 size=1421 bytes [libx264 @ 0x7fcf1881f600] frame= 114 QP=20.23 NAL=2 Slice:P Poc:228 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 115 QP=20.24 NAL=2 Slice:P Poc:230 I:96 P:392 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 116 QP=20.23 NAL=2 Slice:P Poc:232 I:100 P:388 SKIP:14408 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 117 QP=20.24 NAL=2 Slice:P Poc:234 I:95 P:397 SKIP:14404 size=1433 bytes [libx264 @ 0x7fcf1881f600] frame= 118 QP=20.23 NAL=2 Slice:P Poc:236 I:99 P:393 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] frame= 119 QP=20.24 NAL=2 Slice:P Poc:238 I:97 P:385 SKIP:14414 size=1411 bytes [libx264 @ 0x7fcf1881f600] frame= 120 QP=20.23 NAL=2 Slice:P Poc:240 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 121 QP=20.24 NAL=2 Slice:P Poc:242 I:96 P:394 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 122 QP=20.23 NAL=2 Slice:P Poc:244 I:100 P:386 SKIP:14410 size=1440 bytes [libx264 @ 0x7fcf1881f600] frame= 123 QP=20.24 NAL=2 Slice:P Poc:246 I:95 P:393 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 124 QP=20.23 NAL=2 Slice:P Poc:248 I:99 P:393 SKIP:14404 size=1449 bytes [libx264 @ 0x7fcf1881f600] frame= 125 QP=20.24 NAL=2 Slice:P Poc:250 I:97 P:389 SKIP:14410 size=1425 bytes [libx264 @ 0x7fcf1881f600] frame= 126 QP=20.23 NAL=2 Slice:P Poc:252 I:98 P:394 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] frame= 127 QP=20.24 NAL=2 Slice:P Poc:254 I:96 P:392 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 128 QP=20.23 NAL=2 Slice:P Poc:256 I:100 P:386 SKIP:14410 size=1441 bytes [libx264 @ 0x7fcf1881f600] frame= 129 QP=20.24 NAL=2 Slice:P Poc:258 I:95 P:395 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 130 QP=20.23 NAL=2 Slice:P Poc:260 I:99 P:391 SKIP:14406 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 131 QP=20.24 NAL=2 Slice:P Poc:262 I:97 P:387 SKIP:14412 size=1415 bytes [libx264 @ 0x7fcf1881f600] frame= 132 QP=20.23 NAL=2 Slice:P Poc:264 I:98 P:394 SKIP:14404 size=1449 bytes [libx264 @ 0x7fcf1881f600] frame= 133 QP=20.24 NAL=2 Slice:P Poc:266 I:96 P:396 SKIP:14404 size=1432 bytes [libx264 @ 0x7fcf1881f600] frame= 134 QP=20.23 NAL=2 Slice:P Poc:268 I:100 P:386 SKIP:14410 size=1440 bytes [libx264 @ 0x7fcf1881f600] frame= 135 QP=20.24 NAL=2 Slice:P Poc:270 I:95 P:393 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 136 QP=20.23 NAL=2 Slice:P Poc:272 I:99 P:391 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 137 QP=20.24 NAL=2 Slice:P Poc:274 I:97 P:387 SKIP:14412 size=1421 bytes [libx264 @ 0x7fcf1881f600] frame= 138 QP=20.23 NAL=2 Slice:P Poc:276 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 139 QP=20.24 NAL=2 Slice:P Poc:278 I:96 P:394 SKIP:14406 size=1422 bytes [libx264 @ 0x7fcf1881f600] frame= 140 QP=20.23 NAL=2 Slice:P Poc:280 I:100 P:388 SKIP:14408 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 141 QP=20.24 NAL=2 Slice:P Poc:282 I:95 P:397 SKIP:14404 size=1432 bytes [libx264 @ 0x7fcf1881f600] frame= 142 QP=20.23 NAL=2 Slice:P Poc:284 I:99 P:391 SKIP:14406 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 143 QP=20.24 NAL=2 Slice:P Poc:286 I:97 P:385 SKIP:14414 size=1411 bytes [libx264 @ 0x7fcf1881f600] frame= 144 QP=20.23 NAL=2 Slice:P Poc:288 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 145 QP=20.24 NAL=2 Slice:P Poc:290 I:96 P:394 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 146 QP=20.23 NAL=2 Slice:P Poc:292 I:100 P:388 SKIP:14408 size=1444 bytes [libx264 @ 0x7fcf1881f600] frame= 147 QP=20.24 NAL=2 Slice:P Poc:294 I:95 P:395 SKIP:14406 size=1422 bytes No more output streams to write to, finishing.e=00:00:01.47 bitrate=3622.7kbits/s dup=199 drop=0 speed=0.603x [libx264 @ 0x7fcf1881f600] frame= 148 QP=20.23 NAL=2 Slice:P Poc:296 I:99 P:393 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] frame= 149 QP=20.24 NAL=2 Slice:P Poc:298 I:97 P:387 SKIP:14412 size=1421 bytes [libx264 @ 0x7fcf1881f600] frame= 150 QP=20.23 NAL=2 Slice:P Poc:300 I:98 P:392 SKIP:14406 size=1445 bytes [libx264 @ 0x7fcf1881f600] frame= 151 QP=20.24 NAL=2 Slice:P Poc:302 I:96 P:392 SKIP:14408 size=1418 bytes [libx264 @ 0x7fcf1881f600] frame= 152 QP=20.23 NAL=2 Slice:P Poc:304 I:100 P:386 SKIP:14410 size=1441 bytes [libx264 @ 0x7fcf1881f600] frame= 153 QP=20.24 NAL=2 Slice:P Poc:306 I:95 P:395 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 154 QP=20.23 NAL=2 Slice:P Poc:308 I:99 P:393 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] scene cut at 199 Icost:2032865 Pcost:2025211 ratio:0.0038 bias:0.3320 gop:199 (imb:14323 pmb:77) [libx264 @ 0x7fcf1881f600] frame= 155 QP=20.24 NAL=2 Slice:P Poc:310 I:97 P:387 SKIP:14412 size=1415 bytes [libx264 @ 0x7fcf1881f600] frame= 156 QP=20.23 NAL=2 Slice:P Poc:312 I:98 P:394 SKIP:14404 size=1448 bytes [libx264 @ 0x7fcf1881f600] frame= 157 QP=20.24 NAL=2 Slice:P Poc:314 I:96 P:394 SKIP:14406 size=1429 bytes [libx264 @ 0x7fcf1881f600] frame= 158 QP=20.23 NAL=2 Slice:P Poc:316 I:100 P:386 SKIP:14410 size=1440 bytes [libx264 @ 0x7fcf1881f600] frame= 159 QP=20.32 NAL=2 Slice:P Poc:318 I:90 P:379 SKIP:14427 size=1361 bytes [libx264 @ 0x7fcf1881f600] frame= 160 QP=20.31 NAL=2 Slice:P Poc:320 I:90 P:368 SKIP:14438 size=1341 bytes [libx264 @ 0x7fcf1881f600] frame= 161 QP=20.41 NAL=2 Slice:P Poc:322 I:88 P:340 SKIP:14468 size=1226 bytes [libx264 @ 0x7fcf1881f600] frame= 162 QP=20.49 NAL=2 Slice:P Poc:324 I:87 P:330 SKIP:14479 size=1198 bytes [libx264 @ 0x7fcf1881f600] frame= 163 QP=20.51 NAL=2 Slice:P Poc:326 I:82 P:316 SKIP:14498 size=1126 bytes [libx264 @ 0x7fcf1881f600] frame= 164 QP=20.54 NAL=2 Slice:P Poc:328 I:83 P:303 SKIP:14510 size=1098 bytes [libx264 @ 0x7fcf1881f600] frame= 165 QP=20.57 NAL=2 Slice:P Poc:330 I:75 P:293 SKIP:14528 size=1026 bytes [libx264 @ 0x7fcf1881f600] frame= 166 QP=20.59 NAL=2 Slice:P Poc:332 I:82 P:282 SKIP:14532 size=1024 bytes [libx264 @ 0x7fcf1881f600] frame= 167 QP=20.63 NAL=2 Slice:P Poc:334 I:70 P:276 SKIP:14550 size=947 bytes [libx264 @ 0x7fcf1881f600] frame= 168 QP=20.13 NAL=2 Slice:P Poc:336 I:74 P:295 SKIP:14527 size=1084 bytes [libx264 @ 0x7fcf1881f600] frame= 169 QP=20.23 NAL=2 Slice:P Poc:338 I:70 P:280 SKIP:14546 size=1002 bytes [libx264 @ 0x7fcf1881f600] frame= 170 QP=20.68 NAL=2 Slice:P Poc:340 I:71 P:265 SKIP:14560 size=983 bytes [libx264 @ 0x7fcf1881f600] frame= 171 QP=20.26 NAL=2 Slice:P Poc:342 I:71 P:262 SKIP:14563 size=950 bytes [libx264 @ 0x7fcf1881f600] frame= 172 QP=20.16 NAL=2 Slice:P Poc:344 I:68 P:280 SKIP:14548 size=1032 bytes [libx264 @ 0x7fcf1881f600] frame= 173 QP=20.64 NAL=2 Slice:P Poc:346 I:73 P:256 SKIP:14567 size=972 bytes [libx264 @ 0x7fcf1881f600] frame= 174 QP=20.26 NAL=2 Slice:P Poc:348 I:67 P:254 SKIP:14575 size=922 bytes [libx264 @ 0x7fcf1881f600] frame= 175 QP=20.40 NAL=2 Slice:P Poc:350 I:71 P:248 SKIP:14577 size=901 bytes [libx264 @ 0x7fcf1881f600] frame= 176 QP=20.58 NAL=2 Slice:P Poc:352 I:68 P:235 SKIP:14593 size=818 bytes [libx264 @ 0x7fcf1881f600] frame= 177 QP=21.19 NAL=2 Slice:P Poc:354 I:67 P:236 SKIP:14593 size=776 bytes [libx264 @ 0x7fcf1881f600] frame= 178 QP=20.74 NAL=2 Slice:P Poc:356 I:66 P:237 SKIP:14593 size=782 bytes [libx264 @ 0x7fcf1881f600] frame= 179 QP=21.43 NAL=2 Slice:P Poc:358 I:63 P:237 SKIP:14596 size=743 bytes [libx264 @ 0x7fcf1881f600] frame= 180 QP=21.66 NAL=2 Slice:P Poc:360 I:58 P:234 SKIP:14604 size=709 bytes [libx264 @ 0x7fcf1881f600] frame= 181 QP=21.74 NAL=2 Slice:P Poc:362 I:56 P:241 SKIP:14599 size=699 bytes [libx264 @ 0x7fcf1881f600] frame= 182 QP=21.05 NAL=2 Slice:P Poc:364 I:63 P:259 SKIP:14574 size=811 bytes [libx264 @ 0x7fcf1881f600] frame= 183 QP=21.19 NAL=2 Slice:P Poc:366 I:59 P:248 SKIP:14589 size=741 bytes [libx264 @ 0x7fcf1881f600] frame= 184 QP=21.21 NAL=2 Slice:P Poc:368 I:54 P:254 SKIP:14588 size=738 bytes [libx264 @ 0x7fcf1881f600] frame= 185 QP=21.21 NAL=2 Slice:P Poc:370 I:55 P:257 SKIP:14584 size=730 bytes [libx264 @ 0x7fcf1881f600] frame= 186 QP=21.21 NAL=2 Slice:P Poc:372 I:54 P:254 SKIP:14588 size=723 bytes [libx264 @ 0x7fcf1881f600] frame= 187 QP=22.17 NAL=2 Slice:P Poc:374 I:54 P:262 SKIP:14580 size=729 bytes [libx264 @ 0x7fcf1881f600] frame= 188 QP=22.17 NAL=2 Slice:P Poc:376 I:51 P:267 SKIP:14578 size=711 bytes [libx264 @ 0x7fcf1881f600] frame= 189 QP=22.17 NAL=2 Slice:P Poc:378 I:51 P:259 SKIP:14586 size=689 bytes [libx264 @ 0x7fcf1881f600] frame= 190 QP=22.21 NAL=2 Slice:P Poc:380 I:52 P:252 SKIP:14592 size=666 bytes [libx264 @ 0x7fcf1881f600] frame= 191 QP=23.17 NAL=2 Slice:P Poc:382 I:48 P:201 SKIP:14647 size=523 bytes [libx264 @ 0x7fcf1881f600] frame= 192 QP=23.19 NAL=2 Slice:P Poc:384 I:41 P:197 SKIP:14658 size=497 bytes [libx264 @ 0x7fcf1881f600] frame= 193 QP=23.21 NAL=2 Slice:P Poc:386 I:44 P:193 SKIP:14659 size=489 bytes [libx264 @ 0x7fcf1881f600] frame= 194 QP=24.19 NAL=2 Slice:P Poc:388 I:46 P:185 SKIP:14665 size=464 bytes [libx264 @ 0x7fcf1881f600] frame= 195 QP=24.21 NAL=2 Slice:P Poc:390 I:45 P:181 SKIP:14670 size=444 bytes [libx264 @ 0x7fcf1881f600] frame= 196 QP=25.19 NAL=2 Slice:P Poc:392 I:43 P:177 SKIP:14676 size=439 bytes [libx264 @ 0x7fcf1881f600] frame= 197 QP=26.19 NAL=2 Slice:P Poc:394 I:39 P:143 SKIP:14714 size=349 bytes [libx264 @ 0x7fcf1881f600] frame= 198 QP=28.21 NAL=2 Slice:P Poc:396 I:26 P:92 SKIP:14778 size=250 bytes [libx264 @ 0x7fcf1881f600] frame= 199 QP=24.97 NAL=3 Slice:I Poc:0 I:14896 P:0 SKIP:0 size=73782 bytes [libx264 @ 0x7fcf1881f600] frame= 200 QP=27.48 NAL=2 Slice:P Poc:2 I:2 P:36 SKIP:14858 size=115 bytes [mp4 @ 0x7fcf1881e400] Starting second pass: moving the moov atom to the beginning of the file [file @ 0x7fcf1841ab60] Setting default whitelist 'file,crypto' [AVIOContext @ 0x7fcf1841ade0] Statistics: 788092 bytes read, 0 seeks frame= 201 fps= 69 q=-1.0 Lsize= 771kB time=00:00:02.00 bitrate=3158.6kbits/s dup=199 drop=0 speed=0.69x video:770kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.206461% Input file #0 (imagefromIO.gif): Input stream #0:0 (video): 2 packets read (3316872 bytes); 2 frames decoded; Total: 2 packets (3316872 bytes) demuxed Output file #0 (imagefromIO.mp4): Output stream #0:0 (video): 201 frames encoded; 201 packets muxed (788043 bytes); Total: 201 packets (788043 bytes) muxed 2 frames successfully decoded, 0 decoding errors [AVIOContext @ 0x7fcf18419640] Statistics: 36 seeks, 266 writeouts [libx264 @ 0x7fcf1881f600] frame I:2 Avg QP:23.17 size:246584 [libx264 @ 0x7fcf1881f600] frame P:199 Avg QP:20.60 size: 1479 [libx264 @ 0x7fcf1881f600] mb I I16..4: 60.8% 0.0% 39.2% [libx264 @ 0x7fcf1881f600] mb P I16..4: 0.5% 0.0% 0.1% P16..4: 1.7% 0.4% 0.7% 0.0% 0.0% skip:96.6% [libx264 @ 0x7fcf1881f600] coded y,uvDC,uvAC intra: 42.4% 59.6% 8.2% inter: 0.0% 1.5% 0.0% [libx264 @ 0x7fcf1881f600] i16 v,h,dc,p: 48% 28% 14% 9% [libx264 @ 0x7fcf1881f600] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 17% 31% 28% 5% 4% 2% 4% 2% 5% [libx264 @ 0x7fcf1881f600] i8c dc,h,v,p: 73% 12% 13% 1% [libx264 @ 0x7fcf1881f600] ref P L0: 67.5% 32.5% [libx264 @ 0x7fcf1881f600] kb/s:3133.98 [AVIOContext @ 0x7fcf18417a40] Statistics: 6650772 bytes read, 2 seeks
Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.
Change History (14)
comment:1 by , 7 years ago
Priority: | normal → important |
---|
comment:2 by , 7 years ago
Component: | ffmpeg → avfilter |
---|---|
Keywords: | fps added; gif removed |
Priority: | important → normal |
Reproduced by developer: | set |
Status: | new → open |
comment:3 by , 7 years ago
Would it help to start a bounty or donate? I really appreciate all the help.
comment:4 by , 7 years ago
Works if you call scale from within a filter_complex.
λ ffmpeg -i 7GPW_LivingRoom.gif -filter_complex scale=-2:-2 fc-out.mp4 ffmpeg version N-85457-g8378466507 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 6.3.0 (Rev2, Built by MSYS2 project) configuration: --enable-avisynth --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-cuda --enable-cuvid --enable-schannel --enable-decklink --enable-fontconfig --enable-frei0r --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libilbc --enable-libmfx --enable-libmodplug --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libwavpack --enable-libwebp --enable-libxavs --enable-libxvid --enable-libzimg --enable-openssl --enable-libsnappy --enable-gpl --enable-opencl --enable-opengl --enable-libcdio --enable-libfdk-aac --enable-libkvazaar --enable-librubberband --enable-libssh --enable-libtesseract --enable-libzvbi --enable-chromaprint --enable-libopenh264 --enable-libopenmpt --enable-netcdf --enable-sdl2 --enable-libzmq --extra-cflags=-DLIBTWOLAME_STATIC --extra-cflags=-fopenmp --extra-libs=-lgomp --extra-libs=-lstdc++ --extra-cflags=-DLIBSSH_STATIC --extra-ldflags='-Wl,--allow-multiple-definition' --extra-cflags=-DCACA_STATIC --extra-cflags=-DMODPLUG_STATIC --extra-cflags=-DCHROMAPRINT_NODLL --extra-libs=-lstdc++ --extra-cflags=-DZMQ_STATIC --disable-w32threads --extra-cflags=-DPTW32_STATIC_LIB --extra-libs=-lpthread --extra-libs=-lwsock32 --extra-cflags=-DKVZ_STATIC_LIB --enable-version3 --enable-nonfree --enable-filter=frei0r --disable-debug libavutil 55. 61.100 / 55. 61.100 libavcodec 57. 92.100 / 57. 92.100 libavformat 57. 72.100 / 57. 72.100 libavdevice 57. 7.100 / 57. 7.100 libavfilter 6. 84.101 / 6. 84.101 libswscale 4. 7.100 / 4. 7.100 libswresample 2. 8.100 / 2. 8.100 libpostproc 54. 6.100 / 54. 6.100 Input #0, gif, from '7GPW_LivingRoom.gif': Duration: N/A, bitrate: N/A Stream #0:0: Video: gif, bgra, 2432x1556, 100 tbr, 100 tbn, 100 tbc Stream mapping: Stream #0:0 (gif) -> scale scale -> Stream #0:0 (libx264) Press [q] to stop, [?] for help No pixel format specified, yuv444p for H.264 encoding chosen. Use -pix_fmt yuv420p for compatibility with outdated media players. [libx264 @ 00000000004bc800] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 00000000004bc800] profile High 4:4:4 Predictive, level 5.2, 4:4:4 8-bit [libx264 @ 00000000004bc800] 264 - core 148 r2762 90a61ec - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 Output #0, mp4, to 'fc-out.mp4': Metadata: encoder : Lavf57.72.100 Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv444p, 2432x1556, q=-1--1, 100 fps, 12800 tbn, 100 tbc Metadata: encoder : Lavc57.92.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 frame= 400 fps= 33 q=-1.0 Lsize= 937kB time=00:00:03.97 bitrate=1932.9kbits/s dup=398 drop=0 speed=0.324x video:931kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.589860% [libx264 @ 00000000004bc800] frame I:2 Avg QP:19.71 size:443142 [libx264 @ 00000000004bc800] frame P:100 Avg QP:22.09 size: 292 [libx264 @ 00000000004bc800] frame B:298 Avg QP:30.84 size: 126 [libx264 @ 00000000004bc800] consecutive B-frames: 0.5% 0.0% 1.5% 98.0% [libx264 @ 00000000004bc800] mb I I16..4: 8.8% 87.2% 4.1% [libx264 @ 00000000004bc800] mb P I16..4: 0.0% 0.0% 0.0% P16..4: 0.1% 0.1% 0.7% 0.0% 0.0% skip:99.1% [libx264 @ 00000000004bc800] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.1% 0.0% 0.0% direct: 0.0% skip:99.9% L0:30.3% L1:69.7% BI: 0.0% [libx264 @ 00000000004bc800] 8x8 transform intra:86.8% inter:91.3% [libx264 @ 00000000004bc800] coded y,u,v intra: 95.9% 46.8% 42.9% inter: 0.0% 0.0% 0.0% [libx264 @ 00000000004bc800] i16 v,h,dc,p: 12% 41% 38% 9% [libx264 @ 00000000004bc800] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 14% 35% 29% 5% 4% 2% 3% 2% 7% [libx264 @ 00000000004bc800] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 39% 17% 15% 6% 5% 3% 5% 3% 7% [libx264 @ 00000000004bc800] Weighted P-Frames: Y:0.0% UV:0.0% [libx264 @ 00000000004bc800] ref P L0: 92.0% 0.6% 4.6% 2.8% [libx264 @ 00000000004bc800] ref B L0: 61.0% 37.9% 1.1% [libx264 @ 00000000004bc800] ref B L1: 66.0% 34.0% [libx264 @ 00000000004bc800] kb/s:1905.86
comment:5 by , 7 years ago
Ah, so it does. The other filter I'm using with gifs creates a canvas to set the background color for transparent regions in gifs: ffmpeg -f lavfi -i color=000000 -i livingroom.gif -filter_complex "[0][1]scale2ref[bg][gif];[bg]setsar=1[bg];[bg][gif]overlay=shortest=1, scale=-2:-2" livingroom.mp4
And that results in a 2 second video yet again.
Or just with the canvas filter: ffmpeg -f lavfi -i color=000000 -i livingroom.gif -filter_complex "[0][1]scale2ref[bg][gif];[bg]setsar=1[bg];[bg][gif]overlay=shortest=1, scale=-2:-2" livingroom.mp4
Same thing, a 2 second video where I'd expect a 4 second video.
So maybe some filters break the gif timings and others do not? And possibly all simple filters.
comment:6 by , 7 years ago
There's a hack method which works if you use a build from earlier than 23rd Dec 2016.
ffmpeg -f lavfi -i color=000000 -i 7GPW_LivingRoom.gif -filter_complex "[1]reverse,trim=end_frame=1[t];[1][t]concat[g];[0][g]scale2ref[bg][gif];[bg]setsar=1[bg];[bg][gif]overlay=shortest=1,scale=-2:-2" livingroom.mp4
The idea is to duplicate the last frame of the GIF and append it to itself, and use that going forward. The reason for the 23 Dec 2016 cutoff is because there's a bug (#6292) with some video filters at present, involving the shortest option.
follow-up: 9 comment:7 by , 7 years ago
A command so intuitive it almost writes itself : D
But really, thank you very much Gyan, I appreciate in the workaround. I'll probably run with this in the mean time. I'll leave this ticket open though since it's still valid.
Would it be safe to assume that this "hack" would work with later stable versions of ffmpeg? Works well with 3.2.4 which I believe is what is considered stable.
comment:9 by , 7 years ago
Replying to okor:
Works well with 3.2.4 which I believe is what is considered stable.
The release branch 3.2 is neither more stable nor less stable than any other branch including the development branch but all release branches and all releases are known to contain more bugs and less features than the development branch.
Distributors have to ship releases, users have the advantage that they can use current FFmpeg.
comment:10 by , 5 years ago
The filter_complex workaround worked in version 4.1.5, but does not work in version 4.2.2. Would it help if I track this down to the exact version that broke it?
EDIT: The first version that I've seen this regress in is 4.2.0.
I've uploaded my ffmpeg docker container to kamermans/ffmpeg-4.2.0
for reference.
comment:11 by , 4 years ago
Something similar happens with no scale filter on all gif outputs. #7972
ffmpeg started on 2020-03-28 at 02:19:22 Report written to "ffmpeg-20200328-021922.log" Log level: 99 Command line: ffmpeg -i "C:\\Users\\Akira Baes\\Desktop\\Old Anims\\_version36A\\onetwothree.gif" "C:\\Users\\Akira Baes\\Desktop\\Old Anims\\_version36A\\\\onetwothree touch.gif" -y -v 9 -loglevel 99 -report ffmpeg version git-2020-03-24-e5d25d1 Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.2.1 (GCC) 20200122 configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf libavutil 56. 42.101 / 56. 42.101 libavcodec 58. 76.100 / 58. 76.100 libavformat 58. 42.100 / 58. 42.100 libavdevice 58. 9.103 / 58. 9.103 libavfilter 7. 77.100 / 7. 77.100 libswscale 5. 6.101 / 5. 6.101 libswresample 3. 6.100 / 3. 6.100 libpostproc 55. 6.100 / 55. 6.100 Splitting the commandline. Reading option '-i' ... matched as input url with argument 'C:\Users\Akira Baes\Desktop\Old Anims\_version36A\onetwothree.gif'. Reading option 'C:\Users\Akira Baes\Desktop\Old Anims\_version36A\\onetwothree touch.gif' ... matched as output url. Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'. Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'. Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'. Finished splitting the commandline. Parsing a group of options: global . Applying option y (overwrite output files) with argument 1. Applying option v (set logging level) with argument 9. Applying option loglevel (set logging level) with argument 99. Applying option report (generate a report) with argument 1. Successfully parsed a group of options. Parsing a group of options: input url C:\Users\Akira Baes\Desktop\Old Anims\_version36A\onetwothree.gif. Successfully parsed a group of options. Opening an input file: C:\Users\Akira Baes\Desktop\Old Anims\_version36A\onetwothree.gif. [NULL @ 000001b97514c480] Opening 'C:\Users\Akira Baes\Desktop\Old Anims\_version36A\onetwothree.gif' for reading [file @ 000001b97514d4c0] Setting default whitelist 'file,crypto,data' Probing gif score:100 size:1795 Probing gif_pipe score:99 size:1795 [gif @ 000001b97514c480] Format gif probed with size=2048 and score=100 [gif @ 000001b97514c480] Before avformat_find_stream_info() pos: 0 bytes read:1795 seeks:0 nb_streams:1 [gif @ 000001b97514c480] rfps: 4.833333 0.010000 [gif @ 000001b97514c480] rfps: 4.833333 0.010000 [gif @ 000001b97514c480] rfps: 4.916667 0.002500 ...[I Truncated here for readability]... [gif @ 000001b97514c480] rfps: 59.940060 0.001293 [gif @ 000001b97514c480] rfps: 14.985015 0.000081 [gif @ 000001b97514c480] rfps: 14.985015 0.000081 [gif @ 000001b97514c480] stream 0: start_time: 0.000 duration: 2.000 [gif @ 000001b97514c480] format: start_time: 0.000 duration: 2.000 (estimate from stream) bitrate=7 kb/s [gif @ 000001b97514c480] After avformat_find_stream_info() pos: 1795 bytes read:1795 seeks:0 frames:3 Input #0, gif, from 'C:\Users\Akira Baes\Desktop\Old Anims\_version36A\onetwothree.gif': Duration: 00:00:02.00, start: 0.000000, bitrate: 7 kb/s Stream #0:0, 3, 1/100: Video: gif, 1 reference frame, bgra, 64x64, 0/1, 5 fps, 5 tbr, 100 tbn, 100 tbc Successfully opened the file. Parsing a group of options: output url C:\Users\Akira Baes\Desktop\Old Anims\_version36A\\onetwothree touch.gif. Successfully parsed a group of options. Opening an output file: C:\Users\Akira Baes\Desktop\Old Anims\_version36A\\onetwothree touch.gif. [file @ 000001b975153b00] Setting default whitelist 'file,crypto,data' Successfully opened the file. Stream mapping: Stream #0:0 -> #0:0 (gif (native) -> gif (native)) Press [q] to stop, [?] for help cur_dts is invalid st:0 (0) [init:0 i_done:0 finish:0] (this is harmless if it occurs once at the start per stream) [gif @ 000001b9751604c0] code=21 '!' [gif @ 000001b9751604c0] code=21 '!' [gif @ 000001b9751604c0] code=2c ',' detected 12 logical cores [graph 0 input from stream 0:0 @ 000001b9751a8480] Setting 'video_size' to value '64x64' [graph 0 input from stream 0:0 @ 000001b9751a8480] Setting 'pix_fmt' to value '28' [graph 0 input from stream 0:0 @ 000001b9751a8480] Setting 'time_base' to value '1/100' [graph 0 input from stream 0:0 @ 000001b9751a8480] Setting 'pixel_aspect' to value '0/1' [graph 0 input from stream 0:0 @ 000001b9751a8480] Setting 'frame_rate' to value '5/1' [graph 0 input from stream 0:0 @ 000001b9751a8480] w:64 h:64 pixfmt:bgra tb:1/100 fr:5/1 sar:0/1 [format @ 000001b9751a8ac0] Setting 'pix_fmts' to value 'rgb8|bgr8|rgb4_byte|bgr4_byte|gray|pal8' [auto_scaler_0 @ 000001b9751aa1c0] Setting 'flags' to value 'bicubic' [auto_scaler_0 @ 000001b9751aa1c0] w:iw h:ih flags:'bicubic' interl:0 [format @ 000001b9751a8ac0] auto-inserting filter 'auto_scaler_0' between the filter 'Parsed_null_0' and the filter 'format' [AVFilterGraph @ 000001b9751a5a00] query_formats: 4 queried, 2 merged, 1 already done, 0 delayed [auto_scaler_0 @ 000001b9751aa1c0] picking bgr8 out of 6 ref:bgra alpha:1 [swscaler @ 000001b9751aba40] Forcing full internal H chroma due to input having non subsampled chroma [auto_scaler_0 @ 000001b9751aa1c0] w:64 h:64 fmt:bgra sar:0/1 -> w:64 h:64 fmt:bgr8 sar:0/1 flags:0x4 Output #0, gif, to 'C:\Users\Akira Baes\Desktop\Old Anims\_version36A\\onetwothree touch.gif': Metadata: encoder : Lavf58.42.100 Stream #0:0, 0, 1/100: Video: gif, 1 reference frame, bgr8, 64x64, 0/1, q=2-31, 200 kb/s, 5 fps, 100 tbn, 5 tbc Metadata: encoder : Lavc58.76.100 gif Clipping frame in rate conversion by 0.000008 [gif @ 000001b9751604c0] code=21 '!' [gif @ 000001b9751604c0] code=2c ',' [gif @ 000001b975152bc0] 63x61 image at pos (1;3) [area:64x64] [gif @ 000001b9751604c0] code=21 '!' [gif @ 000001b9751604c0] code=2c ',' [gif @ 000001b975152bc0] 63x62 image at pos (1;2) [area:64x64] [out_0_0 @ 000001b9751a8900] EOF on sink link out_0_0:default. No more output streams to write to, finishing. frame= 3 fps=0.0 q=-0.0 Lsize= 2kB time=00:00:01.81 bitrate= 10.8kbits/s speed= 101x video:2kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.827472% Input file #0 (C:\Users\Akira Baes\Desktop\Old Anims\_version36A\onetwothree.gif): Input stream #0:0 (video): 3 packets read (1794 bytes); 3 frames decoded; Total: 3 packets (1794 bytes) demuxed Output file #0 (C:\Users\Akira Baes\Desktop\Old Anims\_version36A\\onetwothree touch.gif): Output stream #0:0 (video): 3 frames encoded; 3 packets muxed (2417 bytes); Total: 3 packets (2417 bytes) muxed 3 frames successfully decoded, 0 decoding errors [AVIOContext @ 000001b975154d00] Statistics: 0 seeks, 1 writeouts [AVIOContext @ 000001b975155780] Statistics: 1795 bytes read, 0 seeks
ffmpeg -i "onetwothree.gif" "onetwothree touch.gif"
Output:
60ms, 120ms, 120ms
Last frame of gif systematically copies duration of penultimate frame (presumably because it's lost).
The root cause might be similar (something dumb like saving timestamps instead of duations), or maybe it's a separate issue.
comment:12 by , 4 years ago
Cc: | added |
---|
comment:13 by , 2 years ago
comment:14 by , 16 months ago
Component: | avfilter → avformat |
---|---|
Keywords: | gif added; fps removed |
Resolution: | → fixed |
Status: | open → closed |
Not a regression afaict.