¿Convertir video OGV a animación GIF?

37

Creé videos OGV con el programa gtk-recordmydesktop screencasting, tratando de abordar este problema aquí con bruteforce sobre X. Puedo ver los videos con VLC.

Ahora, la tarea es encontrar algunas formas de convertir videos OGV en animaciones GIF para poder mostrarlos en SE. ¿Cómo puedo hacer eso?

    
pregunta Matthias Braun 29.03.2012 - 01:15

4 respuestas

37

mire esto: enlace

..... Después de que Desktop Recorder haya guardado la grabación en un OGV , MPlayer se utilizará para capturar JPEG capturas de pantalla, guardándolos en el directorio 'output' .

En una terminal:

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

Usa ImageMagick para convertir las capturas de pantalla en un gif animado.

convert output/* output.gif

puedes optimizar las capturas de pantalla de esta manera:

convert output.gif -fuzz 10% -layers Optimize optimised.gif
    
respondido por el maniat1k 31.07.2012 - 14:40
19

Sencillo script con buena calidad

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: enlace

Sin paleta: (231 KB)

Conpaleta:(573KB)

    
respondido por el Dawid Drozd 27.07.2016 - 14:41
3

Este one-liner está funcionando para mí:

ffmpeg -i video.ogv video.gif
    
respondido por el luator 08.12.2017 - 14: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!'
    
respondido por el Peter.O 02.04.2012 - 10:04

Lea otras preguntas en las etiquetas