GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo rotar videos usando FFMpeg desde la línea de comandos

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

Linux
  1. Cómo controlar los reproductores multimedia desde la línea de comandos en Linux

  2. ¿Cómo recompilar Apache usando EasyApache de WHM?

  3. ¿Cómo crear videos programáticamente?

  4. ¿Cómo convertir videos m4v y wmv a formato mp4 usando ffmpeg?

  5. Cómo evitar que nginx use el puerto 80

Cómo buscar en Google desde la línea de comandos usando Googler

Cómo mostrar el uso de la CPU desde la línea de comandos

Cómo encontrar la versión de Virtualbox desde la línea de comandos en Linux

Cómo verificar si la GUI está instalada en Linux desde la línea de comandos

Cómo acercar y alejar videos usando FFmpeg

¿Cómo actualizar de 12.04 a 12.10 usando Cd?