Utente:Spoon/Draft: differenze tra le versioni

m
nessun oggetto della modifica
(Prima bozza ffmpeg da ezine)
mNessun oggetto della modifica
Riga 9: Riga 9:
== Introduzione ==
== Introduzione ==


FFmpeg è un software a riga di comando che permette eseguire diverse operazioni su files audio e video. Queste operazioni possono essere di conversione (da/verso altri formati di files), di elaborazione (cambio di bitrate, ridimensionamento di visualizzazione), oppure di estrazione (estrapolazione di dati da diverse sorgenti, quali possono essere files, sorgenti analogiche o digitali, ecc).
FFmpeg è un software a riga di comando che permette eseguire diverse operazioni su file audio e video. Queste operazioni possono essere di conversione (da/verso altri formati di file), di elaborazione (cambio di bitrate, ridimensionamento di visualizzazione), oppure di estrazione (estrapolazione di dati da diverse sorgenti, quali possono essere file, sorgenti analogiche o digitali, ecc).
FFmpeg nasce come programma a riga di comando: infatti con pochi parametri, è possibile compiere le operazioni descritte in precedenza. Questo lo rende un software veloce, preciso e molto pratico, anche per chi non è molto abituato ad adoperare la shell. Per quanto riguarda la conversione di files (il programma nasce principalmente per questo), FFmpeg può essere utilizzato sia in modalità semplice (senza passare alcun parametro o alcuna opzione), sia in modalità estesa (specificando diversi parametri o alias) che permettono di ampliare le possibilità quasi all'infinito.
FFmpeg nasce come programma a riga di comando: infatti con pochi parametri è possibile compiere le operazioni descritte in precedenza. Questo lo rende un software veloce, preciso e molto pratico, anche per chi non è molto abituato ad adoperare la shell. Per quanto riguarda la conversione di file (il programma nasce principalmente per questo), FFmpeg può essere utilizzato sia in modalità semplice (senza passare alcun parametro o alcuna opzione), sia in modalità estesa (specificando diversi parametri o alias) che permettono di ampliare le possibilità quasi all'infinito.
FFmpeg è inoltre multipiattaforma: sviluppato principalmente per l'ambiente Linux, è possibile installare la versione per Windows oppure per Mac OS X.
FFmpeg è inoltre multipiattaforma: sviluppato principalmente per l'ambiente Linux, è possibile installare la versione per Windows oppure per Mac OS X.


== Installazione ==
== Installazione ==


FFmpeg è presente nei repositories di ufficiali di Debian 5.0 Lenny. L'installazione è molto semplice, alla debian-way (da root):
FFmpeg è presente nei repository di ufficiali di Debian 5.0 Lenny. L'installazione è molto semplice, alla debian-way (da root):


<pre># apt-get install ffmpeg</pre>
<pre># apt-get install ffmpeg</pre>


Le dipendenze non sono molte, anche perchè le determinate librerie collegate ai vari codecs, sono installate su Debian di default. Essendo anche un programma senza interfaccia grafica, non necessita di librerie quali Gtk o Qt.
Le dipendenze non sono molte, anche perchè le determinate librerie collegate ai vari codec sono installate su Debian di default. Essendo anche un programma senza interfaccia grafica, non necessita di librerie quali Gtk o Qt.


== Piccolo glossario ==
== Piccolo glossario ==


Prima di utilizzare il programma FFmpeg, è utile conoscere il significato di alcuni termini, almeno i più importanti.
Prima di utilizzare il programma FFmpeg è utile conoscere il significato di alcuni termini, almeno i più importanti.


;Aspect-ratio: L'Aspect-ratio riferito al video, indica il rapporto tra la larghezza e l'altezza dell'immagine riprodotta. Il più diffuso rimane il 4:3, anche se negli ultimi anni il formato wide 16:9 sembra avere il sopravvento.
;Aspect-ratio: L'aspect-ratio riferito al video, indica il rapporto tra la larghezza e l'altezza dell'immagine riprodotta. Il più diffuso rimane il 4:3, anche se negli ultimi anni il formato wide 16:9 sembra avere il sopravvento.


;Bit-rate: Il bit-rate indica la quantità di dati, espressa in bit, necessaria per riprodurre un elemento digitale, sia esso video o audio. Pertanto avremo sia il bit-rate video che il bit-rate audio. Riferendosi a informazioni che si protraggono nel tempo, il bit-rate viene espresso in bit al secondo (o nelle varianti Kilobit e Megabit, rispettivamente Kbit/sec e Mbit/sec). Maggiore sarà questa quantità di dati e maggiore sarà la qualità (o la fedeltà in caso di registrazione) del prodotto che vogliamo rappresentare. Come riferimento possiamo indicare un bit-rate di almeno 1,2 Mbit/sec per un segnale audio e un bit-rate di almeno 200 Mbit/sec per un segnale video.
;Bit-rate: Il bit-rate indica la quantità di dati, espressa in bit, necessaria per riprodurre un elemento digitale, sia esso video o audio. Pertanto avremo sia il bit-rate video che il bit-rate audio. Riferendosi a informazioni che si protraggono nel tempo, il bit-rate viene espresso in bit al secondo (o nelle varianti Kilobit e Megabit, rispettivamente Kbit/sec e Mbit/sec). Maggiore sarà questa quantità di dati e maggiore sarà la qualità (o la fedeltà in caso di registrazione) del prodotto che vogliamo rappresentare. Come riferimento possiamo indicare un bit-rate di almeno 1,2 Mbit/sec per un segnale audio e un bit-rate di almeno 200 Mbit/sec per un segnale video.


;Top, Bottom, Right, Left: in un video, indicano rispettivamente la parte superiore, quella inferiore, quella di destra e quella di sinistra. Utili per un taglio (crop) dell'immagine, per l'inserimento di una banda colorata, oppure per l'inserimento di parti di testo (descizioni o sottotitoli).
;Top, Bottom, Right, Left: In un video, indicano rispettivamente la parte superiore, quella inferiore, quella di destra e quella di sinistra. Utili per un taglio (crop) dell'immagine, per l'inserimento di una banda colorata, oppure per l'inserimento di parti di testo (descrizioni o sottotitoli).


;Codec: Il codec è un particolare software che tramite complesse leggi matematiche consente di memorizzare e comprimere le immagini (per quanto riguarda i video) e i suoni (per quanto riguarda l'audio). Lo stesso codec poi risulta essenziale per una riproduzione delle sequenze memorizzate. Nell'audio/video professionale, esistono numerosi codecs (alcuni che si occupano delle immagini video, altri soltanto delle tracce audio). In generale, una sequenza video contiene due componenti fondamentali: un componente video, gestito da un codec video, e un componente audio, gestito da un codec audio.
;Codec: Il codec è un particolare software che tramite complesse leggi matematiche consente di memorizzare e comprimere le immagini (per quanto riguarda i video) e i suoni (per quanto riguarda l'audio). Lo stesso codec poi risulta essenziale per una riproduzione delle sequenze memorizzate. Nell'audio/video professionale, esistono numerosi codec (alcuni che si occupano delle immagini video, altri soltanto delle tracce audio). In generale, una sequenza video contiene due componenti fondamentali: un componente video, gestito da un codec video, e un componente audio, gestito da un codec audio.


;Formato: Le due componenti (audio e video) viste al punto sopra, vengono assemblate in un unico file che fa da contenitore. Questa tipologia di file è chiamata formato. I formati sono molteplici, a seconda appunto dei codecs utilizzati: AVI, MPEG, ecc.
;Formato: Le due componenti (audio e video) viste al punto sopra, vengono assemblate in un unico file che fa da contenitore. Questa tipologia di file è chiamata formato. I formati sono molteplici, a seconda appunto dei codec utilizzati: AVI, MPEG, ecc.


== Utilizzo ==
== Utilizzo ==
Riga 41: Riga 41:
<pre>$ ffmpeg [[inputfile options][-i inputfile]]... {[outputfile options] outputfile}...</pre>
<pre>$ ffmpeg [[inputfile options][-i inputfile]]... {[outputfile options] outputfile}...</pre>


Gli esempi che seguono si riferiscono alle applicazioni che normalmente vengono effettuate sui vari files audio e video. Per operazioni più complesse, le quali necessitano di molti parametri da specificare a FFmpeg, si rimanda alla lettura di man ffmpeg.
Gli esempi che seguono si riferiscono alle applicazioni che normalmente vengono effettuate sui vari file audio e video. Per operazioni più complesse, le quali necessitano di molti parametri da specificare a FFmpeg, si rimanda alla lettura di <code>man ffmpeg</code>.


Prima di iniziare, sarebbe bene impartire il comando:
Prima di iniziare, sarebbe bene impartire il comando:
Riga 47: Riga 47:
<pre>$ ffmpeg -formats</pre>
<pre>$ ffmpeg -formats</pre>


per controllare i formati audio/video supportati da FFmpeg, così da non incorrere in successivi errori. Il suddetto comando visualizza anche i codecs che si possono utilizzare per le varie operazioni. Prima di utilizzare FFmpeg, è buona norma sapere delle informazioni sul file audio/video su cui operare, come il bit-rate, il tipo di codifica audio e/o video, la dimensione, ecc. Tali informazioni si possono recuperare direttamente con FFmpeg, con il comando:
per controllare i formati audio/video supportati da FFmpeg, così da non incorrere in successivi errori. Il suddetto comando visualizza anche i codec che si possono utilizzare per le varie operazioni. Prima di utilizzare FFmpeg è buona norma avere delle informazioni sul file audio/video su cui operare, come il bit-rate, il tipo di codifica audio e/o video, la dimensione, ecc. Tali informazioni si possono recuperare direttamente con FFmpeg, con il comando:


<pre>$ ffmpeg -i inputvideo.avi</pre>
<pre>$ ffmpeg -i inputvideo.avi</pre>


per il files video, oppure
per il files video, oppure:


<pre>$ ffmpeg -i inputaudio.mp3</pre>
<pre>$ ffmpeg -i inputaudio.mp3</pre>
Riga 57: Riga 57:
per i files audio. Nella shell ci compariranno diversi messaggi. A noi interessano le righe finali, le quali ci restituiscono i valori che ci interessano: bit-rate, tipologia di campionamento, durata, ecc.
per i files audio. Nella shell ci compariranno diversi messaggi. A noi interessano le righe finali, le quali ci restituiscono i valori che ci interessano: bit-rate, tipologia di campionamento, durata, ecc.


=== Operazioni su files video ===
=== Operazioni su file video ===


In questa sezione analizzeremo le operazioni che solitamente vengono effettuate sui files video, soffermandoci sui parametri principali che bisogna "passare" al programma FFmpeg. Precisiamo che, salvo alcune eccezioni, i parametri impostati di default su FFmpeg, vanno più che bene.
In questa sezione analizzeremo le operazioni che solitamente vengono effettuate sui file video, soffermandoci sui parametri principali che bisogna "passare" al programma FFmpeg. Precisiamo che, salvo alcune eccezioni, i parametri impostati di default su FFmpeg vanno più che bene.


Conversione di un file video da formato mpg a formato avi
Conversione di un file video da formato mpg a formato avi:


<pre>$ ffmpeg -i inputvideo.mpg outputvideo.avi</pre>
<pre>$ ffmpeg -i inputvideo.mpg outputvideo.avi</pre>


Elaborazione di un file video con cambio di aspect-ratio
Elaborazione di un file video con cambio di aspect-ratio:


<pre>$ ffmpeg -i inputvideo.mpg -aspect 16:9 outputvideo.mpg</pre>
<pre>$ ffmpeg -i inputvideo.mpg -aspect 16:9 outputvideo.mpg</pre>


Il parametro -aspect determina il valore di aspect-ratio che assumerà il file video di uscita.
Il parametro -aspect determina il valore di aspect-ratio che assumerà il file video di uscita.
Nel nostro caso, il file inputvideo.mpg verrà elaborato e ridimensionato a 16:9. Da notare che il parametro può anche essere immesso in forma decimale come rapporto di 16/9, cioè 1,33.
Nel nostro caso, il file inputvideo.mpg verrà elaborato e ridimensionato a 16:9. Da notare che il parametro può anche essere immesso in forma decimale come rapporto di 16/9, cioè 1.33.


Elaborazione di un file video con impostazione di un bitrate di 64k:
Elaborazione di un file video con impostazione di un bitrate di 64k:
Riga 80: Riga 80:
<pre>$ ffmpeg -i inputvideo.avi -r 24 outputvideo.avi</pre>
<pre>$ ffmpeg -i inputvideo.avi -r 24 outputvideo.avi</pre>


Inserimento di un file audio in un file video (colonna sonora)
Inserimento di un file audio in un file video (colonna sonora):


<pre>$ ffmpeg -i audio.mp3 -i inputvideo.avi outputvideo.avi</pre>
<pre>$ ffmpeg -i audio.mp3 -i inputvideo.avi outputvideo.avi</pre>


Inserimento di bande colorate superiormente e inferiormente in un file video
Inserimento di bande colorate superiormente e inferiormente in un file video:
 
<!---
pad(qualcosa) non esiste più, si usano i padfilter (vedere manuale) su wheezy
--->
<pre>$ ffmpeg -i inputvideo.avi -padtop 20 -padbottom 20 -padcolor 000000 outputvideo.avi</pre>
<pre>$ ffmpeg -i inputvideo.avi -padtop 20 -padbottom 20 -padcolor 000000 outputvideo.avi</pre>


Il numero 20 seguente ai parametri -padtop e -padbottom indica la larghezza della banda in pixel, mentre il parametro -padcolor setta il colore (in esadecimale, pertanto 000000 sarà nero, FF0000 sarà rosso, ecc). Si intuisce che i parametri -padright e -padleft definiscono bande a destra e a sinistra. Con lo stesso criterio, i relativi parametri -croptop -cropbottom -cropright -cropleft seguiti dal numero di pixel, permettono di ritagliare superiormente, inferiomente, a destra e a sinistra delle parti del file video di input.
Il numero 20 seguente ai parametri -padtop e -padbottom indica la larghezza della banda in pixel, mentre il parametro -padcolor setta il colore (in esadecimale, pertanto 000000 sarà nero, FF0000 sarà rosso, ecc). Si intuisce che i parametri -padright e -padleft definiscono bande a destra e a sinistra. Con lo stesso criterio, i relativi parametri -croptop -cropbottom -cropright -cropleft seguiti dal numero di pixel, permettono di ritagliare superiormente, inferiomente, a destra e a sinistra delle parti del file video di input.
<!---
anche crop(cose) non c'è più e c'è un filtro crop (wheezy)
--->
=== Operazioni su file audio ===


=== Operazioni su files audio ===
In questa sezione analizzeremo le operazioni che solitamente vengono effettuate sui file audio, soffermandoci sui parametri principali che bisogna "passare" al programma FFmpeg.
 
In questa sezione analizzeremo le operazioni che solitamente vengono effettuate sui files audio, soffermandoci sui parametri principali che bisogna "passare" al programma FFmpeg.


Estrazione audio da un file video come file mp3
Estrazione audio da un file video come file mp3:


<pre>$ ffmpeg -i inputvideo.avi -ar 44100 -ab 192 -ac 2 audio.mp3</pre>
<pre>$ ffmpeg -i inputvideo.avi -ar 44100 -ab 192 -ac 2 audio.mp3</pre>
Riga 100: Riga 104:
I parametri -ar e -ab impostano rispettivamente la frequenza di campionamento a 44100 Hz ed il bitrate audio a 192 kb/sec. Questi valori indicano una buona qualità, paragonabile all'audio di un CD. Il parametro -ac imposta i canali del file di uscita, nel nostro caso 2, pertanto stereo. Se vogliamo possiamo cambiare l'estensione del file di uscita con wav oppure flac.
I parametri -ar e -ab impostano rispettivamente la frequenza di campionamento a 44100 Hz ed il bitrate audio a 192 kb/sec. Questi valori indicano una buona qualità, paragonabile all'audio di un CD. Il parametro -ac imposta i canali del file di uscita, nel nostro caso 2, pertanto stereo. Se vogliamo possiamo cambiare l'estensione del file di uscita con wav oppure flac.


Conversione di un file audio da formato wav a formato mp3
Conversione di un file audio da formato wav a formato mp3:


<pre>$ ffmpeg -i inputaudio.wav -ar 44100 -ab 192 -ac 2 outputaudio.mp3</pre>
<pre>$ ffmpeg -i inputaudio.wav -ar 44100 -ab 192 -ac 2 outputaudio.mp3</pre>
Riga 114: Riga 118:
;Kino: software di cattura, elaborazione e di editing video.
;Kino: software di cattura, elaborazione e di editing video.


;Open Movie Editor: software per l'editing video e per la creazione di slideshows.
;Open Movie Editor: software per l'editing video e per la creazione di slideshow.


;Kdenlive: software per l'editing video e per la creazione di slideshows.
;Kdenlive: software per l'editing video e per la creazione di slideshow.


;DVDslideshow: software per la creazione di slideshows.
;DVDslideshow: software per la creazione di slideshow.


Merita una citazione a parte il pacchetto FFplay (strettamente collegato a FFmpeg), il quale permette di eseguire files multimediali audio/video, basandosi sulle librerie intrinseche di FFmpeg. Non ci soffermeremo su questo aspetto, data l'importanza più rilevante che nell'ambito multimediale hanno le operazioni di conversione ed elaborazione.
Merita una citazione a parte il pacchetto FFplay (strettamente collegato a FFmpeg), il quale permette di eseguire files multimediali audio/video, basandosi sulle librerie intrinseche di FFmpeg. Non ci soffermeremo su questo aspetto, data l'importanza più rilevante che nell'ambito multimediale hanno le operazioni di conversione ed elaborazione.
68

contributi