通过 FFMPEG 调整透明 GIF 大小时出现带状/尾随

通过 FFMPEG 调整透明 GIF 大小时出现带状/尾随

我正在尝试使用 ffmpeg 调整透明 gif 的大小。链接在这里

这是我用来调整 GIF 大小的命令

ffmpeg -i default.gif -filter_complex "[0:v] scale=320:-1:flags=lanczos,split [a][b]; [a] palettegen=reserve_transparent=on:transparency_color=ffffff [p]; [b][p] paletteuse" resize.gif

问题出在输出上。我不确定如何最好地描述它,但可以说输出 GIF 具有巨大的“带状/拖尾”效果(不是所需的)。

文件的示例输出在这里这里输出

我不知道我做错了什么以及如何修复这种带状/拖尾效果。

我在 macOS Mojave 上使用 FFMPEG,ffmpeg 版本是 4.1.1。以下是命令的输出

ffmpeg version 4.1.1 Copyright (c) 2000-2019 the FFmpeg developers
  built with Apple LLVM version 10.0.0 (clang-1000.11.45.5)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/openjdk-11.0.2.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex --enable-videotoolbox --disable-libjack --disable-indev=jack --enable-libaom --enable-libsoxr
  libavutil      56. 22.100 / 56. 22.100
  libavcodec     58. 35.100 / 58. 35.100
  libavformat    58. 20.100 / 58. 20.100
  libavdevice    58.  5.100 / 58.  5.100
  libavfilter     7. 40.101 /  7. 40.101
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  3.100 /  5.  3.100
  libswresample   3.  3.100 /  3.  3.100
  libpostproc    55.  3.100 / 55.  3.100
Input #0, gif, from 'ear_s_01.gif':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: gif, bgra, 640x480, 12.50 fps, 12.50 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 'resize.gif':
  Metadata:
    encoder         : Lavf58.20.100
    Stream #0:0: Video: gif, pal8, 320x240, q=2-31, 200 kb/s, 12.50 fps, 100 tbn, 12.50 tbc
    Metadata:
      encoder         : Lavc58.35.100 gif
[Parsed_palettegen_2 @ 0x7f7f19001180] 255(+1) colors generated out of 91324 colors; ratio=0.002792
[Parsed_palettegen_2 @ 0x7f7f19001180] Dupped color: FF100C0A
frame=   37 fps=0.0 q=-0.0 Lsize=     453kB time=00:00:02.89 bitrate=1283.8kbits/s speed=7.33x    
video:452kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.237091%

答案1

有一个漏洞在 GIF 编码器中,具有透明度。已于 2018 年 12 月 13 日修复。从获取较新的版本https://ffmpeg.zeranoe.com/builds/

相关内容