web-dev-qa-db-fra.com

Comment convertir un MKV en AVI avec une perte minimale

Pour convertir un MKV en AVI, je fais deux choses. La première chose que je fais est la suivante:

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

ou ca:

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

L'un ou l'autre convertira le MKV en AVI, mais le problème est que la vidéo ne se lit pas correctement pour une raison quelconque. C'est bien cependant, parce que si je fais une dernière chose, cela se règle:

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

Ensuite, le fichier est lu sans problème. J'ai réussi à le faire de cette façon pour un fichier, mais je l'ai ensuite essayé sur un autre fichier et il y a une légère perte, mais notable, de la qualité vidéo. Voici le résultat obtenu lors de la deuxième étape:

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

Je viens d'utiliser des paramètres arbitrairement grands sur la deuxième étape et cela fonctionnait bien avant, mais pas dans ce cas. Quels paramètres dois-je utiliser?

23
tony_sid

Pour copier simplement le flux vidéo et audio, donc sans perte de qualité:

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

Si vous voulez que FFmpeg convertisse automatiquement la vidéo et l'audio:

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

Mon conseil: utilisez mpeg4 + mp3 dans un conteneur avi.

16
Ken

Essayez d'utiliser ffmulticonverter. Très utile pour moi: c'est une sorte d'interface graphique pour ffmpeg et vous pouvez facilement définir tous les paramètres. De plus, vous pouvez trouver une liste de tous les formats vidéo possibles.

LP

1
user155915