Wie bekomme ich die beste Qualität beim Konvertieren von mp4 zu avi mit ffmpeg?


11

Wenn ich das benutze, sieht die Qualität nicht schlecht aus.

ffmpeg -same_quant -i video.mp4 video.avi

In der ffmpegDokumentation steht: "Beachten Sie, dass dies NICHT DIE GLEICHE QUALITÄT ist. Verwenden Sie diese Option nur, wenn Sie wissen, dass Sie sie benötigen."

Erhalte ich -same_quantdie beste Qualität oder gibt es eine Option, die die gleiche Qualität wie die Eingabe bietet und mehr empfohlen wird?


Abhängig von den verwendeten Codecs (einige Codecs sind mit einigen Containern nicht kompatibel) können Sie die Streams jederzeit einfach kopieren ( -codec copy). Dies ist der beste Weg, um Qualitätsänderungen zu vermeiden, da Sie die Streams nicht neu codieren, sondern nur die Streams in einem anderen Container neu verpacken.
NJSG

Wenn ich das versuche, bekomme ich : Unknown decoder 'copy'.
Sid_com

3
Es scheint -codec copygehen zu müssen nach -i video.mp4 - können Sie versuchen ffmpeg -i video.mp4 -codec copy video.avi? ( -same_quantfunktioniert auch hier, wird aber nichts tun, da dies nur die Streams kopiert)
njsg

Informationen zur Platzierung der Befehlszeilenoptionen von ffmpeg finden Sie in der Dokumentation zu ffmpeg - 2 Beschreibung : Hier ein Auszug: In der Regel werden Optionen auf die nächste angegebene Datei angewendet . Daher ist Ordnung wichtig, ...
Peter.O

Danke! Jetzt mit -codec copyam richtigen Ort ist funktioniert.
Sid_com

Antworten:


14

(angepasst aus den obigen Kommentaren)

Abhängig von den verwendeten Codecs (einige Codecs sind mit einigen Containern nicht kompatibel) können Sie die Streams jederzeit einfach kopieren ( -codec copy). Dies ist der beste Weg, um Qualitätsänderungen zu vermeiden, da Sie die Streams nicht neu codieren, sondern nur die Streams in einem anderen Container neu verpacken.

Beim Umgang mit Audio- / Videodateien ist zu beachten, dass Container größtenteils unabhängig von den verwendeten Codecs sind. Es ist üblich, dass Personen Dateien als "AVI-Video" oder "MP4-Video" bezeichnen. Dies sind jedoch Container, die uns nur wenig darüber sagen, ob ein Player die Streams abspielen kann, abgesehen von technischen Einschränkungen (z. B. z. AVI kann Probleme mit h264 und Ogg Vorbis haben. Sie können jeden Codec verwenden.

-same_quantEs scheint eine Möglichkeit zu sein, ffmpeg anzuweisen, eine ähnliche Qualität zu erreichen, aber sobald Sie das Video neu codieren (zumindest mit verlustbehafteten Codecs), haben Sie keine Möglichkeit, dieselbe Qualität zu erzielen. Wenn Sie sich mit Qualität befassen, ist es eine gute Faustregel, die Streams nach Möglichkeit nicht neu zu codieren.

Um die Streams mit ffmpeg zu kopieren, gehen Sie wie folgt vor:

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

( Wie bei @ Peter.O erwähnt , ist die Reihenfolge der Optionen wichtig, daher -codec copymuss dies der Fall sein . Sie können zwar behalten -same_quant, dies hat jedoch keine Auswirkungen, da Sie die Streams nicht neu codieren.)


Ihre Lösung funktioniert bei mir. Ich sehe, dass dies avconvjetzt anstelle von ffmpegund tatsächlich empfohlen wird.
Faheem Mitha

3

Unter FreeBSD 8. 2 habe ich versucht, -codec zu kopieren, aber ich habe auch eine unbekannte Nachricht dekodiert. Nach Versuch und Irrtum fand ich die, die unter FreeBSD funktioniert:

ffmpeg -i video.mp4 -vcodec copy video.avi
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.