Das Problem ist, dass die Standard-Bitrate für MPEG-2 relativ niedrig ist (wie bei den meisten anderen Video-Encodern in ffmpeg, wobei der H.264-Algorithmus eine Ausnahme darstellt). MPEG-2 ist heutzutage auch als Codec nicht die beste Wahl.
Bessere Qualität für MPEG-2
Sie haben einige Möglichkeiten, wenn Sie mit MPEG-2 bleiben wollen:
Erhöhen Sie die Bitrate. Sie verwenden jetzt
-b:v 2500k
. Wenn es sich um HD-Videos handelt, werden Sie mit 2,5 MBit / s nicht weit kommen. Sie benötigen mindestens das Doppelte oder sogar mehr, damit das Ergebnis gut aussieht. Verwenden Sie beispielsweise-b:v 6000k -target pal-dvd
.Für 720p denke ich, dass Sie noch eine höhere Bitrate verwenden sollten. Denken Sie daran, dass DVDs MPEG-2 verwenden und für 2 Stunden Film ca. 4,7 GB groß sind, sodass Sie mit ca. 5–8 MBit / s rechnen müssen. MPEG-2 ist nicht sehr komprimierungswirksam und funktioniert bei höheren Bitraten besser.
Verwenden Sie eine bestimmte Qualitätseinstellung. Wechseln Sie
-b:v …
zu-qscale:v 2
. Die Zahl reicht hier von 1 bis 31 und höher bedeutet geringere Qualität. Es gibt keinen Sinn, der über 4 oder 5 hinausgeht. Wenn Sie sich nicht für die Bitrate interessieren, beginnen Sie mit 2 und sehen Sie, ob dies für Sie funktioniert.
Wenn Sie die Anzahl der B-Frames, die Bewegungsschätzungsmethode oder die GOP-Größe berücksichtigen, kann dies die Qualität etwas verbessern, führt jedoch nicht zu großen Änderungen.
Geräuschloses Audio
Verwenden Sie -f lavfi -i aevalsrc=0
diese Option, um einen stillen Audiostrom zu generieren. Zum Beispiel:
ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v mpeg2video -qscale:v 2 -c:a libmp3lame "out.mpg"
Sie müssen möglicherweise -target pal-dvd
den obigen Befehl hinzufügen, um eine bestimmte Puffergröße zu erzwingen.
Ich habe MP3 als Codec gewählt. MPEG-Dateien können kein anderes Audio als MPEG Layer I und II sowie PCM-Streams enthalten. Die Verwendung einer unbeaufsichtigten Ogg Vorbis-Datei funktioniert daher nur, wenn Sie auch den Audiostream konvertieren (was Sie bei der Verwendung nicht tun -c:a copy
). .
Verwenden Sie einen anderen Videocodec
Ich bin überrascht, dass ein Fernseher, der Videodateien abspielt, MPEG-2 liest, aber sonst nichts. Mindestens MPEG-4 Part II-Videos sollten unterstützt werden (das ist, was Sie als "DivX" - einen MPEG-4 Part II-Encoder) kennen. Sie könnten also versuchen:
ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v libxvid -qscale:v 2 -c:a libmp3lame "out.mp4"
Ihr Fernseher unterstützt möglicherweise auch H.264, jedoch nur ein bestimmtes Profil. Versuchen Sie es mit dem baseline
Profil:
ffmpeg -i "in.wmv" -f lavfi -i aevalsrc=0 -shortest -c:v libx264 -profile:v baseline -crf 23 -c:a aac -strict experimental "out.mp4"
Im obigen Beispiel habe ich die CRF-Option verwendet, um die Qualität anstelle von einzustellen qscale
. Weitere Informationen finden Sie in der H.264-Kodierungsanleitung .