La guida completa per l'utilizzo di ffmpeg in Linux

Breve: questa guida dettagliata mostra come installare ffmpeg in Ubuntu e in altre distribuzioni Linux. Dimostra anche alcuni utili comandi ffmpeg per l'uso pratico.

ffmpeg è un'utilità CLI (basata sulla riga di comando) per l'elaborazione di file multimediali. È un framework con una moltitudine di funzionalità e, grazie alla sua licenza open source, è la base per molte app diffuse come VLC, YouTube, iTunes e molti altri. Un certo numero di editor di video Linux usa ffmpeg sotto la GUI.

Quello che mi piace ancora di più su ffmpeg è che può essere usato da solo per eseguire molte attività di elaborazione in un modo molto semplice (con uno o due comandi). Tuttavia, è un programma molto potente che può essere utilizzato in modi più complessi e persino sostituire un flusso di lavoro di modifica.

In questo tutorial di ffmpeg, ti mostrerò come installare ffmpeg e coprirò i suoi diversi usi. Entrerò anche in alcune funzioni più complesse.

Ecco le sezioni di questa guida:

  • Installare ffmpeg
  • Uso di base di ffmpeg
  • Uso avanzato di ffmpeg
  • Nozioni di base sui filtri

Spiegherò tutto in dettaglio in modo da poter capire cosa sta succedendo anche se sei nuovo nel mondo Linux.

Userò Ubuntu 18.04, ma questi comandi dovrebbero funzionare anche per altre distribuzioni.

Nota: anche se ho cercato ffmpeg accuratamente e testato tutto ciò che menzionerò in questo articolo, non modifico video (o altri media) su base giornaliera. Se avete suggerimenti, suggerimenti o correzioni, fatemelo sapere nei commenti!

Prendiamolo!

Installazione di ffmpeg su Ubuntu e altri Linux

L'installazione di ffmpeg è un processo semplice. È un'applicazione popolare ed è disponibile nella maggior parte della distribuzione Linux tramite il gestore di pacchetti.

Installa ffmpeg in Ubuntu

In Ubuntu, ffmpeg è disponibile nel repository Universe quindi assicurati di abilitare il repository universe. e quindi aggiorna la lista dei pacchetti e installa ffmpeg. Puoi fare tutto ciò usando i seguenti comandi in un terminale:

 sudo universo add-apt-repository

sudo apt update

sudo apt installa ffmpeg

Questo dovrebbe essere! Puoi verificare l'installazione semplicemente digitando:

 ffmpeg 

Questo dovrebbe mostrare del testo che descrive la configurazione di ffmpeg (inclusa la versione ).

ffmpeg vversion

Come puoi vedere dallo screenshot qui sopra, la versione installata è 3.4.4 . Tuttavia, l' ultima versione di ffmpeg al momento della stesura di questo articolo è 4.1 . Per installare qualsiasi versione 4.x, dovrai usare ffmpeg ppa . Fare clic per espandere la sezione successiva per visualizzare i dettagli dell'installazione di ffmpeg tramite PPA.

Installa l'ultimo ffmpeeg in distribuzioni basate su Ubuntu con PPA

C'è un PPA non ufficiale che puoi usare per installare l'ultima versione di ffmpeg. Basta usare questi comandi:

 sudo add-apt-repository ppa: jonathonf / ffmpeg-4

sudo apt update

sudo apt installa ffmpeg -y

Installa ffmpeg nelle distribuzioni basate su Arch

Per installare ffmpeg in distribuzioni basate su Arch, utilizzare il seguente comando:

 sudo pacman -S ffmpeg 

Installa ffmpeg in distribuzioni basate su Fedora

Per installare ffmpeg in distribuzioni Linux basate su Fedora, puoi usare questo comando:

 sudo dnf installa ffmpeg 

Come usare ffmpeg: The Basics

Con ffmpeg installato, esaminerò i comandi di base per iniziare a utilizzare questo potente strumento.

0. Comandi ffmpeg

La forma base di un comando ffmpeg è:

 ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ... 

Devi tenere presente che tutte le opzioni di file si applicano solo al file che le segue (dovrai scriverle di nuovo per il file successivo).

Qualsiasi file non preceduto da -i è considerato un file di output. Ffmpeg usa tanti input e output quanti ne fornisci. Puoi anche usare lo stesso nome sia per un input che per un file di output, ma dovrai aggiungere il tag -y prima del nome del file di output.

Nota

Non dovresti mischiare input e output; specificare prima i file di input, quindi specificare i file di output.

1. Ottieni informazioni sui file multimediali

Il primo utilizzo di ffmpeg è la visualizzazione di informazioni su un file multimediale. Questo può essere fatto non inserendo alcun file di output. Basta digitare:

 ffmpeg -i nome_file 

Funziona sia per file audio che video:

 ffmpeg -i video_file.mp4

ffmpeg -i audio_file.mp3

Mostra informazioni su un file multimediale con ffmpeg

Sebbene utile, questo comando mostrerà troppe informazioni che non sono rilevanti per il tuo file (informazioni su ffmpeg). Per ometterlo, aggiungi il flag -hide_banner :

 ffmpeg -i video_file.mp4 -hide_banner

ffmpeg -i audio_file.mp3 -hide_banner

Visualizza le informazioni di un file multimediale usando ffmpeg

Come puoi vedere, il comando ora mostra solo i dettagli relativi al file multimediale specificato (codificatore, stream, ecc.).

2. Converti file multimediali

Un altro modo molto utile per usare ffmpeg è la conversione senza problemi tra diversi formati multimediali. Devi solo specificare i file di input e di output, dato che ffmpeg otterrà il formato richiesto dalle estensioni di file. Funziona per conversioni video-to-video e audio-audio.

Ecco alcuni esempi:

 ffmpeg -i video_input.mp4 video_output.avi

ffmpeg -i video_input.webm video_output.flv

ffmpeg -i audio_input.mp3 audio_output.ogg

ffmpeg -i audio_input.wav audio_output.flac

Puoi anche specificare più file di output:

 ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg 

Questo convertirà i file di input in tutti i formati specificati.

Per visualizzare un elenco di tutti i formati supportati, utilizzare:

 ffmpeg -formats 

Ancora una volta, puoi aggiungere -hide_banner per omettere informazioni sull'app.

È possibile specificare il parametro -qscale 0 prima del file di output per preservare la qualità di un file video:

 ffmpeg -i video_input.wav -qscale 0 video_output.mp4 

Inoltre, è possibile specificare i codec che si desidera utilizzare, aggiungendo -c: a (per audio ) e -c: v (per video ) seguiti dal nome dei codec o copia se si desidera utilizzare gli stessi codec dell'originale file:

 ffmpeg -i video_input.mp4 -c: v copia -c: a libvorbis video_output.avi 

Nota: questo potrebbe rendere l'estensione del file piuttosto ingannevole, quindi fai attenzione.

3. Estrai l'audio dal video

Per estrarre l'audio da un file video, fai una semplice conversione e aggiungi il flag -vn :

 ffmpeg -i video.mp4 -vn audio.mp3 

Si noti che questo comando utilizzerà la velocità in bit del file originale. È una buona idea impostarlo da solo; puoi usare -ab (bit rate audio):

 ffmpeg -i video.mp4 -vn -ab 128k audio.mp3 

Alcuni bit rate comuni sono 96k, 128k, 192k, 256k, 320k (il più alto bitrate supportato da mp3).

Altre opzioni comuni sono -ar ( frequenza audio : 22050, 441000, 48000), -ac (numero di canali audio ), -f ( formato audio, anche se normalmente rilevato automaticamente). -ab può anche essere sostituito da -b: a . Per esempio:

 ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b: a 128k -f mp3 audio.mp3 

4. Disattiva audio nei video

Simile all'ultima attività, per fare ciò aggiungeremo un semplice tag: -an (invece di -vn ).

 ffmpeg -i video_input.mp4 -an -video_output.mp4 

Nota: il tag -an renderà inutilizzabili tutte le opzioni audio per quel file di output, poiché non ci sarà audio nel risultato dell'operazione.

5. Estrai immagini da video

Questo potrebbe tornare utile per molte persone. Ad esempio, potresti avere una serie di immagini (ad esempio una presentazione) e vuoi ottenere tutte le immagini da quella. Basta inserire:

 ffmpeg -i video.mp4 -r 1 -f immagine2 immagine-% 3d.png 

Prendiamolo per un secondo.

-r specifica la frequenza dei fotogrammi (quanti fotogrammi vengono estratti in immagini in un secondo, default : 25), -f specifica il formato di output ( immagine2 corrisponde alla sequenza image2.

L'ultimo parametro (il file di output) ha un nome un po 'interessante: utilizza % 3d alla fine. Questo semplicemente numeri le immagini con 3 cifre (000, 001, ecc.). Puoi anche utilizzare % 2d (formato a 2 cifre) o anche % 4d (formato a 4 cifre) se lo desideri. Sentiti libero di sperimentare e utilizzare qualunque cosa funzioni per te!

Nota: c'è anche un modo per trasformare una serie di immagini in un video / slideshow. Ne parlerò nella sezione Uso avanzato .

6. Cambia risoluzione video o proporzioni

Un altro compito semplice per ffmpeg . Tutto quello che devi fare per ridimensionare un video è specificare una nuova risoluzione dopo il flag -s :

 ffmpeg -i video_input.mov -s 1024x576 video_output.mp4 

Inoltre, potresti voler specificare -c: a per assicurarti che i codec audio del file di output siano quelli giusti:

 ffmpeg -i video_input.h264 -s 640x480 -c: un video_output.mov 

Puoi anche modificare le proporzioni usando -aspetto :

 ffmpeg -i video_input.mp4 -aspect 4: 3 video_output.mp4 

Nota: ancora una volta, un altro metodo leggermente più potente sarà menzionato nella sezione Uso avanzato .

7. Aggiungi l'immagine del Poster all'Audio

Questo è un ottimo modo per trasformare l'audio in video, usando una singola foto (come la copertina di un album) per l'audio. Questa è una funzionalità molto utile quando si desidera caricare file audio in siti che non consentono altro che video / immagini (YouTube e Facebook sono due esempi di tali siti).

Ecco un esempio:

 ffmpeg -loop 1 -i image.jpg -i audio.wav -c: v libx264 -c: aac -strict experimental -b: a 192k -shortest output.mp4 

Basta cambiare i codec ( -c: v specifica i codec video, -c: a specifica i codec audio ) ei nomi dei tuoi file.

Nota: non è necessario utilizzare -strict experimental se si utilizza una versione più recente ( 4.x ).

8. Aggiungi sottotitoli al video

Altrettanto utile e semplice con ffmpeg è aggiungere sottotitoli a un video (ad esempio un film). Digita il seguente:

 ffmpeg -i video.mp4 -i sottotitoli.srt -c: v copia -c: una copia -preset veryfast -c: s mov_text -map 0 -map 1 output.mp4 

Naturalmente, è possibile specificare qualsiasi codec che si desidera (e qualsiasi altra opzione aggiuntiva relativa a audio / video). Puoi leggere questo articolo sulla modifica dei sottotitoli in Linux, graficamente.

9. Comprimi file multimediali

La compressione dei file riduce notevolmente le dimensioni del file, risparmiando così molto spazio. Questo può essere importante per il trasferimento di file. Con ffmpeg, esistono diversi metodi per ridurre le dimensioni del file.

Nota: la compressione eccessiva dei file riduce sensibilmente la qualità del file risultante.

Prima di tutto, per i file audio, è sufficiente ridurre la velocità in bit (usando -b: a o -ab ):

 ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3 ffmpeg -i audio_input.mp3 -b: a 192k audio_output.mp3 

Ancora una volta, alcuni valori di bit rate diversi sono: 96k, 112k, 128k, 160k, 192k, 256k, 320k. Più alto è il bit rate, maggiori sono le dimensioni del file e la qualità.

Per i file video, hai più opzioni. Un modo sarebbe quello di ridurre la velocità in bit del video (usando -b: v ):

 ffmpeg -i video_input.mp4 -b: v 1000k -bufsize 1000k video_output.mp4 

Nota: i bit rate video sono diversi dai bit rate audio (valori molto più alti).

È possibile impostare il flag -crf ( Constant Rate Factor ). Un crf inferiore significa una velocità in bit più alta. Inoltre, l'utilizzo di libx264 come codec video aiuta. Ecco una riduzione delle dimensioni molto efficiente con una riduzione molto piccola della qualità:

 ffmpeg -i video_input.mp4 -c: v libx264 -crf 28 video_output.mp4 

Un crf da 20 a 30 è comune, ma sentiti libero di giocare con il valore specifico.

La riduzione della frequenza dei fotogrammi potrebbe funzionare in alcuni casi (anche se potrebbe facilmente rendere il video lento):

 ffmpeg -i video_input.mp4 -r 24 video_output.mp4 

-r specifica il frame rate (in questo caso 24 ).

Potresti anche provare a ridurre le dimensioni del video (già spiegato come farlo). Un altro consiglio è quello di comprimere anche l' audio, rendendolo stereo e riducendo il bit rate . Per esempio:

 ffmpeg -i video_input.mp4 -c: v libx264 -ac 2 -c: aac -strict -2 -b: a 128k -crf 28 video_output.mp4 

Nota: -strict -2 e -ac 2 si occupano della parte stereo. Ho già coperto la parte che riduce il bit rate .

10. Taglia file multimediali (di base)

Per tagliare i file dall'inizio devi specificare una durata usando -t :

 ffmpeg -i input_video.mp4 -t 5 output_video.mp4

ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav

Come puoi vedere, funziona sia per i file video che audio . Entrambi i comandi precedenti fanno la stessa cosa: salva i primi 5 secondi del file di input nel file di output. Ho usato diversi modi di inserire la durata : un numero singolo (numero di secondi) e HH: MM: SS (ore, minuti, secondi). La seconda versione si comporta più come un tempo di fine .

Puoi andare ancora oltre specificando un'ora di inizio con -ss, e anche un tempo di fine con -to :

 ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3

ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav

ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264

ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg

È possibile visualizzare l' ora di inizio ( -ss HH: MM: SS ), la durata ( -t durata ) in secondi, l' ora di fine ( -a HH: MM: SS ) e l' ora di inizio ( durata -s ) in secondi (partenza dopo durata secondi).

Tutti questi sono comandi validi e puoi lavorare con qualsiasi parte di un file multimediale che li utilizza.

Come usare ffmpeg: Uso avanzato

Tratterò ora alcune funzionalità leggermente più avanzate (come la trasmissione dello schermo, l'uso di dispositivi, ecc.). Andiamo subito al primo punto!

1. Dividi file multimediali

Ho già coperto i file di ritaglio . Quello che devi fare per suddividere un file in più parti è specificare più tagli (specificando le ore di inizio, le ore di fine o la durata prima di ogni file di output).

Osserva questo esempio:

 ffmpeg -i video.mp4 -t 00:00:30 video_1.mp4 -ss 00:00:30 video_2.mp4 

La sintassi è abbastanza semplice. Ho specificato- t 00:00:30 come durata per la prima parte (la prima parte consisterà dei primi 30 secondi del video originale). Successivamente, ho specificato che mi piacerebbe che il resto facesse parte di un secondo video (a partire dalla fine dell'ultima parte, 00:00:30 ).

Questo può essere fatto per tutte le parti che vuoi! Divertiti a giocare con questa funzione, dal momento che è molto potente. Tieni presente che funziona anche con l'audio.

2. Concatena i file multimediali

ffmpeg può anche fare il processo opposto: mettendo insieme più parti.

Per fare ciò, dovrai creare un nuovo file di testo e iniziare a modificarlo usando il tuo editor preferito.

Dato che mi piace usare il terminale, userò touch e vim . Non importa quello che chiami questo file. Chiamerò il mio join.txt e creerò il file usando il touch :

 tocca video_to_join.txt 

Ora lo modifico usando vim :

 vim videos_to_join.txt 

Puoi usare qualunque strumento tu voglia (nano, gedit, ecc.), Questo è proprio quello che è più facile da usare.

Qui, inserisci i percorsi completi per tutti i file che desideri unire (verranno uniti nell'ordine in cui li scrivi qui), uno per riga. Assicurati che abbiano la stessa estensione (es. Mp4 ). Ecco il mio:

 /home/ubuntu/Desktop/video_1.mp4

/home/ubuntu/Desktop/video_2.mp4

/home/ubuntu/Desktop/video_3.mp4

Salva il file che hai appena modificato. Questo metodo funziona per qualsiasi file audio o video.

Ora inserisci quanto segue:

 ffmpeg -f concat -i join.txt output.mp4 

Nota: il mio file di output è output.mp4, ma questo perché tutti i miei file di input hanno l'estensione mp4 .

Questo dovrebbe unire tutti i file che hai scritto in join.txt (o comunque hai chiamato quel file) in un singolo file di output.

3. Unire le immagini in un video

È così che puoi mettere insieme una presentazione o qualcosa di simile. Ti mostrerò come aggiungere anche l' audio .

La prima cosa che consiglio di fare è assicurarsi che le foto che vuoi mettere insieme si trovino nella stessa directory. Metterò il mio in una directory chiamata my_photos . Le estensioni consigliate per le immagini sono .png e .jpg . Qualunque sia la tua scelta, assicurati che tutte le immagini abbiano la stessa estensione (altrimenti, l'uso di ffmpeg potrebbe avere effetti indesiderati). Potresti semplicemente convertire i file .png in .jpg o viceversa (vedi Uso di base ).

Il formato ( -f ) della nostra conversione dovrebbe essere image2pipe . Per l'input, dovrai fornire un trattino ( - ). Quello che image2pipe ti permette di fare è pipe (usando | nel terminale) i risultati di un comando come cat in ffmpeg invece di inserire tutti i nomi uno per uno. Questo è esattamente quello che farò. Perché ciò funzioni, dovremo anche menzionare che vogliamo che i codec video siano copiati ( -c: v copy ) (per usare correttamente le immagini):

 cat my_photos / * | ffmpeg -f image2pipe -i - -c: v copia video.mkv 

Se riproduci questo file, potresti pensare che solo alcune immagini sono state aggiunte alla presentazione. In realtà, tutte le tue foto sono state aggiunte, ma ffmpeg le scorre ciclicamente il più velocemente possibile. Ciò significa 1 fotogramma per foto; ffmpeg (di default) gira intorno ai 23 fps .

Per cambiarlo, dovrai specificare la frequenza dei fotogrammi ( -framerate ) che desideri:

 cat my_photos / * | ffmpeg -framerate 1 -f image2pipe -i - -c: v copia video.mkv 

Nel mio esempio, ho impostato il frame rate su 1, il che significa che ogni frame (che significa anche ogni immagine) appare per 1 secondo .

Per aggiungere audio, come una canzone di sottofondo, dovremo specificare il file audio come file di input ( -i audo_file ) e copiare i codec audio ( -c: una copia ). Per i codec, è possibile copiare entrambi i codec audio e video allo stesso tempo con -c copy . Assicurati di aver impostato i codec giusto prima di specificare il file di output. È inoltre possibile impostare la frequenza dei fotogrammi in modo che tutte le immagini si sincronizzino con la durata dell'audio che si desidera utilizzare. Per ottenere ciò, dividere il numero di immagini per la durata dell'audio (in secondi) . Per il mio esempio, ho un file audio lungo 22 secondi e 9 immagini. 9/22 è approssimativamente 0.40, quindi è quello che userò per il mio frame rate:

 cat my_photos / * | ffmpeg -framerate 0.40 -f image2pipe -i - -i audio.wav -c copia video.mkv 

4. Registra il tuo schermo

Screencasting con ffmpeg non è un compito difficile. Il formato ( -f ) che devi usare è x11grab . Questo catturerà il tuo XSERVER . Come input dovrai specificare il numero del tuo schermo (la schermata principale dovrebbe normalmente essere 0: 0 ). Tuttavia, questo catturerà solo una porzione in alto a sinistra dello schermo. È necessario aggiungere una dimensione dello schermo ( s ). Il mio è 1920 × 1080 . Le dimensioni dello schermo devono essere menzionate prima dell'input :

 ffmpeg -f x11grab -s 1920x1080 -i: 0, 0 output.mp4 

Premi q o CTRL + C in qualsiasi momento per interrompere lo screencast .

Trucco bonus: puoi impostare la dimensione del file di output a schermo intero inserendo questo dopo per la dimensione (anziché 1920 × 1080 o qualsiasi altra risoluzione impostata):

 -s $ (xdpyinfo | grep dimensions | awk '{print $ 2;}') 

Ecco il comando completo:

 ffmpeg -f x11grab -s $ (xdpyinfo | grep dimensions | awk '{print $ 2;}') -i: 0.0 output.mp4 

5. Registra la tua webcam

La registrazione di input dalla tua webcam (o da un altro dispositivo, come una fotocamera USB) è ancora più semplice. In Linux, i dispositivi sono negozi in / dev come / dev / video0, / dev / video1, ecc .

 ffmpeg -i / dev / video0 output.mkv 

Di nuovo, q o CTRL + C per interrompere la registrazione .

6. Registra il tuo audio

Linux gestisce l'audio principalmente tramite ALSA e pulseaudio . ffmpeg può registrare entrambi, ma coprirò pulseaudio, dato che le distribuzioni basate su Debian lo includono per impostazione predefinita. La sintassi è leggermente diversa per i due metodi.

Per pulseaudio, devi forzare ( -f ) alsa e specificare default come input ( -i default ):

 ffmpeg -f alsa -i output.mp3 predefinito 

Nota: nelle impostazioni del suono di distribuzione, assicurati che il dispositivo di registrazione predefinito sia quello che desideri registrare.

Suono molto la chitarra e ho un'interfaccia audio per poterla registrare. Ho avuto una piacevole sorpresa quando ffmpeg ha registrato la mia chitarra senza problemi.

Suggerimenti bonus sulla registrazione

Per qualsiasi tipo di registrazione puoi anche specificare i codec, ovviamente (già coperti). Puoi scegliere una frequenza fotogrammi specifica ( -r ). Puoi anche combinare l' audio della registrazione con la webcam / la registrazione dello schermo!

 ffmpeg -i / dev / video0 -f alsa -i default -c: v libx264 -c: un flac -r 30 output.mkv 

Invece di registrare l'audio, puoi anche aggiungere un file audio come input da registrare in cima al tuo screencast / webcam:

 ffmpeg -f x11grab -s $ (xdpyinfo | grep dimensions | awk '{print $ 2;}') -i: 0.0 -i audio.wav -c: una copia output.mp4 

Nota: ffmpeg registra in piccoli pezzi, quindi una registrazione molto piccola potrebbe non essere salvata. Ti consiglio di registrare un po 'più a lungo e di tagliarlo in seguito (se vuoi solo pochi secondi), solo per assicurarti che il file sia effettivamente scritto sul tuo disco.

Uso di base dei filtri in ffmpeg

I filtri sono una funzionalità incredibilmente potente di ffmpeg . C'è una quantità pazzesca di filtri disponibili per l'uso, rendendo ffmpeg completamente in grado di gestire qualsiasi necessità di editing . Poiché ci sono così tanti filtri e questo articolo è già completo, coprirò solo alcuni filtri semplici.

La struttura di base per l'utilizzo di un filtro è:

 ffmpeg -i input.mp4 -vf "filtro = impostazione_1 = valore_1: valore_2 = valore_2, ecc." output.mp4 ffmpeg -i input.wav -af "filtro = impostazione_1 = valore_1: impostazione_2 = valore_2, ecc" output.wav 

Come puoi vedere, sto specificando i filtri video ( -vf, abbreviazione di -filter: v ) e i filtri audio ( -af, abbreviazione di -filter: a ). I filtri effettivi sono scritti tra virgolette doppie ( " ) e possono essere concatenati separandoli con virgole ( , ). Puoi specificare tutti i filtri che vuoi (ho scritto ecc per annotare filtri aggiuntivi, in realtà non fa parte del comando).

La forma generale di un filtro è:

 filtrata = setting_2 = valore_2: setting_2 = value_2 

Le diverse impostazioni del filtro e i loro valori sono separati da due punti .

È inoltre possibile eseguire operazioni matematiche come valori per le diverse impostazioni .

Nota: è possibile trovare una copertura più dettagliata delle diverse costanti da utilizzare nelle espressioni e nelle diverse impostazioni nella documentazione ufficiale del filtro ffmpeg .

Coprirò sia i filtri video che quelli audio . Vediamo alcuni esempi!

1. Scala video

Questo è un filtro molto semplice. Le uniche impostazioni sono larghezza e altezza :

 ffmpeg -i input.mp4 -vf "scale = w = 800: h = 600" output.mp4 

Ho detto che puoi usare anche le operazioni matematiche per i valori :

 ffmpeg -i input.mkv -vf "scale = w = 1/2 * in_w: h = 1/2 * in_h" output.mkv 

Questo comando imposta la dimensione dell'output a metà ( 1/2 ) della dimensione di input ( in_w, in_h ).

2. Ritaglio video

Per quanto riguarda il filtro di ridimensionamento, le impostazioni sono la larghezza e l' altezza del file risultante. Facoltativamente, puoi specificare le coordinate per l' angolo in alto a sinistra del taglio ( predefinito: centro del video di input):

 ffmpeg -i input.mp4 -vf "crop = w = 1280: h = 720: x = 0: y = 0" output.mp4

ffmpeg -i input.mkv -vf "crop = w = 400: h = 400" output.mkv

Come notato, il secondo taglio verrà tagliato al centro del file di input (poiché non ho specificato le coordinate xey per l'angolo in alto a sinistra). Il primo comando verrà tagliato dall'angolo in alto a sinistra ( x = 0: y = 0 ).

Ecco un esempio che utilizza espressioni matematiche come valori :

 ffmpeg -i input.mkv -vf "crop = w = 3/4 * in_w: h = 3/4 * in_h" output.mkv 

Questo comando imposta la dimensione di output su 3/4 della dimensione di input ( in_w, in_h ).

3. Rotazione del video

Puoi anche ruotare un video in senso orario di un valore ( in radianti ). Per semplificare le cose, puoi specificare un valore in gradi e convertirlo in radianti moltiplicando quel valore con PI / 180 :

 ffmpeg -i input.avi -vf "rotazione = 90 * PI / 180"

ffmpeg -i input.mp4 -vf "rotate = PI"

Il primo comando ruoterà il video in senso orario di 90 gradi . Il secondo comando capovolgerà il video (PI rad = 180 gradi).

4. Rimappatura del canale audio

Questo può essere utile se in qualche modo si ottiene solo l' audio nell'orecchio destro o qualcosa di simile. Puoi rendere l' audio udibile da entrambe le orecchie (in questo caso particolare) in questo modo:

 ffmpeg -i input.mp3 -af "channelmap = 1-0 | 1-1" output.mp3 

Questo mappa il canale audio destro ( 1 ) a sinistra ( ) e il canale audio destro ( 1 ). (il numero a sinistra rappresenta l' input, il numero a destra rappresenta l' output ).

5. Moltiplicazione del volume audio

È possibile moltiplicare il volume audio per qualsiasi numero reale (intero o non). Devi solo specificare il moltiplicatore :

 ffmpeg -i input.wav -af "volume = 1.5" output.wav

ffmpeg -i input.ogg -af "volume = 0, 75" output.ogg

Il primo comando amplifica il volume 1, 5 volte. Il secondo comando rende l'audio 1/4 (0.25) volte più silenzioso .

Suggerimento bonus: regolazioni della velocità di riproduzione

Includerò sia il video (non influisce sull'audio) che i filtri audio per questa attività.

1. Video

Il filtro per il video è setpts (PTS = presentation time stamp). Questo funziona in un modo alquanto interessante. Poiché in realtà modifichiamo il PTS, un coefficiente più grande indica un risultato più lento e viceversa:

 ffmpeg -i input.mkv -vf "setpts = 0.5 * PTS" output.mkv

ffmpeg -i input.mp4 -vf "setpts = 2 * PTS" output, mp4

Come ho appena spiegato, il primo comando raddoppia la velocità di riproduzione e il secondo comando rallenta il video a 1/2 della velocità . UN

2. Audio

Il filtro per questo è atempo . C'è un piccolo avvertimento: può assumere solo valori compresi tra 0, 5 (metà della velocità) e 2 (il doppio della velocità). Per aggirare il problema, puoi associare filtri atempo :

 ffmpeg -i input.wav -af "atempo = 0.75" output.wav

ffmpeg -i input.mp3 -af "atempo = 2.0, atempo = 2.0" ouutput.mp3

Il primo comando rallenta l'audio di 1/4 della velocità originale. Il secondo comando accelera l'audio 4 volte (2 * 2).

Nota: per modificare la velocità di riproduzione di video e audio con lo stesso comando, dovrai esaminare i grafici dei filtri .

Avvolgendo

In questa guida completa ho trattato l'installazione, l'utilizzo di base, l'utilizzo avanzato e le basi dei filtri.

Spero che questa possa essere una risorsa utile per chiunque cerchi di provare ffmpeg, per qualcuno che vuole usare ffmpeg per più attività o anche solo per qualcuno che è disposto a familiarizzare con le funzionalità di questa incredibile utility.

Facci sapere se hai trovato questo articolo utile nei commenti qui sotto e dicci cosa stai usando ffmpeg ! Non vediamo l'ora di eventuali aggiunte di alcun tipo. Grazie per aver letto il nostro blog e aver tenuto d'occhio un articolo che copre i filtri più complessi . Godere!

Raccomandato

Primo sguardo agli sfondi predefiniti di Ubuntu 15.10
2019
Come mostrare la percentuale della batteria in Ubuntu 18.04 e 17.10
2019
Personalizzazione Ubuntu MATE
2019