[FFmpeg-trac] #8633(undetermined:new): First frame of scaled GIF partially persists on subsequent frames' transparent area

FFmpeg trac at avcodec.org
Sat Apr 25 12:39:43 EEST 2020


#8633: First frame of scaled GIF partially persists on subsequent frames'
transparent area
-------------------------------------+-------------------------------------
             Reporter:  SeinopSys    |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:  git-
  undetermined                       |  master
             Keywords:  gif scale    |               Blocked By:
  trailing ghosting transparency     |
  alpha                              |
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:
 Provided a GIF with pixels that are transparent in some frames but not
 others, scaling said GIF in the current git-master build of ffmpeg causes
 pixels of the first frame to stick around until the end of the loop.

 How to reproduce:
 Run the below command on the attached GIF, which should result in a
 similarly sized version of the same motion. Note how the first frame's
 content remains (at least partially) visible on all subsequent frames. The
 same effect can be observed at larger or smaller w and h values.
 {{{
 % ffmpeg -y -i dot.gif -lavfi "[0:v] scale=w=100:h=100:flags=lanczos,split
 [a][b]; [a] palettegen [p]; [b][p] paletteuse" scaled.gif
 ffmpeg version N-52056-ge5d25d1147-static
 https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2020 the FFmpeg
 developers
   built with gcc 8 (Debian 8.3.0-6)
   configuration: --enable-gpl --enable-version3 --enable-static --disable-
 debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio
 --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp
 --enable-libgme --enable-gray --enable-libaom --enable-libfribidi
 --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame
 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
 --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt
 --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab
 --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264
 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid
 --enable-libzvbi --enable-libzimg
   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
 Input #0, gif, from 'dot.gif':
   Duration: 00:00:00.90, start: 0.000000, bitrate: 5 kb/s
     Stream #0:0: Video: gif, bgra, 50x50, 10 fps, 10 tbr, 100 tbn, 100 tbc
 Stream mapping:
   Stream #0:0 (gif) -> scale
   paletteuse -> Stream #0:0 (gif)
 Press [q] to stop, [?] for help
 Output #0, gif, to 'scaled.gif':
   Metadata:
     encoder         : Lavf58.42.100
     Stream #0:0: Video: gif, pal8, 50x50, q=2-31, 200 kb/s, 10 fps, 100
 tbn, 10 tbc
     Metadata:
       encoder         : Lavc58.76.100 gif
 [Parsed_palettegen_2 @ 0x704da00] 2(+1) colors generated out of 2 colors;
 ratio=1.000000
 frame=    9 fps=0.0 q=-0.0 Lsize=       2kB time=00:00:00.81 bitrate=
 24.7kbits/s speed= 272x
 video:2kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: 0.804829%
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/8633>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list