Su Linux non ci sono, per quanto ne so, software dedicati alla sola creazione di Gif animate partendo da un video…

Esistono però strumenti che ci permettono di ottenere comunque il risultato!

In particolare mplayer fa al caso nostro! (quindi installatelo se non lo avete)

Per questa guida vi mostrerò come trasformare questo video in una gif animata, ad esempio per crearvi un vostro avatar!

Il video di cui creerò la gif (mitico One Piece¹)

e poi vi darò qualche suggerimento per sperimentare voi stessi e ottenere qualche risultato più interessante di quello che ho ottenuto io in pochi secondi…

La prima cosa da fare è procurarsi il video (o i video) che vogliamo convertire, nel caso di youtube ci sono molti modi per procurarselo… io in genere utilizzo uno script che viene aggiornato spesso…

chmod +x youtube-dl (se necessario)

./youtube-dl http://www.youtube.com/watch?v=wwfc8LrEzpw

dato questo comando da un terminale mi troverò il video nella directory da dove l’ho lanciato con il nome: wwfc8LrEzpw.flv

NOTA: è necessario aver installato python nel proprio sistema perché lo script funzioni, potete cmq (come già detto) usare il metodo che preferite per ottenere un video

flv è l’estensione dei video per flash player (quello usato da youtube).

mplayer gestisce quasi tutti i formati video esistenti comunque!! Per la verità ha qualche problemino di sincronizzazione tra audio e video con alcuni .flv ² ma non è cosa che ci interessa perché le GIF non hanno alcun audio!

per ottenere la gif a questo punto ci basta il comando:

mplayer wwfc8LrEzpw.flv -vo gif89a:fps=15:output=test.gif -nosound

che convertirà il video in una GIF prendendo immagini a 15 fps (frame per second) e chiamando l’immagine risultato test.gif!

ATTENZIONE: per il video che ho preso io l’immagine risultate era di ben 12 MegaByte!!! Partendo da un file .flv di 1 MegaByte!!!

ATTENZIONE2: ho notato che lasciando la finestra del terminale dove ho lanciato il comando questo non continuava in background ma andava in “pausa” e riprendeva solo ri-cliccando sul terminale (cioè quando la finestra del terminale perde il focus a volte mplayer smette di convertire il filmato)… strano ma tenetelo presente (qualcuno può confermarmi questo bug? e se vi capita potete dirmi che distro usate, che terminale e se usate gnome, kde o altro?)

vediamo cosa significano le opzioni:

  • -vo indica il “Video Output” da utilizzare… in genere qui si sceglie se si vuole usare un codec software (es. x11) o la scheda grafica (es. xv, gl) o in genere si seleziona il codec che gestirà il video in uscita. Uno dei codec disponibili con mplayer è gif89a il cui compito è quello di produrre una gif animata del video!
  • -nosound serve a rendere più veloce la codifica che altrimenti “aspetterebbe” l’audio

il codec gif89a dev’essere usato con 2 opzioni separate da “due punti” (:)

  • fps=15 — è la quantità di immagini al secondo della vostra gif! Più fps mettete e più la gif sarà fluida rispetto al video ma occuperò molto più spazio!!!
    Dovete sperimentare con questo parametro per ottenere un buon compromesso di fluidità e dimensione della gif
  • output=nomefile.gif — semplicemente è il nome del file con cui verrà salvata la gif!
    Quest’opzione va messa DOPO “fps”

Alla fine potete aprire la GIF animata con Gimp per fargli delle modifiche (aggiungere fumetti, cambiare le tempistiche, rimuovere fotogrammi ecc…)

Qualche consiglio

bene… potrei anche finire la guida qui… però un immagine di 12 Mega per una gif è decisamente tanto!! Tenete presente che più il video è grande (sia come dimensioni che come durata) e più la gif verrà pesante!!! Quindi cercate di limitarvi a gif di pochi secondi e possibilmente piccole!

con mplayer potete anche ridimensionare l’immagine e prenderne uno spezzone specifico! Ad esempio nel video sopra ho impostato 3 fps, ho dimezzato il video e ho preso il video da 500 ms a 12 secondi.

mplayer wwfc8LrEzpw.flv -ss 0.500 -endpos 12 -vf scale=160:120 -vo gif89a:fps=3:output=luffy.gif -nosound

le opzioni -ss e -endpos dicono di partire da 500 ms e finire a 12 secondi, mentre -vf scale=160:120 scala il video rendendolo di dimensioni 160×120, esattamente alla metà delle dimensioni originali che erano 320×240 (dimensione di tutti i video di youtube)

ecco il risultato (368 Kb):

fly-Luffy-Smoker-Ace

Il mitico Rufy che manda Smoker e suo fratello Ace attraverso parecchi muri ad Alabasta!

Per avere un idea di come sarà il risultato ancor prima di creare la gif potete usare il comando rimuovendo l’opzione -vo gif89a

mplayer wwfc8LrEzpw.flv -ss 0.500 -endpos 12 -vf scale=160:120 -nosound

a parte gli fps avrete un anteprima del risultato finale!

Potete usare tutti i filtri (-vf) e le opzioni di mplayer che volete (vi rimando all’enorme manuale di mplayer, man mplayer, per conoscerle tutte!!!).. i filtri vanno separati da una virgola e l’ordine conta perché verranno applicati nell’ordine con cui li scrivete!

Segnalo il filtro “crop” che serve a prendere solo un riquadro specificato dell’immagine e vi lascio guardare/provare gli altri nel manuale

Quindi le possibilità sono molte!! 😀

Alternative

esistono diverse alternative al procedimento che vi ho descritto sopra

Editing video

potete usare un software di editing video come cinelerra o kdenlive per creare il vostro video tagliando, applicando effetti, fumetti e quant’altro!

Quindi con mplayer creare la gif del vostro video!

Estrazione dei fotogrammi ed elaborazione su Gimp

è il metodo più lungo ma che vi dà più possibilità ovviamente!

per estrarre i fotogrammi da un video possiamo usare sempre mplayer… Esiste un altro codec di uscita video che fa al caso nostro!!!

mplayer vostrovideo.avi -vo png -nosound

mplayer vostrovideo.avi -vo jpg -nosound

Attenzione: questo comando vi riempie la directory di file .png o .jpg! Vi consiglio di darlo in una directory vuota che avete creato appositamente!

Una volta estratti i fotogrammi potete importarli in Gimp (dovete aver installato Gimp con il pacchetto apposito per le animazioni..) e farci quel che volete!

Trovo che gimp non sia comodo per creare gif. Non sono comunque un esperto in questo senso! Lascio a voi la sperimentazione!

ps: se date il comando mplayer -vo help otterrete la lista di tutti i codec avviabili e nel manuale la loro descrizione

pps: ringrazio paulTT per lo spunto a questa guida (non avevo mai notato il codec gif89a prima che me lo facesse notare)

[¹] One Piece è un manga giapponese (in italiano storpiato in “all’arrembaggio” e barbaramente censurato fino a renderlo brutto e infantile): l’episodio da cui è tratto il video è uno dei più divertenti di tutto il manga, e corrisponde al numero 94 dell’Animè, il secondo episodio dall’inizio della serie di Alabasta.

[²] in realtà non è mplayer ad avere problemi a sincronizzare audio e video dei file flv, sono i file flv che hanno spesso problemi interni, in particolare quelli di youtube! Alcuni player riescono ad ovviare a questi problemi (non ho ancora capito come), ad esempio VLC (VideoLanClient) e ovviamente il player in flash di youtube…