Solución:
Siempre pierde un poco de calidad cada vez que transcodifica de un códec a otro, video o audio, pero tal vez pueda evitarlo si solo desea cambiar del tipo de contenedor MP4 a un contenedor AVI. codec:copy
puede ser útil si no tiene una razón para transcodificar (y debería ser más rápido).
Si debe transcodificar porque necesita usar un códec de video en particular, espero que pueda usar la sugerencia de zetah anterior en su comentario y usar el -sameq
cambiar. Alternativamente, es posible que desee utilizar el qscale
opción para configurar la calidad manualmente. Cuanto menor sea el número, mejor será la calidad, pero más espacio ocupará el archivo.
La última vez que transcodifiqué un video que usé qscale=8.0
, pero le sugiero que experimente para encontrar el óptimo que coincida con la calidad de su entrada.
Marty Jay menciona amablemente que sameq significa el mismo cuantificador que en la entrada, lo que puede no dar como resultado la misma calidad. El artículo que cita menciona el uso de la conversión de múltiples pasadas, que es una buena manera de lograr una mejor compresión sin sacrificar la calidad.
Mi solución:
ffmpeg -i filename.mp4 -vcodec copy -acodec copy filename.avi
¡¡Disfrutar!!
Aquí está mi 2-pass (Advanced Simple Profile) que uso de vez en cuando.
pase 1:
ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -pass 1 -an -threads 0 -f rawvideo -y /dev/null
pase 2:
ffmpeg -i file.mp4 -vcodec mpeg4 -vtag XVID -b 990k -bf 2 -g 300 -s 640x360 -acodec libmp3lame -ab 128k -ar 48000 -ac 2 -pass 2 -threads 0 -f avi file.avi