Hoy decidí unir los videos tomados desde mi teléfono inteligente y hacer un solo archivo con audio similar a una película. Pero el problema es que algunos videos se graban en modo vertical y otros en modo horizontal. Antes de unir los archivos, pensé que sería mejor alinear todos los archivos de video en la misma orientación (es decir, modo). Por supuesto, hay muchas herramientas basadas en GUI y reproductores multimedia, como Smplayer, VLC, que tienen una función integrada para rotar videos. Pero prefiero una utilidad de línea de comandos. Sé cómo usar FFMPeg para realizar diversas operaciones, como convertir archivos a otro formato, recortar, dividir y unir archivos y muchos más. Ya compilé los comandos FFMpeg más utilizados para principiantes y los publiqué en esta guía . Sin embargo, no sé cómo rotar videos usando FFMpeg hasta hoy. Si alguna vez quisiste rotar videos usando FFMpeg, sigue los pasos que se detallan a continuación.
Asegúrese de tener instalada la última versión de FFMpeg en su sistema. FFMpeg está disponible en los repositorios predeterminados de muchos sistemas operativos Linux populares, por lo que la instalación no será un gran problema. Si no ha instalado FFMpeg en su caja de Linux, consulte la siguiente guía.
- Cómo instalar FFMpeg en Linux
Rotar videos usando FFMpeg desde la línea de comandos
FFMpeg tiene una función llamada "Transponer" que se utiliza para rotar videos. Con esta función, podemos rotar fácilmente los videos en el sentido de las agujas del reloj y en el sentido contrario, así como voltearlos vertical y horizontalmente.
Por ejemplo, el siguiente comando rotará el video dado 90 grados en el sentido de las agujas del reloj:
$ ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
O use este comando:
$ ffmpeg -i input.mp4 -vf "transpose=clock" output.mp4
Aquí, transpose=1 El parámetro indica a FFMpeg que transponga el video dado 90 grados en el sentido de las agujas del reloj. Aquí está la lista de parámetros disponibles para la función de transposición.
- 0 - Gire 90 grados en sentido contrario a las agujas del reloj y voltee verticalmente. Este es el predeterminado .
- 1 - Girar 90 grados en el sentido de las agujas del reloj.
- 2 - Girar 90 grados en sentido contrario a las agujas del reloj.
- 3 - Gire 90 grados en el sentido de las agujas del reloj y voltee verticalmente.
Para rotar videos 180 grados en el sentido de las agujas del reloj, debe mencionar el parámetro de transposición dos veces como se muestra a continuación.
$ ffmpeg -i input.mp4 -vf "transpose=2,transpose=2" output.mp4
Los comandos anteriores volverán a codificar partes de audio y video del archivo de video dado. Si no desea volver a codificar el video y cambiar la rotación solo en los metadatos, use este comando en su lugar:
$ ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
Aún mejor, puede copiar todos los metadatos globales (como la fecha, los detalles de la cámara) del archivo de entrada al archivo de salida como se muestra a continuación.
$ ffmpeg -i input.mp4 -map_metadata 0 -metadata:s:v rotate="90" -codec copy output.mp4
Tenga en cuenta que no funciona en algunos reproductores que no pueden manejar metadatos de rotación. Cambié la orientación del video solo en los metadatos y lo reproduje en Smplayer. Pero siguió reproduciendo el video en la orientación anterior. ¡Pero funcionó en el reproductor multimedia Gnome! no sé por qué Por lo tanto, si la orientación del video no funcionó, es posible que deba volver a codificarlo como se muestra en el primer comando.
Lectura sugerida:
- Cómo ver metadatos de imágenes en Linux