Cómo convertir un MKV a AVI con una pérdida mínima


23

Para convertir un MKV a AVI, hago dos cosas. Lo primero que hago es esto:

ffmpeg -i filename.mkv -vcodec copy -acodec copy output.avi

o esto:

ffmpeg -i filename.mkv -sameq -acodec copy output.avi

Cualquiera de estos convertirá el MKV a un AVI, pero el problema es que el video no se reproduce sin problemas por alguna razón. Sin embargo, está bien, porque si hago una cosa más, se arregla:

ffmpeg -i output.avi -vcodec mpeg4 -b 4000k -acodec mp2 -ab 320k converted.avi

Después de hacer esto, el archivo se reproduce sin problemas. Tuve éxito al hacerlo de esta manera para un archivo, pero luego lo probé en otro archivo y hay una pérdida leve pero notable en la calidad del video. Este es el resultado que obtengo al hacer el segundo paso:

FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec 29 2010 18:02:10 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: 
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.11. 0 /  0.11. 0

Seems stream 0 codec frame rate differs from container frame rate: 359.00 (359/1) -> 29.92 (359/12)
Input #0, avi, from 'output.avi':
  Metadata:
    ISFT            : Lavf52.64.2
  Duration: 00:04:17.21, start: 0.000000, bitrate: 3074 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 704x480 [PAR 229:189 DAR 5038:2835], 29.92 fps, 29.92 tbr, 29.92 tbn, 359 tbc
    Stream #0.1: Audio: vorbis, 48000 Hz, stereo, s16
Output #0, avi, to 'converted.avi':
  Metadata:
    ISFT            : Lavf52.64.2
    Stream #0.0: Video: mpeg4, yuv420p, 704x480 [PAR 229:189 DAR 5038:2835], q=2-31, 4000 kb/s, 29.92 tbn, 29.92 tbc
    Stream #0.1: Audio: mp2, 48000 Hz, stereo, s16, 320 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1

Solo utilicé configuraciones arbitrariamente grandes en el segundo paso y funcionó bien antes, pero no en este caso. ¿Qué configuraciones debo usar?


Esto es lo que me dio ffmpeg para sameq: se eliminó la opción 'sameq'. Si está buscando una opción para preservar la calidad (que no es para lo que era -sameq), use -qscale 0 o una opción de factor de calidad equivalente.
DavidG

Respuestas:


25

Para copiar el flujo de bits de video y audio, sin pérdida de calidad:

ffmpeg -i filename.mkv -c:v copy -c:a copy output.avi

Si desea que FFmpeg convierta video y audio automáticamente:

ffmpeg -i filename.mkv output.avi

77
La configuración predeterminada de FFmpeg tiende a ser horrible. Aquí hay una guía general para codificar con varios códecs; El wiki de FFmpeg tiene guías más detalladas.
evilsoup

El primer archivo creado por el código que estaba dañado no se reprodujo en VLC.
codemirror

18
 ffmpeg -i "input.mkv" -f avi -c:v mpeg4 -b:v 4000k -c:a libmp3lame -b:a 320k "converted.avi"

Mi sugerencia: use mpeg4 + mp3 en el contenedor avi.


1

Intenta usar ffmulticonverter. Muy útil para mí: es una especie de GUI para ffmpeg y puedes configurar fácilmente todos los parámetros. Además, puede encontrar una lista de todos los formatos de video posibles.

LP


-3

¿Puedo recomendar un acceso directo que uso regularmente?

ffmpeg -i filename.mkv -sameq output.avi

44
sameq no significa la misma calidad y no debe usarse. De hecho, se eliminó de ffmpeg por completo. En su lugar, establezca la calidad utilizando lo que el códec de destino proporcione.
slhck
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.