Reduza o tamanho de GIF gerado usando o FFMPEG

5

Estou desenvolvendo um aplicativo para Android que converte mp4 arquivos em gifs usando ffmpeg . O problema é que gifs gerados são enormes em tamanho. Outro problema é que não posso usar nada além de ffmpeg (por exemplo, imagemagick para convert , ou mesmo palletes por enquanto) para reduzir o tamanho gerado de gifs.

este é o comando que estou usando: ffmpeg -y -i file.mp4 -pix_fmt rgb24 -r 10 -s 320x480 file.gif

Então, existe alguma outra maneira de otimizar a conversão?

    
por arsena 07.03.2016 / 08:13

2 respostas

3

A maneira padrão de usar o ffmpeg para GIFs é

Gere uma paleta do vídeo

ffmpeg -y -i file.mp4 -vf palettegen palette.png

Então,

ffmpeg -y -i file.mp4 -i palette.png -filter_complex paletteuse -r 10 -s 320x480 file.gif

Mais opções documentadas aqui .

    
por 07.03.2016 / 19:15
1
vid=       
start_time=00:00:01
duration=5       
height=ih/2      # input height halved , can replace with pixils . 
width=-2         # keeps aspect ratio . can replace with pixils . 
fps=25           # frames per a second .

filters="fps=$fps,scale=$width:$height:flags=lanczos"

ffmpeg -ss $start_time                             \
       -t  $duration                               \
       -i  "$vid"                                  \
       -vf "$filters,palettegen"                   \
       -y  palette.png                             &&
ffmpeg -ss $start_time                             \
       -t  $duration                               \
       -i  "$vid"                                  \
       -i  palette.png                                \
       -lavfi "$filters [x]; [x][1:v] paletteuse"  \
       -y  "$vid".gif                              &&
rm palette.png 

link para documentação

mais informações

    
por 15.08.2018 / 10:38