TAGS CLOUD
Incrementa dimensioniDecrementa dimensioni
Uno script shell per convertire rapidamente immagini e video
Poche righe di codice e qualche comando presente nella maggior parte delle distribuzioni per “trasformare” in un attimo intere collezioni di foto e filmati
(pagina 4 di 4)
ferenza. Alla riga 4 creiamo il nome del file convertito; non conosciamo a priori l’estensione del file di ingresso, che potrebbe anche non esserci: pertanto con un comando sed rimuoviamo un’eventuale estensione (“\..*$” è un’espressione regolare che significa: tutto ciò che segue il punto fermo compreso, fino a fine riga), e poi aggiungiamo una nuova estensione. Questo sistema funziona anche se il comando sed non trova nulla da sostituire, ovvero se il nome del file di ingresso non ha un’estensione. Nello script di conversione video supponiamo che tutti i file terminino con l’estensione .wmv, per cui è sufficiente una normale sostituzione con il comando sed.
[10-11] Definiamo una stringa che comunica all’utente come utilizzare il programma: il primo parametro è il formato del file di output, seguito da uno o più file/directory; nel caso gli oggetti passati fossero delle directory, lo script convertirà tutti i file che troverà al loro interno per un solo livello di profondità. È importante notare che nello script di conversione video la riga di comando manca del parametro relativo al formato, in quanto lo script converte i video in formato AVI senza possibilità di scelta. Alla riga 11 se i parametri passati dall’utente sono in numero minore di 2 la stringa di utilizzo viene stampata e il programma viene chiuso.
[12-13] Il primo parametro passato dall’utente è il formato di destinazione: per maggiore comodità tale parametro viene posto nella variabile ${formato} e rimosso dalla lista dei parametri con il comando shift. In questo modo nel resto dello script è possibile effettuare un ciclo su tutti i parametri passati, con la certezza che non si stanno processando come file o directory dei parametri dello script stesso.
[14-29] Questo ciclo rappresenta il cuore dello script, e non fa altro che analizzare uno ad uno gli oggetti passati dall’utente sulla riga di comando, passando poi a convertirli nel formato desiderato tramite la funzione convert_image(). Anche qui è importante notare che l’esecuzione viene differenziata per i file e per le directory: nel primo caso (righe 16-19), si procede alla semplice conversione del file, nel secondo (righe 20-26), si crea un nuovo ciclo sui file contenuti nella directory. L’elenco dei file viene ottenuto con il comando find, i cui parametri sono maxdepth, impostato a 1, che impedisce l’analisi delle sottocartelle, e type, impostato a “f”, che trova solamente i file regolari (non i link, ad esempio). Alla riga 27 viene stampato un breve messaggio di errore nel caso venisse passato allo script un oggetto di natura diversa da una immagine o da un file video WMV.

Conversione di un file video da WMV ad AVI


Pagina 4/4
Lascia un commento
Tag: script shell, conversione immagini, video
Condividi