GNU/Linux >> Linux Esercitazione >  >> Linux

Come ruotare i video usando FFMpeg dalla riga di comando

Oggi ho deciso di unire i video presi dal mio smartphone e creare un unico file simile a un film con audio. Ma il fatto è che alcuni video vengono girati in modalità verticale e altri in modalità orizzontale. Prima di unire i file, ho pensato che sarebbe stato meglio allineare tutti i file video con lo stesso orientamento (cioè modalità). Naturalmente, ci sono molti strumenti basati su GUI e lettori multimediali, come Smplayer, VLC, hanno una funzione integrata per ruotare i video. Ma preferisco un'utilità da riga di comando. So usare FFMpeg per eseguire varie operazioni come convertire i file in un altro formato, ritagliare, dividere e unire file e molti altri. Ho già compilato i comandi FFMpeg più comunemente usati per i principianti e li ho pubblicati in questa guida . Tuttavia, non so come ruotare i video usando FFMpeg fino ad oggi. Se hai mai desiderato ruotare i video utilizzando FFMpeg, segui i passaggi indicati di seguito.

Assicurati di avere l'ultima versione di FFMpeg installata sul tuo sistema. FFMpeg è disponibile nei repository predefiniti di molti popolari sistemi operativi Linux, quindi l'installazione non sarà un grosso problema. Se non hai installato FFMpeg sulla tua macchina Linux, fai riferimento alla seguente guida.

  • Come installare FFMpeg su Linux

Ruota i video utilizzando FFMpeg dalla riga di comando

FFMpeg ha una funzione chiamata "Trasposizione" che viene utilizzato per ruotare i video. Usando questa funzione, possiamo facilmente ruotare i video in senso orario e antiorario, nonché capovolgerli verticalmente e orizzontalmente.

Ad esempio, il comando seguente ruoterà il video specificato di 90 gradi in senso orario:

$ ffmpeg -i input.mp4 -vf "transpose=1" output.mp4

Oppure usa questo comando:

$ ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4

Qui, transpose=1 Il parametro indica a FFMpeg di trasporre il video dato di 90 gradi in senso orario. Ecco l'elenco dei parametri disponibili per la funzione di trasposizione.

  • 0 - Ruota di 90 gradi in senso antiorario e capovolgi verticalmente. Questo è il predefinito .
  • 1 - Ruota di 90 gradi in senso orario.
  • 2 - Ruota di 90 gradi in senso antiorario.
  • 3 - Ruota di 90 gradi in senso orario e capovolgi verticalmente.

Per ruotare i video di 180 gradi in senso orario, devi menzionare il parametro transpose due volte come di seguito.

$ ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4

I comandi precedenti ricodificheranno le parti audio e video del file video specificato. Se non vuoi ricodificare il video e modificare la rotazione solo nei metadati, usa invece questo comando:

$ ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4

Ancora meglio, puoi copiare tutti i metadati globali (come data, dettagli della fotocamera) dal file di input al file di output come di seguito.

$ ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4

Tieni presente che non funziona in alcuni giocatori che non possono gestire i metadati di rotazione. Ho cambiato l'orientamento del video solo nei metadati e l'ho riprodotto in Smplayer. Ma ha continuato a riprodurre il video nell'orientamento precedente. Ma ha funzionato in Gnome media player! non so perché. Quindi, se l'orientamento del video non ha funzionato, potrebbe essere necessario ricodificarlo come mostrato nel primo comando.

Lettura consigliata:

  • Come visualizzare i metadati delle immagini su Linux

Linux
  1. Come controllare i lettori multimediali dalla riga di comando in Linux

  2. Come creare pacchetti dal sorgente utilizzando CheckInstall

  3. Come aggiornare Fedora 34 da Fedora 33 usando DNF

  4. Come ricompilare Apache usando EasyApache da WHM?

  5. Come convertire video m4v e wmv in formato mp4 usando ffmpeg?

Come cercare su Google dalla riga di comando utilizzando Googler

Come visualizzare l'utilizzo della CPU dalla riga di comando

Come trovare la versione di Virtualbox dalla riga di comando in Linux

Come verificare se la GUI è installata in Linux dalla riga di comando

Come ingrandire e rimpicciolire i video utilizzando FFmpeg

Come aggiornare da 12.04 a 12.10 utilizzando Cd?