¿Cómo puedo rotar el video 180 grados con avconv?

24

Me gustaría rotar el video (mp4) 180 grados, pero no voltearlo. ¿Es posible hacerlo con avconv?

sobi
fuente
Encontré con ambas respuestas existentes que funcionan con los archivos MP4 de una cámara Hero 3, pero solo después de agregar una -c:acopia al comando (justo antes del nombre del archivo de salida). También descubrí que la segunda versión era de una calidad indistinguible, pero aproximadamente un 50% más rápida que la versión traducida encadenada.
Simon

Respuestas:

31

Es posible usar el transposefiltro de video. No puede rotar 180 grados, pero puede rotar 90 grados y encadenar el filtro.

avconv -i video.mp4 -vf transpose=1,transpose=1 out.mkv

Ver transposeen la página de avconvmanual: http://manpages.ubuntu.com/manpages/quantal/en/man1/avconv.1.html

phoibos
fuente
Esto rotó mi video, pero la caída de calidad (resolución y velocidad de fotogramas) fue masiva (archivo iphone .mov).
Gringo Suave
transponer = el reloj funciona ahora ver mi respuesta
Elder Geek
15

Sí, pero necesitará agregar algunas opciones adicionales a su comando para que funcione correctamente. Transpose y vflip / hflip deberían hacer el truco, pero si no le dice a avconv más detalles sobre lo que desea, es probable que obtenga resultados de muy baja calidad:

 avconv -i original.mp4 -vf "hflip,vflip" -codec:v libx264 -preset slow -crf 20 -codec:a copy flipped.mp4

Observe la -crfopción Eso establece la calidad de salida. Va de 0 (sin pérdida) hacia arriba logarítmicamente. Probablemente desee un valor entre 19 y 25 en la mayoría de los casos. -presetestablece la velocidad de la codificación, ya sea "lenta", "media" o "rápida". Lento debería obtener tamaños de archivo más pequeños con una compensación obvia. Debe ajustar -codec:vpara que coincida con el original. Si no configura estas opciones, obtendrá los valores predeterminados, que no funcionan bien al voltear el video del iPhone.

lonchera
fuente
Unrecognized option 'preset' Failed to set value 'slow' for option 'preset' Eso es lo que obtuve
Karel Bílek
... y sin eso, obtuveUnknown encoder 'libx264'
Karel Bílek
1
apt-get install libavcodec-extra-53resuelto
Karel Bílek
6

Un método adicional con avconv es usar filtros vflip y hflip. Debería correr más rápido y tal vez de mejor calidad:

avconv -i video.mp4 -vf vflip,hflip out.mp4
wcarlson
fuente
Lo mismo: esto rotó mi video, pero la caída de calidad (resolución y velocidad de fotogramas) fue masiva (archivo iphone .mov).
Gringo Suave
1
@GringoSuave wcarlson le ha dado un ejemplo simplificado, todavía necesita agregar todos los códigos -c: v ... y otras etiquetas
v010dya
1

Hice esto:

avconv -i invertedOne.mp4 -c:a copy -vf "hflip,vflip" rightOne.mp4

Video Full HD, excelentes resultados con pérdida de calidad no perceptible

jap1968
fuente
1

Para avconv o ffmpeg Under 14.04 o posterior

Se han producido algunos cambios en la documentación de libav desde que @phoibos quality responde a esta pregunta. Puede rotar un video 180 grados evitando voltear completamente encadenando 2 comandos de 90 grados juntos (separados por una coma) Lo logré con el comando

avconv -i inputfile -vf transpose = clock, transpose = clock outputfile

para rotación en sentido horario.

en ffmpeg la sintaxis es la misma.

ffmpeg -i inputfile -vf transpose = clock, 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

Fuentes:

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

Pruebas en Ubuntu 14.04.5 y 16.04 LTS

Elder Geek
fuente