Como redimensiono um GIF animado e mantenho a transparência?

0

Eu tentei redimensionar um GIF animado com transparência, mas ele transformou o plano de fundo em um branco sólido. Como faço para manter a transparência?

Eu li o link e tentei

>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

Eu também tentei -gifflags +transdiff , mas não ajudou, já que o post do blog na resposta diz que é o padrão de qualquer maneira. Eu também tentei sem stats_mode=diff .

Eu também tentei com uma paleta para cada quadro, mas isso só tornou o arquivo maior e não manteve a transparência.

>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
    
por Chloe 28.09.2018 / 23:13

1 resposta

0

Eu fiz o upgrade de 3.4.1 para 4.0.2 e funcionou. No entanto, obtive melhores resultados com

>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

Para evitar um artefato de linha branca ao redor da borda, adicionando palettegen=reserve_transparent=on:transparency_color=ffffff .

    
por 29.09.2018 / 05:44