So konvertieren Sie eine MKV zu AVI mit minimalem Verlust


23

Um eine MKV in AVI umzuwandeln, mache ich zwei Dinge. Das erste was ich mache ist das:

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

oder dieses:

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

In beiden Fällen wird MKV in eine AVI-Datei konvertiert. Das Problem ist jedoch, dass das Video aus irgendeinem Grund nicht reibungslos wiedergegeben wird. Das ist aber in Ordnung, denn wenn ich noch etwas tue, wird es behoben:

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

Nachdem ich dies getan habe, spielt die Datei ohne Problem. Ich hatte Erfolg damit für eine Datei, aber dann habe ich es für eine andere Datei versucht, und es gibt einen leichten, aber merklichen Verlust in der Videoqualität. Dies ist die Ausgabe, die ich bekomme, wenn ich den zweiten Schritt mache:

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

Ich habe im zweiten Schritt nur willkürlich große Einstellungen verwendet und es hat vorher gut funktioniert, aber in diesem Fall nicht. Welche Einstellungen soll ich verwenden?


Das gab mir ffmpeg für sameq: Die Option 'sameq' wurde entfernt. Wenn Sie nach einer Option suchen, um die Qualität beizubehalten (wofür -sameq nicht gedacht ist), verwenden Sie -qscale 0 oder eine entsprechende Option für den Qualitätsfaktor.
DavidG

Antworten:


25

Um nur den Video- und Audio-Bitstream zu kopieren, also ohne Qualitätsverlust:

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

Wenn FFmpeg Video und Audio automatisch konvertieren soll:

ffmpeg -i filename.mkv output.avi

7
Die Standardeinstellungen von FFmpeg sind in der Regel furchtbar. Hier finden Sie eine allgemeine Anleitung zum Codieren mit verschiedenen Codecs. Das FFmpeg-Wiki enthält ausführlichere Anleitungen.
Übelsuppe

Die erste mit Code erstellte Datei, die beschädigt war, wurde in VLC nicht abgespielt.
Codemirror

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

Mein vorschlag: verwende mpeg4 + mp3 im avi container.


1

Versuchen Sie, ffmulticonverter zu verwenden. Sehr nützlich für mich: Es ist eine Art GUI für ffmpeg und Sie können alle Parameter einfach einstellen. Außerdem finden Sie eine Liste aller möglichen Videoformate.

LP


-3

Darf ich eine Verknüpfung empfehlen, die ich regelmäßig verwende?

ffmpeg -i filename.mkv -sameq output.avi

4
sameq bedeutet nicht die gleiche Qualität und sollte nicht verwendet werden. Tatsächlich wurde es vollständig aus ffmpeg entfernt. Stellen Sie die Qualität lieber mit dem Ziel-Codec ein.
Slhck
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.