Rotar un archivo de video 90 grados usando Ubuntu


18

Quiero usar Ubuntu y preferiblemente paquetes estándar como ffmpeg para rotar un archivo de video .3gp 90 grados en cualquier dirección. Preferiblemente una línea de comando o script de Python.

¿Cómo puedo hacer eso?


Descubrí que ffmpeg podía hacer esto. Ver, por ejemplo, foros de Ubuntu: girar el video 90 grados
Simon

Respuestas:


9

Al usar VLC , puede rotar el video yendo a Herramientas >> Preferencias ...

Y seleccione "Todos" para mostrar la configuración. Luego vaya a: Video >> Filtros >> Rotar

Después de establecer el grado que desea, puede rotar yendo a Herramientas> Efectos y filtros> Efectos de video> Geometría ...

texto alternativo

el que probé es mp4 pero creo que VLC también puede soportar 3gp. espero que esto ayude. :)


13
puedo ver el video rotado, pero ¿cómo haces que el cambio persista?
justinhj


17

Desde la línea de comandos, con ffmpeg:

ffmpeg -i input.3gp -filter:v transpose=1 \
-c:v libx264 -preset veryfast -crf 22 \
-c:a copy \
-metadata:s:v rotate="" \
output.3gp
  • transpose=1rotará el video 90 grados en sentido horario; para girar en sentido antihorario, use transpose=2. Consulte la documentación de transposición para obtener un poco más de información.

  • -metadata:s:v rotate=""eliminará cualquier metadato de rotación de flujo de video existente; de lo contrario, ffmpeglo copiará, lo que puede hacer que su jugador aplique rotación adicional no deseada.

  • Para obtener información sobre la configuración de codificación de video aquí, consulte esta guía de codificación H.264 y la guía de codificación AAC si desea volver a codificar el audio en lugar de copiar el flujo .


Esto responde mejor a la pregunta, ya que explica cómo hacerlo desde la línea de comandos con ffmpeg, como se especifica en la pregunta original. Creo que esta respuesta debe marcarse como correcta. A partir de mayo de 2017 en Fedora 25, esto todavía funciona, aunque sea un mensaje de desaprobación para el códec MP4.
Justin W. Flory

4

Avidemux debería poder hacer esto.

Hacer Video->Filters->Rotate(x degrees)->CloseentoncesFile->Save->Save Video


2

Resolví un problema similar: tenía un .MOV que estaba invertido (es decir, rotado 180 grados) que quería corregir.

En mi sistema Ubuntu 14.04, ejecuté avconvesencialmente las mismas opciones de línea de comandos que se indican ffmpegen la respuesta de evilsoup . Aparentemente, no admite una transposeopción de rotación de 180 grados, así que hice el giro de 90 grados en el sentido de las agujas del reloj (es decir, transpose=1) dos veces.

Cuando probé opciones mínimas, recibí un mensaje en el sentido de que:

encoder 'aac' is experimental and might produce bad results.

Add '-strict experimental' if you want to use it.

y el archivo de salida era de longitud cero, así que agregué el -strict experimental.

Las líneas de comando que funcionaron fueron:

avconv -i IMG_orignl.MOV -filter:v 'transpose=1' -strict experimental IMG_interm.MOV
avconv -i IMG_interm.MOV -filter:v 'transpose=1' -strict experimental IMG_result.MOV

El resultado fue satisfactorio, con efectos secundarios inexplicables:

  1. El archivo intermedio era más pequeño que el original en ~ 14%.
  2. El archivo de resultados fue más pequeño que intermedio en ~ 18% y más pequeño que el original en casi 30%.
  3. El archivo de resultados muestra una miniatura, mientras que el original y el intermedio muestran un ícono simplemente genérico.

No es que me queje: son deseables; Simplemente no entiendo por qué surgieron ...


Bienvenido a Super User. (1) Si bien alguna información de fondo en su respuesta puede ser útil, es mejor enfocarse en su solución al problema. He editado tu respuesta para ilustrar; siéntase libre de editarlo más si cree que he cambiado demasiado. (2) El orden de visualización de las respuestas puede variar; es mejor identificar otras respuestas explícitamente en lugar de decir "arriba". (2½) Espero que haya presentado sus avconvlíneas de comando en su totalidad, y no solo las diferencias con el ffmpegcomando. Su respuesta debe ser autosuficiente; la otra respuesta podría desaparecer. (3) ¡Buena suerte!
G-Man dice 'reinstalar a Monica' el

Además, supongo que cuando dice "el resultado fue satisfactorio", quiere decir que su archivo "resultado" se veía tan bien como el archivo original. Es posible que desee ( editar su mensaje) decirlo explícitamente. (Dicha información, es decir, si perdió calidad de video visible para el ojo, es importante para su respuesta, y no debe ocultarse en un comentario). Además, apuesto a que podría omitir las citas y decir simplemente -filter:v transpose=1 ….
G-Man dice 'reinstalar a Monica' el

2

Ha habido algunos cambios en libav desde el momento en que esta pregunta se respondió originalmente. En un intento por mantener esto actualizado y útil, proporcionaré lo siguiente:

Puede lograr esto con versiones recientes de ffmpegy avconvutilizando el filtro de video de transposición.

avconv -i inputfile -vf transpose=clock outputfile

para rotación en sentido horario.

en ffmpeg la sintaxis es la misma.

ffmpeg -i inputfile -vf transpose=clock outputfile

donde inputfile es su archivo de video de entrada compatible y outputfile es su archivo de salida deseado.

Para rotación en sentido antihorario, reemplace el reloj con cclock

Aquí hay un extracto de la documentación:

‘cclock_flip’

    Rotate by 90 degrees counterclockwise and vertically flip. (default)
‘clock’

    Rotate by 90 degrees clockwise.
‘cclock’

    Rotate by 90 degrees counterclockwise.
‘clock_flip’

    Rotate by 90 degrees clockwise and vertically flip. 

Fuentes:

https://libav.org/avconv.html#transpose

https://ffmpeg.org/ffmpeg-filters.html#transpose-1

Pruebas en Ubuntu 14.04.5 LTS, Ubuntu 16.04, Ubuntu 18.04


1
Gracias por los mínimos parámetros. ffmpegfuncionó para mí (no lo intenté avconv)
Amil Waduwawara

¡Excelente! Sí, muchas publicaciones ffmpefincluyen muchos argumentos innecesarios, ¡gracias!
Mariano Ruiz

@MarianoRuiz Me alegro de que te haya ayudado. ffmpeg siempre está en desarrollo, así que con el tiempo las cosas cambian. No es sorprendente que existan métodos más fáciles que algunas de las respuestas anteriores. ¡Salud!
Élder Geek
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.