Ich bin neu in FFmpeg (Windows) und brauche Hilfe.
Ich möchte meine MKVs mit möglichst geringem Qualitätsverlust auf MP4 umstellen. Die MKVs werden mit MakeMKV hergestellt und enthalten unter anderem DTS-Soundtrack. Sie sind verlustfrei. Der Grund, warum ich konvertieren möchte, ist, dass ich vorhabe, es auf iPads und Apple TV zu streamen. iPads unterstützen keine DTS und MKVs. Die MKVs sind sowohl DVDs als auch Blu-Ray. Die MKVs enthalten Videos, Soundtracks und Untertitel.
Ich habe es versucht, bekomme aber aufgrund des DTS-Soundtracks keinen Sound:
ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4
Kann mir jemand helfen?
Welche Codecs soll ich verwenden? MP4 ist das Beste für Apple?
ffmpeg -i input.mkv
wird ausreichen.Antworten:
MP4 ist in der Tat das beste Format für Apple-Geräte und -Software. DTS wird in der Tat auch nicht unterstützt, viele MP4-Videodateien enthalten zwei Audiospuren, eine DTS- und eine AAC.
Es stehen mehrere Encoder zur Verfügung, die alle im ffmpeg-Wiki dokumentiert sind . Welcher Codec verfügbar ist, hängt davon ab, wie ffmpeg kompiliert wurde. libfdk_aac liefert die besten Ergebnisse, ist jedoch nicht immer verfügbar, da dieser Codec nicht kostenlos ist.
Dinge, die Sie ausprobieren können (ich stelle sie in die Reihenfolge meiner wahrgenommenen Qualität, am besten zuerst)
Wenn Sie auch die DTS-Spur beibehalten möchten, verwenden Sie das
-map
Flag.Nicht direkt für OP, aber der OS X-Programm- Subler macht diesen Prozess sehr einfach.
EDIT: Kommentare tl; dr? OP löste das Problem mit dem folgenden Befehl
TIPP: Wenn
-c:s copy
Untertitel nicht funktionieren, versuchen Sie es-c:s mov_text
.Hat mich mehrfach gerettet.
quelle
libfdk
undlibfaac
)-c:a aac -q:a 6
Einstellungen ausprobiert und das Ergebnis mit verglichen.-c:a libfaac -b:a 192k
Meiner Meinung nach liefert der aac- Codec bessere Ergebnisse als libfaac . Da sich die Codecs jedoch in der Entwicklung befinden, kann sich dies ändern. libfdk_aac wird wahrscheinlich noch bessere Ergebnisse liefern, aber ich habe es momentan nicht verfügbar.Ich weiß, dass dies eine alte Frage ist - und bereits eine Antwort hat -, aber ich wollte einige Befehle, die ich verwende, mit FFmpeg unter macOS teilen.
Ein x264-Video-codiertes MP4 mit AAC-Audio von einem MKV
Grundlegende Konvertierung eines MKV mit einem MP4 darin, aber Konvertieren des Audios in AAC bei 128k. Beachten Sie die Zuordnungen:
-map 0:0
bedeutet die erste (0
) Spur von der Quelleneingabe (0
) und-map 0:1
die zweite (1
) Spur von derselben Quelleingabe (0
). Ich mache das gerne in Fällen, in denen es mehrere Audiospuren gibt, also könnte ich so etwas wie auswählen-map 0:3
, um die dritte Spur zu bekommen.Ein HEVC / x265-Video, das MP4 mit AAC-Audio von einem MKV codiert
Dies ähnelt dem obigen x264-Befehl, verwendet jedoch stattdessen HEVC / x265, um eine kleinere Dateigröße mit dem gleichen - wenn nicht sogar qualitativ besseren - Video von der Quell-MKV zu erhalten. Beachten Sie, dass ich iOS-Videos bei Verwendung von HEVC / x265 lieber auf 720 skaliere. Die Qualität für die Wiedergabe ohne zu viel Rauschen ist auf meinem MacBook, iPad und iPhone solide. Stellen Sie nur sicher, dass Ihre Hardware und Ihr Betriebssystem die HEVC / x265-Wiedergabe unterstützen. Und seien Sie gewarnt: HEVC / x265 ist sehr CPU-intensiv. Wenn Ihr Computer also nicht über viel CPU-Leistung verfügt, kann es ungefähr einen Tag dauern, bis 90 Minuten Video codiert sind.
Hier finden Sie eine Aufschlüsselung aller anderen Kernparameter als Eingabe- und Ausgabedateien.
-vf scale=-1:720
: Skalieren Sie das Video auf 720 Höhe und berechnen Sie automatisch die Breite. Beachten Sie, dass FFmpeg möglicherweise einige MKVs aus Gründen erstickt, die mir nicht 100% klar sind. Sie müssten daher die Breite explizit wie folgt einstellen :-vf scale=1280:720
. Experimentieren Sie und sehen Sie, was für Sie funktioniert.-c:v libx265 -crf 20
: Daslibx265
ist der Videocodierungscodec. Das-crf 20
ist der CRF (Constant Rate Factor) . Die Standard-CRF, wenn Sie sie nicht angeben, ist 28, aber - ab sofort - finden Sie die Qualität ziemlich genau ... Meh. Ich bevorzuge 20, da es eine sehr gute Balance zwischen Qualität und Dateigröße ist.-threads 4
: Ich möchte Thread-Anzahl angeben. 4 ist das, was mein System jetzt verarbeiten kann, aber manchmal raste ich es auf 2 oder 3. Eine höhere Anzahl ist schneller, wenn Sie über genügend CPUs verfügen, um damit umzugehen.-tag:v hvc1
: Die magische Metadateneinstellung für iOS-Geräte zur ordnungsgemäßen Wiedergabe von HEVC / x265-Videos.Und das war es auch schon!
quelle