Breve:questa guida dettagliata mostra come installare ffmpeg in Ubuntu e altre distribuzioni Linux. Dimostra anche alcuni utili comandi ffmpeg per un 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 molte altre. Un certo numero di editor video Linux utilizza ffmpeg sotto la GUI.
Ciò che amo ancora di più di ffmpeg è che può essere utilizzato 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 su ffmpeg, ti mostrerò come installare ffmpeg e tratterò i suoi diversi usi. Entrerò anche in alcune funzionalità più complesse.
Ecco le sezioni di questa guida:
- Installazione di ffmpeg
- Utilizzo di base di ffmpeg
- Utilizzo avanzato di ffmpeg
- Nozioni di base sui filtri
Spiegherò tutto in dettaglio in modo che tu possa 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 fatto ricerche su ffmpeg accuratamente e testato tutto ciò che menzionerò in questo articolo, non modifico video (o altri media) su base giornaliera. Se hai suggerimenti, suggerimenti o correzioni, faccelo sapere nei commenti!
Diamoci da fare!
Installazione di ffmpeg su Ubuntu e altri Linux
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. quindi aggiorna l'elenco dei pacchetti e installa ffmpeg. Puoi fare tutto questo usando i seguenti comandi in un terminale:
sudo add-apt-repository universe
sudo apt update
sudo apt install ffmpeg
Dovrebbe essere così! Puoi verificare l'installazione semplicemente digitando:
ffmpeg
Questo dovrebbe visualizzare del testo che descrive il tuo ffmpeg configurazione (inclusa versione ).
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 4.x versione, dovrai usare il ffmpeg ppa . Fare clic per espandere la sezione successiva per visualizzare i dettagli dell'installazione di ffmpeg tramite PPA.
Installa l'ultima ffmpeeg nelle distribuzioni basate su Ubuntu con PPA
Esiste un PPA non ufficiale che puoi utilizzare per installare l'ultima versione di ffmpeg. Usa semplicemente questi comandi:
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
sudo apt update
sudo apt install ffmpeg -y
Installa ffmpeg nelle distribuzioni basate su Arch
Per installare ffmpeg nelle distribuzioni basate su Arch, usa il comando seguente:
sudo pacman -S ffmpeg
Installa ffmpeg nelle distribuzioni basate su Fedora
Per installare ffmpeg nelle distribuzioni Linux basate su Fedora, puoi usare questo comando:
sudo dnf install ffmpeg
Come usare ffmpeg:le basi
Con ffmpeg installato, esaminerò i comandi di base per iniziare a utilizzare questo potente strumento.
0. Comandi ffmpeg
Il modulo di base un comando ffmpeg è:
ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ...
Devi tenere presente che tutte le opzioni file si applicano solo al file che le segue (dovrai riscriverle per il file successivo).
Qualsiasi file non preceduto da -i è considerato un file di output. Ffmpeg utilizza tutti gli input e gli output forniti. Puoi anche utilizzare lo stesso nome sia per un file di input che per un file di output, ma dovrai aggiungere il -y tag prima del nome del file di output.
Nota
Non dovresti mescolare ingressi e uscite; specificare prima i file di input, quindi specificare i file di output.
1. Ottieni informazioni sui file multimediali
Il primo utilizzo di ffmpeg è visualizzare informazioni su un file multimediale. Questo può essere fatto non inserendo alcun file di output. Digita semplicemente:
ffmpeg -i file_name
Funziona sia per file audio che video:
ffmpeg -i video_file.mp4
ffmpeg -i audio_file.mp3
Sebbene utile, questo comando mostrerà troppe informazioni che non sono rilevanti per il tuo file (informazioni su ffmpeg). Per ometterlo, aggiungi il -hide_banner bandiera:
ffmpeg -i video_file.mp4 -hide_banner
ffmpeg -i audio_file.mp3 -hide_banner
Come puoi vedere, il comando ora restituisce solo i dettagli relativi al file multimediale che hai specificato (codificatore, flussi ecc.).
2. Converti file multimediali
Un altro modo molto utile per usare ffmpeg è per una conversione senza problemi tra diversi formati multimediali. Devi solo specificare i file di input e output, poiché ffmpeg otterrà il formato richiesto dalle estensioni dei file. Funziona per le conversioni da video a video e da audio ad 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, utilizza:
ffmpeg -formats
Ancora una volta, puoi aggiungere -hide_banner per omettere informazioni sull'app.
Puoi specificare -qscale 0 parametro prima del file di output per preservare la qualità di un file video:
ffmpeg -i video_input.wav -qscale 0 video_output.mp4
Inoltre, puoi specificare codec vuoi usare, aggiungendo -c:a (per audio ) e -c:v (per video ) seguito dal nome dei codec o copia se vuoi usare gli stessi codec del file originale:
ffmpeg -i video_input.mp4 -c:v copy -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, esegui una semplice conversione e aggiungi -vn bandiera:
ffmpeg -i video.mp4 -vn audio.mp3
Nota che questo comando utilizzerà il bit rate del file originale. È una buona idea impostarlo da soli; 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 (bitrate massimo supportato da mp3).
Altre opzioni comuni sono -ar (frequenza audio :22050, 441000, 48000), -ac (numero di canali audio ), -f (formato audio , sebbene normalmente rilevato automaticamente). -ab può anche essere sostituito da -b:a . Ad esempio:
ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b:a 128k -f mp3 audio.mp3
4. Disattiva audio nel video
Simile all'ultima attività, per farlo aggiungeremo un semplice tag:-an (anziché -vn ).
ffmpeg -i video_input.mp4 -an -video_output.mp4
Nota: Il -an tag renderà inutili tutte le opzioni audio per quel file di output, poiché non ci sarà audio nel risultato dell'operazione.
5. Estrai immagini dal video
Questo potrebbe tornare utile per molte persone. Ad esempio, potresti avere una serie di immagini (ad esempio una presentazione) e desideri ricavarne tutte le immagini. Basta inserire:
ffmpeg -i video.mp4 -r 1 -f image2 image-%3d.png
Smontiamolo per un secondo.
-r specifica la frequenza dei fotogrammi (quanti fotogrammi vengono estratti nelle immagini in un secondo, predefinito :25), -f specifica il formato di output (image2 in realtà sta per image2 sequenza.
L'ultimo parametro (il file di output) ha una denominazione alquanto interessante:utilizza %3d alla fine. Questo numera semplicemente le tue immagini con 3 cifre (000, 001, ecc.). Puoi anche utilizzare %2d (formato a 2 cifre) o anche %4d (formato 4 cifre) se vuoi. Sentiti libero di sperimentare e utilizzare ciò che funziona per te!
Nota: C'è anche un modo per trasformare una serie di immagini in un video/presentazione. Ne parlerò in Utilizzo avanzato sezione .
6. Modifica la risoluzione video o le proporzioni
Un altro semplice compito per ffmpeg . Tutto quello che devi fare per ridimensionare un video è specificare una nuova risoluzione dopo i -s bandiera:
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 corretti:
ffmpeg -i video_input.h264 -s 640x480 -c:a video_output.mov
Puoi anche modificare le proporzioni utilizzando -aspetto :
ffmpeg -i video_input.mp4 -aspect 4:3 video_output.mp4
Nota: Ancora una volta, un altro metodo leggermente più potente sarà menzionato in Utilizzo avanzato sezione.
7. Aggiungi l'immagine del poster all'audio
Questo è un ottimo modo per trasformare l'audio in video , utilizzando una singola foto (come la copertina di un album) per l'audio. Questa è una funzionalità molto utile quando vuoi caricare file audio su 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:a aac -strict experimental -b:a 192k -shortest output.mp4
Basta cambiare i codec (-c:v specifica video codec, -c:a specifica audio codec) e i nomi dei tuoi file.
Nota: Non è necessario utilizzare sperimentale rigoroso se stai utilizzando una versione più recente (4.x ).
8. Aggiungi sottotitoli al video
Altrettanto utile e semplice da fare con ffmpeg consiste nell'aggiungere i sottotitoli a un video (ad esempio un film). Immettere quanto segue:
ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4
Naturalmente, puoi specificare tutti i codec che desideri (e qualsiasi altra opzione aggiuntiva relativa all'audio/video). Puoi leggere questo articolo sulla modifica dei sottotitoli in Linux, graficamente.
9. Comprimi file multimediali
Compressione file riduce notevolmente le dimensioni del file, risparmiando 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 ridurrà notevolmente la qualità del file risultante.
Innanzitutto per l'audio file, semplicemente 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
Anche in questo caso, alcuni valori di bit rate diversi sono:96k, 112k, 128k, 160k, 192k, 256k, 320k. Maggiore è il bit rate, maggiori saranno le dimensioni e la qualità del file.
Per video file, hai più opzioni. Un modo sarebbe ridurre il bit rate video (usando -b:v ):
ffmpeg -i video_input.mp4 -b:v 1000k -bufsize 1000k video_output.mp4
Nota: Le velocità in bit dei video sono diverse dai bit rate audio (valori molto più alti).
Puoi impostare il -crf flag (Fattore di tasso costante ). Un crf inferiore significa un bit rate più alto. Inoltre, utilizzando libx264 come codec video aiuta. Ecco una riduzione delle dimensioni molto efficiente con una riduzione della qualità molto piccola:
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.
Ridurre la frequenza 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 la frequenza fotogrammi (in questo caso 24 ).
Potresti anche provare a ridurre le dimensioni del video (già spiegato come farlo). Un ulteriore suggerimento è quello di comprimere l'audio anche, rendendolo stereo e riducendo il bit rate . Ad esempio:
ffmpeg -i video_input.mp4 -c:v libx264 -ac 2 -c:a aac -strict -2 -b:a 128k -crf 28 video_output.mp4
Nota: -rigoroso -2 e -ac 2 occuparsi della parte stereo. Ho già trattato la parte che riduce il bit rate .
10. Taglia file multimediali (Base)
Per rifilare 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, questo funziona per entrambi i video e audio File. Entrambi i comandi precedenti fanno la stessa cosa:salva i primi 5 secondi del file di input nel file di output. Ho utilizzato diversi modi per inserire la durata :un unico numero (numero di secondi) e HH:MM:SS (ore, minuti, secondi). La seconda versione si comporta più come un orario di fine .
Puoi andare ancora oltre specificando un ora di inizio con -ss e persino un ora di fine con -a :
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
Puoi vedere l'ora di inizio (-ss HH:MM:SS ), durata (-t durata ) in secondi, ora di fine (-a HH:MM:SS ) e ora di inizio (-s durata ) in secondi (a partire da durata secondi).
Tutti questi sono comandi validi e puoi lavorare con qualsiasi parte di un file multimediale utilizzandoli.
Come usare ffmpeg:utilizzo avanzato
Ora tratterò funzionalità leggermente più avanzate (come la trasmissione dello schermo, l'utilizzo di dispositivi ecc.). Andiamo subito al primo punto!
1. Dividi file multimediali
Ho già parlato di rifilatura File. Cosa devi fare per dividere un file in più parti è specificare più rifiniture (specificando orari di inizio , ora di fine o 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 sarà composta dai primi 30 secondi del video originale). Successivamente, ho specificato che vorrei 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, poiché è molto potente. Tieni presente che funziona anche con l'audio.
2. Concatena i file multimediali
ffmpeg può anche fare il processo opposto:mettere insieme più parti.
Per farlo, dovrai creare un nuovo file di testo e inizia a modificare utilizzando il tuo editor preferito.
Dato che mi piace usare il terminale, userò touch e vim . Non importa come chiami questo file. Chiamerò il mio join.txt e crea il file usando touch :
touch videos_to_join.txt
Ora lo modificherò usando vim :
vim videos_to_join.txt
Puoi usare qualsiasi strumento tu voglia (nano, gedit, ecc.), questo è proprio quello che per me è il più facile da usare.
Qui, inserisci i percorsi completi a tutti i file a cui desideri unire (saranno uniti nell'ordine in cui li scrivi qui), uno per riga. Assicurati che abbiano la stessa estensione (ad 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 con 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 mp4 estensione.
Questo dovrebbe unirsi tutti i file che hai annotato in join.txt (o come hai chiamato quel file) in un unico file di output.
3. Unisci le immagini in un video
Ecco come creare una presentazione o qualcosa di simile. Ti mostrerò come aggiungere audio anche.
La prima cosa che consiglio di fare è assicurarmi che le foto che vuoi mettere insieme si trovino nella stessa directory. Metterò il mio in una directory chiamata mie_foto . Le estensioni consigliato per le immagini sono .png e .jpg . Qualunque sia la tua scelta, assicurati che tutte le immagini abbiano la stessa estensione (in caso contrario, utilizzando ffmpeg potrebbe avere effetti indesiderati). Potresti semplicemente convertire il .png file in .jpg o viceversa (vedi Utilizzo di base ).
Il formato (-f ) della nostra conversione dovrebbe essere image2pipe . Per l'input, dovrai fornire un trattino (– ). Cosa 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ò. Affinché funzioni, dovremo anche menzionare che vogliamo i codec video da copiare (-c:v copia ) (per utilizzare correttamente le immagini):
cat my_photos/* | ffmpeg -f image2pipe -i - -c:v copy video.mkv
Se riproduci questo file, potresti pensare che solo alcune immagini siano state aggiunte alla presentazione. In realtà, tutte le tue foto sono state aggiunte, ma ffmpeg scorre attraverso di loro il più velocemente possibile. Ciò significa 1 fotogramma per foto; ffmpeg (per impostazione predefinita) gira a circa 23 fps .
Per cambiarlo, dovrai specificare la frequenza fotogrammi (-frame rate ) vuoi:
cat my_photos/* | ffmpeg -framerate 1 -f image2pipe -i - -c:v copy video.mkv
Nel mio esempio, ho impostato il frame rate a 1 , ciò significa che ogni fotogramma (che significa anche ogni immagine) viene visualizzato per 1 secondo .
Per aggiungere audio , come un brano di sottofondo, dovremo specificare il file audio come file di input (-i file_audo ) e copia i codec audio (-c:una copia ). Per i codec , puoi copiare contemporaneamente codec audio e video con -c copy . Assicurati di impostare i codec prima di specificare il file di output. Puoi anche impostare la frequenza fotogrammi in modo che tutte le tue immagini si sincronizzino con la durata dell'audio che desideri utilizzare. Per ottenerlo, dividere il numero di immagini dalla durata dell'audio (in secondi) . Per il mio esempio, ho un file audio lungo 22 secondi e 9 immagini. 9 / 22 è circa 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 copy video.mkv
4. Registra il tuo schermo
Screencast con ffmpeg non è un lavoro duro. Il formato (-f ) che devi utilizzare è x11grab . Questo catturerà il tuo XSERVER . Come input dovrai specificare il tuo numero di visualizzazione dello schermo (la schermata principale dovrebbe normalmente essere 0:0 ). Tuttavia, questo catturerà solo una parte in alto a sinistra dello schermo. Dovresti aggiungere una dimensione dello schermo (-s ). Il mio è 1920×1080 . Le dimensioni dello schermo dovrebbe essere menzionato prima l'immissione :
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 rendere la dimensione del file di output 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
Input di registrazione dalla tua webcam (o un altro dispositivo, come una fotocamera USB) è ancora più semplice. In Linux, 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 audio a impulsi . ffmpeg può registrare entrambi, ma tratterò pulseaudio , poiché le distribuzioni basate su Debian lo includono per impostazione predefinita. La sintassi è leggermente diversa per i due metodi.
Per audio a impulsi , devi forzare (-f ) anche e specifica predefinito come input (-i predefinito ):
ffmpeg -f alsa -i default output.mp3
Nota: Nelle impostazioni di distribuzione dell'audio, assicurati che sia il dispositivo di registrazione predefinito è quello che vuoi registrare.
Suono molto la chitarra e ho un'interfaccia audio per poterla registrare. Ho avuto una piacevole sorpresa quando ffmpeg registrato la mia chitarra senza problemi.
Suggerimenti bonus sulla registrazione
Per qualsiasi tipo di registrazione puoi anche specificare codec , ovviamente (già coperto). Puoi scegliere una frequenza fotogrammi specifica (-r ). Puoi combinare registrazione audio anche con webcam/registrazione dello schermo!
ffmpeg -i /dev/video0 -f alsa -i default -c:v libx264 -c:a flac -r 30 output.mkv
Invece di registrare l'audio, puoi altrettanto facilmente aggiungere un file audio come input da registrare sopra il tuo screencast/webcam:
ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 -i audio.wav -c:a copy output.mp4
Nota: ffmpeg record in piccoli pezzi, quindi una registrazione davvero 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 venga effettivamente scritto sul tuo disco.
Utilizzo di base dei filtri in ffmpeg
Filtri sono una caratteristica incredibilmente potente di ffmpeg . C'è una quantità incredibile di filtri disponibile per l'uso, rendendo ffmpeg completamente in grado di gestire qualsiasi modifica necessità. Poiché ci sono così tanti filtri e questo articolo è già completo, tratterò solo alcuni semplici filtri.
La struttura di base per l'utilizzo di un filtro è:
ffmpeg -i input.mp4 -vf "filter=setting_1=value_1:setting_2=value_2,etc" output.mp4 ffmpeg -i input.wav -af "filter=setting_1=value_1:setting_2=value_2,etc" output.wav
Come puoi vedere, sto specificando filtri video (-vf , abbreviazione di -filter:v ) e 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 notare filtri aggiuntivi, in realtà non fa parte del comando).
La forma generale di un filtro è:
filter=setting_2=value_2:setting_2=value_2
Le diverse impostazioni del filtro e i loro valori sono separati da due punti .
Puoi anche eseguire operazioni matematiche come valori per le diverse impostazioni .
Nota: Una copertura più dettagliata delle diverse costanti da utilizzare nelle espressioni e nelle diverse impostazioni può essere trovata nell'ufficiale documentazione del filtro ffmpeg .
Tratterò entrambi i video e audio filtri. Vediamo qualche esempio!
1. Ridimensionamento 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 operazioni matematiche per valori anche:
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 altezza del file risultante. Facoltativamente, puoi specificare le coordinate per l'angolo in alto a sinistra del taglio (impostazione predefinita: 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 taglierà al centro del file di input (poiché non ho specificato x e y coordinate per l'angolo in alto a sinistra). Il primo comando taglierà 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 dell'output a 3/4 della dimensione di input (in_w , in_h ).
3. Rotazione video
Puoi anche ruotare un video in senso orario da un valore (in radianti ). Per semplificare le cose, puoi specificare un valore in gradi e convertilo in radianti moltiplicando quel valore con PI/180 :
ffmpeg -i input.avi -vf "rotate=90*PI/180"
ffmpeg -i input.mp4 -vf "rotate=PI"
Il primo comando ruoterà il video 90 gradi in senso orario . Il secondo comando girerà il video sottosopra (PI rad =180 gradi).
4. Rimappatura dei canali audio
Questo può essere utile se in qualche modo ricevi solo audio nell'orecchio destro o qualcosa di simile. Puoi creare 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
Questa mappa il destra (1 ) canale audio sia a sinistra (0 ) e il destra (1 ) canale audio. (il numero sinistro rappresenta input , il numero giusto rappresenta la produzione ).
5. Moltiplicazione del volume dell'audio
Puoi moltiplicare il volume dell'audio da qualsiasi reale numero (intero o meno). 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ò entrambi i video (non influisce sull'audio) e audio filtri per questa attività.
Il filtro per video è setpt (PTS =timestamp di presentazione). Funziona in un modo alquanto interessante. Dal momento che in realtà modifichiamo il PTS , un coefficiente maggiore significa 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à .A
Il filtro per questo è atempo . There’s one little caveat:it can only take values between 0.5 (half the speed) and 2 (double the speed). To get around that, you can chain atempo filters:
ffmpeg -i input.wav -af "atempo=0.75" output.wav
ffmpeg -i input.mp3 -af "atempo=2.0,atempo=2.0" ouutput.mp3
The first command slows the audio by 1/4 of the original speed. The second command speeds up the audio 4 times (2*2).
Note: For changing video and audio playback speed with the same command you’ll have to look into filtergraphs .
Concludendo
In this comprehensive guide I covered the installation, basic usage, advanced usage and basics of filters.
I hope that this can be a helpful resource for anyone looking to try out ffmpeg , for someone that wants to use ffmpeg for multiple tasks or even just for someone who is willing to get more familiar with the extensive features of this amazing utility.
Let us know if you found this article useful in the comments below and tell us what are you using ffmpeg for! We look forward to any additions of any kind. Thanks for reading our blog and keep an eye out for an article covering more complex filtering . Divertiti!