¿Cómo obtener la mejor calidad al convertir de mp4 a avi con ffmpeg?

¿Cómo obtener la mejor calidad al convertir de mp4 a avi con ffmpeg?

Cuando uso esto, la calidad no parece mala.

ffmpeg -same_quant -i video.mp4 video.avi

En la ffmpegdocumentación está escrito: "Tenga en cuenta que NO ES LA MISMA CALIDAD. No utilice esta opción a menos que sepa que la necesita".

¿Me llego con -same_quantla mejor calidad o hay alguna opción que dé la misma calidad que la entrada y sea más recomendable?

Respuesta1

(adaptado de los comentarios anteriores)

Dependiendo de los códecs utilizados (algunos códecs son incompatibles con algunos contenedores), siempre puedes simplemente copiar las transmisiones ( -codec copy). Esa es la mejor manera de evitar cambios de calidad, ya que no se recodifican las transmisiones, simplemente se vuelven a empaquetar en un contenedor diferente.

Al trabajar con archivos de audio/vídeo, es importante tener en cuenta quecontenedoresson en su mayoría independientes de los códecs utilizados. Es común ver a personas referirse a archivos como "vídeo AVI" o "vídeo MP4", pero son contenedores y nos dicen poco sobre si un reproductor podrá reproducir las transmisiones, ya que, aparte de las limitaciones técnicas (por ejemplo,AVI puede tener problemas con h264 y Ogg Vorbis), puedes usar cualquier códec.

-same_quantParece ser una forma de decirle a ffmpeg que intente lograr una calidad similar, pero tan pronto como vuelve a codificar el video (al menos con códecs con pérdida), no tiene forma de obtener la misma calidad. Si le preocupa la calidad, una buena regla general es evitar volver a codificar las transmisiones cuando sea posible.

Entonces, para copiar las transmisiones con ffmpeg, harías:

ffmpeg -i video.mp4 -codec copy video.avi

(Como mencionó @Peter.O, el orden de las opciones es importante, así que ahí es donde -codec copydebemos ir. Aún puedes conservar -same_quant, pero no tendrá ningún efecto ya que no estás recodificando las transmisiones).

Respuesta2

En FreeBSD 8.2, probé -codec copy pero también recibí un mensaje desconocido decodificado. Después de prueba y error encontré el que funciona en FreeBSD:

ffmpeg -i video.mp4 -vcodec copy video.avi

información relacionada