Converter vídeo OGV para animação GIF?

37

Eu criei vídeos OGV com o programa de screencasting gtk-recordmydesktop , tentando resolver esse problema aqui com bruteforce sobre X. Eu posso ver os vídeos com o VLC.

Agora, a tarefa é encontrar algumas maneiras de converter vídeos OGV em animações GIF para que eu possa exibi-los no SE. Como posso fazer isso?

    
por Matthias Braun 29.03.2012 / 03:15

4 respostas

37

Dê uma olhada nisso: link

..... Depois que o Desktop Recorder salvou a gravação em um vídeo OGV , o MPlayer será usado para capturar Capturas de tela> JPEG , salvando-as no diretório 'output' .

Em um terminal:

mplayer -ao null <video file name> -vo jpeg:outdir=output

Use ImageMagick para converter as capturas de tela em um gif animado.

convert output/* output.gif

você pode otimizar as capturas de tela desta maneira:

convert output.gif -fuzz 10% -layers Optimize optimised.gif
    
por 31.07.2012 / 16:40
19

Roteiro simples com boa qualidade

Script:

inputFile=$1

FPS=15
WIDTH=320

#Generate palette for better quality
ffmpeg -i $inputFile -vf fps=$FPS,scale=$WIDTH:-1:flags=lanczos,palettegen tmp_palette.png

#Generate gif using palette
ffmpeg -i $inputFile -i tmp_palette.png -loop 0 -filter_complex "fps=$FPS,scale=$WIDTH:-1:flags=lanczos[x];[x][1:v]paletteuse" output.gif

rm tmp_palette.png

Código de: link

Sem paleta: (231 KB)

Comapaleta:(573KB)

    
por 27.07.2016 / 16:41
3

Este one-liner está funcionando para mim:

ffmpeg -i video.ogv video.gif
    
por 08.12.2017 / 15:33
2
ifile=~/test.ogv

echo '# Determine input WxH and FPS' 
eval "$(ffmpeg -i "$ifile" 2>&1 |sed -nr 's/.*Stream.*Video.* ([0-9]+x[0-9]+),.*[^[0-9.]([0-9.]+).*tbr,.*/WxH=;FPS=/p')"

echo '# Output multiple images from the input video'
ffmpeg -i "$ifile" -r $FPS -s $WxH -f image2 -vframes 100 -y ~/test-%03d.jpg 2>/dev/null

echo '# use ImageMagic "convert" to generate the animated .gif' 
convert -delay 20 ~/test-[0-9][0-9][0-9].jpg  ~/test.gif 

echo '# remove temp image files'    
rm -f  ~/test-[0-9][0-9][0-9].jpg

echo 'Done!'
    
por 02.04.2012 / 12:04