Chl*_*loe 5 gif ffmpeg animated-gif transparency image-transparency
我试图用透明度调整动画 GIF 的大小,但它把背景变成了纯白色。我如何保持透明度?
我阅读了https://superuser.com/a/556031/130929并尝试过
>set FILTERS=scale=320:-1:flags=lanczos
>ffmpeg -hide_banner -i logo.gif -vf "%FILTERS%,palettegen=stats_mode=diff" -y palette.png
>ffmpeg -hide_banner -i logo.gif -i palette.png -lavfi "%FILTERS% [x]; [x][1:v] paletteuse" logo-320.gif
Run Code Online (Sandbox Code Playgroud)
我也尝试过,-gifflags +transdiff
但它没有帮助,因为答案中的博客文章说它是默认设置。我也试过没有stats_mode=diff
.
我还尝试为每个帧使用一个调色板,但这只会使文件变大并且没有保持透明度。
>ffmpeg -hide_banner -i logo.gif -filter_complex "[0:v] scale=320:-1:flags=lanczos,split [a][b]; [a] palettegen=stats_mode=single [p]; [b][p] paletteuse=new=1" logo-320.gif
Run Code Online (Sandbox Code Playgroud)
我从 3.4.1 升级到 4.0.2 并且成功了。但是,我得到了更好的结果
>ffmpeg -hide_banner -v warning -i logo.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" logo-320.gif
Run Code Online (Sandbox Code Playgroud)
通过添加palettegen=reserve_transparent=on:transparency_color=ffffff
.
归档时间: |
|
查看次数: |
8141 次 |
最近记录: |