GNU/Linux >> Linux Esercitazione >  >> Linux

La guida completa per l'utilizzo di ffmpeg in Linux

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à.

1. Video

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

2. Audio

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!



Linux
  1. 7 trucchi pratici per usare il comando wget di Linux

  2. Una guida al terminale Linux per principianti

  3. Come installare FFmpeg in Linux

  4. Guida completa per l'utilizzo di AsciiDoc in Linux

  5. La guida completa per principianti a LVM in Linux

Come installare il software in Ubuntu Linux:una guida completa per i principianti

Una guida pratica per il comando chroot in Linux

Una guida completa per installare Tomcat su Linux

La guida completa per installare MySQL su Ubuntu

La guida definitiva al sottosistema Windows per Linux (Windows WSL)

Come installare e utilizzare FFmpeg su distribuzioni Linux | Guida per principianti