[Risolto] Diminuire il peso di una GIF animata

Installazione, configurazione e utilizzo di applicativi multimediali, masterizzazione, acquisizione e codec audio/video, streaming e altro.
Avatar utente
il_savonese
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 734
Iscrizione: sabato 10 maggio 2014, 14:19
Desktop: Xubuntu
Distribuzione: Xubuntu 22.04.1 LTS

[Risolto] Diminuire il peso di una GIF animata

Messaggio da il_savonese »

Buonasera a tutti. Ero in questi giorni intento ad creare un'immagine GIF animata, estratta da uno spezzone di filmato (che avevo ottenuto utilizzando Avidemux); dopo aver estrapolatolo spezzone, ed averlo accorciato il più possibile (nel senso della durata) con lo stesso Avidemux, l'ho convertito in immagine GIF ed ulteriormente accorciato tramite il programma on line EZGIF. A questo punto però, avendo ottenuto uno spezzone della durata di nemmeno 3 secondi di 1.4 MB (accorciato in altezza e larghezza e portato a 1.2 MB), vorrei ora portarlo ad una dimensione di 0.5 MB, ma utilizzando sempre un programma on line, non riesco a ridimensionarlo ulteriormente. Come posso fare..?
Ultima modifica di trekfan1 il sabato 17 febbraio 2018, 14:47, modificato 6 volte in totale.
Motivazione: Non serve il tutto maiuscolo per il [Risolto], grazie
Avatar utente
OMBRA_Linux
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2696
Iscrizione: mercoledì 18 febbraio 2015, 14:24
Desktop: HP / Lenovo / Samsung
Distribuzione: Android / Linux / Windows10-11
Sesso: Maschile
Località: Napoli

Re: Accorciare durata GIF

Messaggio da OMBRA_Linux »

Aprila con Gimp poi la scali e la salvi.
Se per vivere devi strisciare, alzati e muori.
Avatar utente
il_savonese
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 734
Iscrizione: sabato 10 maggio 2014, 14:19
Desktop: Xubuntu
Distribuzione: Xubuntu 22.04.1 LTS

Re: Accorciare durata GIF

Messaggio da il_savonese »

Ho provato a ridurla in scala con Gimp, ma il file che vado a salvare ha la stessa dimensione di quello originario.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4433
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Accorciare durata GIF

Messaggio da UbuNuovo »

Il titolo non è corretto, tu vuoi alleggerire la gif, non accorciarla.
Per conto mio il metodo migliore (qualitativamente) è fare il tutto in più passaggi:
estrarre i frame dal video
eliminare i frame non necessari
ridimensionare e creare la gif con Gimp.
Se ridimensionandola non riesci ad alleggerirla, riparti da capo.
Estrai frame dal video, probabilmente saranno come minimo 24 fotogrammi per secondo.
Per le gif è un numero esagerato! Puoi avere buone animazioni con 12 fotogrammi per secondo.
Per dimezzare i fotogrammi puoi usare awk; mettiamo che i frame estratti siano in formato png nella directory 'png', :

Codice: Seleziona tutto

mkdir ./png/dispari
ls -1 ./png/*.png | awk 'NR%2==1'| while read f
do
   cp "$f" ./png/dispari/
done
Apri la serie di immagini in Gimp e crei la gif.
se le dimensioni sono ancora troppo grandi, riduci i frame a un terzo, basta sostituire

Codice: Seleziona tutto

awk 'NR%2==1'
con:

Codice: Seleziona tutto

awk 'NR%3==1'
e così via.
Salva l'Ucraina! 🇺🇦
Avatar utente
OMBRA_Linux
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2696
Iscrizione: mercoledì 18 febbraio 2015, 14:24
Desktop: HP / Lenovo / Samsung
Distribuzione: Android / Linux / Windows10-11
Sesso: Maschile
Località: Napoli

Re: Accorciare durata GIF

Messaggio da OMBRA_Linux »


Ora sono da Windows e qui non ho Gimp ma se non ricordo male quando salvi l'immagine ti da un opzione ( Livello di compressione ) basta ridurlo e dovrebbe pesare di meno.
Edit: Ricorda che se la salvi riducendola col livello di compressione puoi perdere un po di qualità dell'immagine quindi ti conviene non ridurla troppo.
Se per vivere devi strisciare, alzati e muori.
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4433
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Accorciare durata GIF

Messaggio da UbuNuovo »

Non si può scegliere il livello di compressione, ma con gimp-gap si può provare ad ottimizzare la gif.
Salva l'Ucraina! 🇺🇦
Avatar utente
OMBRA_Linux
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2696
Iscrizione: mercoledì 18 febbraio 2015, 14:24
Desktop: HP / Lenovo / Samsung
Distribuzione: Android / Linux / Windows10-11
Sesso: Maschile
Località: Napoli

Re: Accorciare durata GIF

Messaggio da OMBRA_Linux »

Ho appena fatto una prova con ( Gimp. )
Scalando una gif da ( 320 x 240 a 220 x 165 ) esportandola come è passata da 297 KB a 156 KB.
Se per vivere devi strisciare, alzati e muori.
ANXANX

Re: Accorciare durata GIF

Messaggio da ANXANX »

Puoi:
Salvare solo la differenza tra i fotogrammi
ridurre le dimensioni
ridurre i bit colore

poi esistono altri sistemi più complessi e che richiedono maggiore manualità e non sempre ne vale la pena
Avatar utente
il_savonese
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 734
Iscrizione: sabato 10 maggio 2014, 14:19
Desktop: Xubuntu
Distribuzione: Xubuntu 22.04.1 LTS

Re: Accorciare durata GIF

Messaggio da il_savonese »

OMBRA_Linux [url=https://forum.ubuntu-it.org/viewtopic.php?p=5042404#p5042404][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Ho appena fatto una prova con ( Gimp. )
Scalando una gif da ( 320 x 240 a 220 x 165 ) esportandola come è passata da 297 KB a 156 KB.
..ho provato, ma l'immagine diventa quasi incomprensibile. Mi pare che il suggerimento di UbuNuovo sia più coerente. Provo col suo, anche se più di difficile esecuzione.
Avatar utente
il_savonese
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 734
Iscrizione: sabato 10 maggio 2014, 14:19
Desktop: Xubuntu
Distribuzione: Xubuntu 22.04.1 LTS

Re: Accorciare durata GIF

Messaggio da il_savonese »

..: ho cercato di usare awk (esegui awk), ma non riesco ad aprirlo
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4433
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Accorciare durata GIF

Messaggio da UbuNuovo »

Pensavo che conoscessi gli script.
Il codice scritto in quella forma è più comprensibile ma non può essere eseguito direttamente nel terminale.
Puoi creare uno script, rendere il file eseguibile ed eseguirlo, oppure, se vuoi usarlo direttamente da terminale, conviene metterlo su una riga.

Hai già estratto i frame del filmato? Se non l'hai fatto guarda qua: http://www.ubaweb.it/miniguide/da_video_a_gif.php
In breve (mettiamo che il filmato abbia estensione '.avi', ma vanno bene anche altre estensioni):
Prima crei la directory che accoglierà tutti i frame estratti dal filmato, puoi farlo da file manager
oppure apri un terminale a livello del filmato, ed esegui:

Codice: Seleziona tutto

mkdir img
In base a cosa hai installato (avconv o ffmpeg) puoi eseguire uno di questi due codici:

Codice: Seleziona tutto

ffmpeg -i TUO_VIDEO.avi img/frame_%04d.png 
o

Codice: Seleziona tutto

avconv -i TUO_VIDEO.avi img/frame_%04d.png
i frame saranno numerati e salvati nella directory 'img'.

Per dimezzare il numero di fotogrammi:
crei la directory che accoglierà i frame dispari, dal file manager o eseguendo:

Codice: Seleziona tutto

mkdir ./img/dispari
Poi copia e incolla ed esegui nel terminale:

Codice: Seleziona tutto

ls -1 ./img/*.png | awk 'NR%2==1'| while read f;do cp "$f" ./img/dispari/;done
A questo punto apri in Gimp (File->Apri come livelli...) tutte le immagini presenti in '/img/dispari/' ed esporti come gif animata.
Se hai errori posta tutto quello che trovi scritto nel terminale.
Salva l'Ucraina! 🇺🇦
Avatar utente
OMBRA_Linux
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2696
Iscrizione: mercoledì 18 febbraio 2015, 14:24
Desktop: HP / Lenovo / Samsung
Distribuzione: Android / Linux / Windows10-11
Sesso: Maschile
Località: Napoli

Re: Accorciare durata GIF

Messaggio da OMBRA_Linux »

il_savonese [url=https://forum.ubuntu-it.org/viewtopic.php?p=5042526#p5042526][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:
OMBRA_Linux [url=https://forum.ubuntu-it.org/viewtopic.php?p=5042404#p5042404][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Ho appena fatto una prova con ( Gimp. )
Scalando una gif da ( 320 x 240 a 220 x 165 ) esportandola come è passata da 297 KB a 156 KB.
..ho provato, ma l'immagine diventa quasi incomprensibile. Mi pare che il suggerimento di UbuNuovo sia più coerente. Provo col suo, anche se più di difficile esecuzione.


La mia Gif è perfetta, non ha perso niente.
Fin quando la rimpicciolisci non perdi la qualità mentre se vuoi ingrandirla allora in quel caso comincia a sgranare un po.
Se per vivere devi strisciare, alzati e muori.
Avatar utente
il_savonese
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 734
Iscrizione: sabato 10 maggio 2014, 14:19
Desktop: Xubuntu
Distribuzione: Xubuntu 22.04.1 LTS

Re: Accorciare durata GIF

Messaggio da il_savonese »

UbuNuovo [url=https://forum.ubuntu-it.org/viewtopic.php?p=5042531#p5042531][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Pensavo che conoscessi gli script.
Il codice scritto in quella forma è più comprensibile ma non può essere eseguito direttamente nel terminale.
Puoi creare uno script, rendere il file eseguibile ed eseguirlo, oppure, se vuoi usarlo direttamente da terminale, conviene metterlo su una riga.

Hai già estratto i frame del filmato? Se non l'hai fatto guarda qua: http://www.ubaweb.it/miniguide/da_video_a_gif.php
In breve (mettiamo che il filmato abbia estensione '.avi', ma vanno bene anche altre estensioni):
Prima crei la directory che accoglierà tutti i frame estratti dal filmato, puoi farlo da file manager
oppure apri un terminale a livello del filmato, ed esegui:

Codice: Seleziona tutto

mkdir img
In base a cosa hai installato (avconv o ffmpeg) puoi eseguire uno di questi due codici:

Codice: Seleziona tutto

ffmpeg -i TUO_VIDEO.avi img/frame_%04d.png 
o

Codice: Seleziona tutto

avconv -i TUO_VIDEO.avi img/frame_%04d.png
i frame saranno numerati e salvati nella directory 'img'.

Per dimezzare il numero di fotogrammi:
crei la directory che accoglierà i frame dispari, dal file manager o eseguendo:

Codice: Seleziona tutto

mkdir ./img/dispari
Poi copia e incolla ed esegui nel terminale:

Codice: Seleziona tutto

ls -1 ./img/*.png | awk 'NR%2==1'| while read f;do cp "$f" ./img/dispari/;done
A questo punto apri in Gimp (File->Apri come livelli...) tutte le immagini presenti in '/img/dispari/' ed esporti come gif animata.
Se hai errori posta tutto quello che trovi scritto nel terminale.
...ho eseguito tutto ciò che mi hai descritto. Creata la directory "img", dentro tramite codice ffmpeg ho riportato i frame numerati (in tutto 195), dopodiché, creata la cartella "dispari", vi ho riportato i relativi frame (che dovrebbero essere 97). Adesso però, ho iniziato con Gimp ad esportare tali frame dispari in formato gif; soltanto che per fare tale operazione uno per uno, la cosa mi sembra parecchio lunga. Non vi è qualche opzione in Gimp per esportare tali frame in formato .png in formato .gif tutti assieme....?
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4433
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Accorciare durata GIF

Messaggio da UbuNuovo »

Non devi salvare un livello per volta ma esportare il file come gif animata. :)
Ti scrivo il procedimento passo-passo.

(Non ricordo se il filtro gimp-gap sia installato di default, se non lo fosse:

Codice: Seleziona tutto

sudo apt-get install gimp-gap
)
Apri Gimp
Dal menù, clic su "File"->"Apri come livelli..."
Si apre la finestra "Apri immagine"
selezioni la directory contenente i frame da usare ("dispari"), sulla destra dovresti vedere l'elenco dei file png
selezioni tutti i file (Ctrl+a) e clicchi sul pulsante in basso "Apri".
Ogni file occuperà un livello.

Per provare l'animazione
vai su "Filtri"->"Animazione"->"Esecuzione" e, nella parte alta della finestra che si apre, clicchi sulla freccia verde.

Per salvare come gif animata
Dal menù: "File"->"Esporta come..."
in alto, a destra di "Nome", compare il nome del file con estensione ".png", cambia almeno l'estensione in ".gif" e clicca sul pulsante "Esporta"
Nella finestra che si apre ("Esporta immagine come GIF"), seleziona il checkbox "Come animazione"
diventano attive le opzioni sottostanti, importante è la voce "Ritardo tra quadri ove non specificato", in millisecondi, probabilmente dovrai provare a salvare più volte con valori adatti per trovare la giusta velocità di riproduzione.

Se la gif salvata è ancora troppo pesante, aprila con Gimp e prova a esportarne una versione ottimizzata, mediante "Filtri"->"Animazione"->"Ottimizza per GIF" poi, dalla nuova finestra di Gimp che si apre, esporta come gif animata.

Se fosse ancora troppo pesante non ti rimane che ridurne le dimensioni in pixel; riapri la gif con Gimp, scalala ("Immagine"->"Scala immagine...") ed esportala nuovamente.

Ora vado vedere se stanotte mi ci rientra di dormire.
Ciaux
Salva l'Ucraina! 🇺🇦
Avatar utente
il_savonese
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 734
Iscrizione: sabato 10 maggio 2014, 14:19
Desktop: Xubuntu
Distribuzione: Xubuntu 22.04.1 LTS

Re: Accorciare durata GIF

Messaggio da il_savonese »

Per UbuNuovo: ho seguito passo-passo le tue indicazioni (fino alla fine, ottimizzando prima, ed alleggerendo dopo), e sono riuscito ad ottenere un file .gif di 2.5 MB. La tua spiegazione mi è stata di grande aiuto, la terrò come esempio per la creazione di altri files .gif. Debbo però rilevare il fatto che con un'applicazione on-line (mi pare ezgif.com), sono riuscito ad ottenere un'immagine animata gif di 1.3 MB (meno nitida, ma più grande). Immagine, alla quale ho poi applicato le tue indicazioni circa l'ottimizzazione e la riduzione in scala, e sono riuscito ad ottenere un'immagine gif animata di 500 KB scarsi, piccola, ma comprensibilissima.
Credo che l'immagine gif animata creata con l'applicazione ezgif "pesi" di meno, forse per il fatto che all'immagine creata col tuo procedimento dovevo agire sulla velocità e/o sulla durata della gif stessa (salvata a "ciclo perenne", ma a parità di durata di quella prodotta con ezgif, è molto più veloce); come posso regolare in fase di esportazione del file gif la velocità di esecuzione ? e il numero dei cicli che regolano la durata dell'immagine gif..?
Avatar utente
UbuNuovo
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 4433
Iscrizione: sabato 12 dicembre 2009, 20:58
Desktop: Mate
Distribuzione: Ubuntu Mate 22.04.1 LTS
Sesso: Maschile
Contatti:

Re: Accorciare durata GIF

Messaggio da UbuNuovo »

Ho provato un sacco di programmi e fatto vari script, ma il metodo che offre risultati qualitativamente migliori è quello con Gimp che ti ho scritto sopra.
Il servizio web che hai usato, molto probabilmente riduce il numero di colori.
La riduzione dei colori può andar benissimo per filmati di disegni animati con pochi colori piatti ma è difficile che vada bene per video di scene reali.
In ogni modo puoi provare a farlo.
Con Gimp
(una volta aperte le png come livelli, clic su Immagine->Modalità->Indicizzata si apre una finestra da cui puoi scegliere il numero di colori e il tipo di dithering)
oppure, ti consiglio di provare rapidamente sulla gif animata già realizzata, con gifslice, un programmino presente nei repo di Ubuntu.
Per installarlo:

Codice: Seleziona tutto

sudo apt-get install gifsicle
Mettiamo che la tua gif animata originale si chiami "originale.gif"
apri il terminale nella directory della gif ed esegui:

Codice: Seleziona tutto

for i in 16 32 64 128 256;do gifsicle -i originale.gif -O3 --colors "$i" -o anim_${i}colori.gif; done
verranno create le versioni della gif con 16, 32, 64, 128 e 256 colori così potrai apprezzarne le differenze di qualità e "peso".

P.S.: Dovresti cambiare il titolo in qualcosa tipo: "diminuire il peso di una gif animata"
Salva l'Ucraina! 🇺🇦
Avatar utente
OMBRA_Linux
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2696
Iscrizione: mercoledì 18 febbraio 2015, 14:24
Desktop: HP / Lenovo / Samsung
Distribuzione: Android / Linux / Windows10-11
Sesso: Maschile
Località: Napoli

Re: Accorciare durata GIF

Messaggio da OMBRA_Linux »

Alla fine l'hai scalata con Gimp come ti dicevo io.
Per la velocità, sempre con ''Gimp'' apri la gif poi vai ( Filtri/Animazione/Esecuzione/ ) vedrai aprirsi una piccola finestra dove puoi riprodurre un anteprima dell'animazione ed in basso vedrai delle opzioni ( 1x /2x/3x ) ed altre da ( 10 fps ) in su. la imposti come ti è più comodo ed infine la salvi.
Se per vivere devi strisciare, alzati e muori.
Avatar utente
il_savonese
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 734
Iscrizione: sabato 10 maggio 2014, 14:19
Desktop: Xubuntu
Distribuzione: Xubuntu 22.04.1 LTS

Re: Accorciare durata GIF

Messaggio da il_savonese »

UbuNuovo [url=https://forum.ubuntu-it.org/viewtopic.php?p=5042943#p5042943][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:.........verranno create le versioni della gif con 16, 32, 64, 128 e 256 colori così potrai apprezzarne le differenze di qualità e "peso".
P.S.: Dovresti cambiare il titolo in qualcosa tipo: "diminuire il peso di una gif animata"
Ho seguito anche qua le indicazioni: con una versione a 32 colori la gif è già accettabile, a 16 colori è abbastanza sbiadita (anche se a 32 colori il "peso" in MB della gif è + o - di 2/3 quella originaria a 490 MB, mentre a 16 colori è praticamente la metà: 244 MB). Grazie delle tue informazioni. Mi saranno molto utili.
PS: posso cambiare il titolo nel corso di una discussione...?
Avatar utente
giulux
Amministratore
Amministratore
Messaggi: 25422
Iscrizione: domenica 10 gennaio 2010, 12:17
Desktop: ubuntu 18.04
Distribuzione: Ubuntu 18.04.3 LTS x86_64
Sesso: Maschile
Località: Roma

Re: Accorciare durata GIF

Messaggio da giulux »

posso cambiare il titolo nel corso di una discussione...?
Si.
Ciao.
"Non è una segno di buona salute l'essere ben adattato ad una società malata". (Jiddu Krishnarmurti)
Avatar utente
il_savonese
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 734
Iscrizione: sabato 10 maggio 2014, 14:19
Desktop: Xubuntu
Distribuzione: Xubuntu 22.04.1 LTS

Re: Accorciare durata GIF

Messaggio da il_savonese »

OMBRA_Linux [url=https://forum.ubuntu-it.org/viewtopic.php?p=5042985#p5042985][img]https://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Alla fine l'hai scalata con Gimp come ti dicevo io.
Per la velocità, sempre con ''Gimp'' apri la gif poi vai ( Filtri/Animazione/Esecuzione/ ) vedrai aprirsi una piccola finestra dove puoi riprodurre un anteprima dell'animazione ed in basso vedrai delle opzioni ( 1x /2x/3x ) ed altre da ( 10 fps ) in su. la imposti come ti è più comodo ed infine la salvi.
Sì quello l'avevo già visto. Però come la salvo, se nella finestra dell'animazione non vi sono opzioni in tal senso ? dopo aver ridotto la velocità dei fotogrammi ho provato a salvarla nella finestra principale di Gimp, ma la Gif salvata ha sempre la stessa velocità.
Ultima modifica di il_savonese il venerdì 16 febbraio 2018, 18:39, modificato 7 volte in totale.
Scrivi risposta

Ritorna a “Multimediale”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 9 ospiti