Pregunta

Estoy buscando una forma de rotar los videos grabados con mi Nexus 4 en mi Debian Wheezy del sistema.Los vídeos se graban en el modo de retrato y me gustaría hacerlos girar a modo de paisaje.Preferiblemente, la rotación es impulsada por línea de comandos.

He encontrado varias cuestiones previas que están haciendo alusión a una buena solución, pero me parece que no puede manejar conseguir trabajo.

Para empezar no era esta pregunta:Rotación de videos con FFmpeg

Pero indica que ffmpeg es obsoleta y que yo debería usar avconv.He encontrado esta pregunta detallando el camino a seguir hacia adelante.https://askubuntu.com/questions/269429/how-can-i-rotate-video-by-180-degrees-with-avconv

Esto me hizo utilizando el siguiente comando:

avconv -i original.mp4 -vf "transpose=1" -codec:v libx264 -preset slow -crf 25 -codec:a copy flipped.mp4

Sin embargo, esto es más lento (última prueba me tomó más de 6 horas por menos de 3 minutos de metraje) y no da como resultado una película jugable.También me da un error en el registro de salida que los estados Mb Tasa de > límite de nivel.

Hay un problema aquí con la re-codificación?Debo primera re-codificar los videos de mi celular a otro, más "viable" de la codificación antes de aplicar las rotaciones?O me estoy perdiendo otro punto importante?

¿Fue útil?

Solución

Si solo desea cambiar los metadatos, de modo que los MediAplayers que consideran que la bandera se reproduce el archivo girado, intente algo como:

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4

Como se encuentra en otra parte de StackOverFlow .

Otros consejos

Rotación= 0 arregló mi problema.Comencé a grabar video en modo retrato, me di cuenta de mi error e inmediatamente giraría mi teléfono para que el paisaje continúe grabando.Mi iPhone había marcado el video como retrato para todo el video.

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4

arreglado.

FFmpeg y programas similares cambiar los metadatos incluso con la -map_metadata opción. exiftool puede leer la matriz de rotación y rotación de la bandera, y desde la versión 10.89 también se escribe como se describe a continuación.

Para obtener la verdadera lossless (incl.metadatos) la rotación, no podía encontrar una solución, así que me agarró un editor hexadecimal (por ejemplo, HxD) y se analizó el girado archivos de vídeo.

La verdadera rotación sin pérdida de MP4:

  • abierto mp4 con un editor hexadecimal y buscar vide para encontrar los metadatos de la pista de vídeo
  • algunas filas de arriba (para mi de los archivos en su mayoría 9, a veces 12) usted debe ver trak...\tkhd
  • entre tanto, debe ser una @ signo (HEX 40)
  • en las dos filas antes de que la matriz de rotación se almacena
  • no hay rotación:

    00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40
    
  • 180°:

    FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    40
    
  • 90° a la derecha:

    00 00 00 00 00 01 00 00 00 00 00 00 FF FF 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    40 
    
  • 90° a la izquierda:

    00 00 00 00 FF FF 00 00 00 00 00 00 00 01 00 00 
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
    40
    

Modificar el archivo como usted necesita y debe girar en los jugadores que apoyan la rotación de la bandera (la mayoría de los jugadores actuales de hacer).

En caso de que el vídeo contiene audio en estéreo, esta es, obviamente, no se cambia, por lo que en caso de que usted desea el sonido para que coincida con el vídeo de rotación (180°), usted necesita para cambiar los canales izquierdo y derecho.

Hay varias cosas que has tocado en tu pregunta:

  1. No hay casi ninguna posibilidad de que usted será capaz de girar sin reencoding.La excepción a la regla (MJPEG codec) ya ha sido señalado, pero es poco probable que usted lo está utilizando, por lo tanto, va más allá del alcance de esta pregunta.Voy a mencionar que la razón de esta capacidad es que el formato JPEG pueden ser convertidos a través de metadatos.Por lo tanto, si usted será capaz de encontrar un recipiente que contiene los metadatos de rotación, usted será capaz de girar, pero no existen (o son amplia difusión suficiente) hasta ahora.
  2. Si se tomó su horario para rotar y reencode 3 minutos de vídeo, entonces el problema puede estar en una enorme resolución.Y me refiero a enorme!Puede usted por favor proporcione la salida de la avprobe original.mp4 de modo que se pueda determinar.
  3. Libav frente a FFmpeg debates son muy contraproducentes (se puede ver que por la cantidad de fud publicado aquí ya).Básicamente lo que ha sucedido fue una división del proyecto con algunos de los desarrolladores una forma que va y algún otro, el hecho de que el proyecto FFmpeg se ha conseguido mantener el nombre es sólo una casualidad y no tiene sentido llamar a un proyecto original y otra un tenedor.Las diferencias entre los proyectos son en su mayoría en el estilo de desarrollo y en la filosofía.Si a usted le caracterizan FFmpeg como más de código Abierto y Libav como más Software Libre, tendría que no ser del todo equivocado.La gente racional esperanza de que, finalmente, los desarrolladores se vienen a sus sentidos, y tal vez no combinar los proyectos, sino cooperar en la mayor medida.Cuando Ubuntu salió originalmente, en cada una de Debian GNU/Linux chat hubo grandes mensajes a lo largo de la línea de "Ubuntu NO es Debian!!!!!!!", pero ahora la situación se ha calmado y ambos lados son muy felices el uno con el otro.

Esta respuesta es simplemente un resumen de los comentarios proporcionados por LordNeckBeard.

girando sin codificación

Girar sin recodificación no es posible a menos que:

  • Tu entrada es mjpeg
  • usted gira sobre la reproducción

Gire con la codificación utilizando el FFMPEG correcto

Para comprender correctamente los pasos necesarios para esto, uno debe comenzar leyendo o al menos skimming esta pregunta:

¿Cuáles son las diferencias y similitudes entre FFMPEG, LIBAV y AVCONV?

Resumen: AVCONV es un tenedor de FFMPEG, el mantenimiento de Debian eligió AVCONV, debe compilar el FFMPEG correcto de la fuente.

El siguiente paso estaría compilando la FFMPEG correcta de la fuente, como se detalla aquí:

Guía de compilación de FFMPEG para Debian

El paso final está utilizando los comandos que se encuentran en otras publicaciones:

¿Cómo voltear un video 180 ° (vertical / al revés) con ffmpeg? o Videos giratorios con FFMPEG

Resumen: FFMPEG -VFILLTERS "GUTATE= 90" -i INPUT.MP4 OUTPUT.MP4

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top