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