Wie kann ich ein 1080p-WMV-Video in ein 720p-Video konvertieren?

14

Ich habe ein 1080p-WMV-Video, das ich in ein Video mit geringerer Qualität (vorzugsweise 720p) konvertieren möchte. Ich möchte das Audio intakt halten. Wie kann ich das in Ubuntu erreichen?

James
quelle

Antworten:

16

Da Sie ein ffmpeg-Tag verwendet haben, werde ich das für die Antwort verwenden.

ffmpeg -i input.wmv -s hd720 -c:v libx264 -crf 23 -c:a aac -strict -2 output.mp4

Ändern Sie die Videoqualität, indem Sie einen anderen CRF-Parameter angeben. Weitere Informationen finden Sie im x264-Codierungshandbuch .

Duffydack
quelle
1
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.
Juanmah
Laut dem Wiki von ffmpeg kann dies so einfach sein wie:ffmpeg -i input.avi -vf scale=-1:720 output.avi
andersonvom
4

Seit der ursprünglichen Beantwortung dieser Frage im Jahr 2012 ist etwas mehr Zeit vergangen. Neuere Versionen von FFmpeg sollten besser den FFmpeg-Videofilter „scale“ verwenden.

Ich gebe unten ein Beispiel mit diesem Filter, der auch einfach die von Ihnen angeforderte Audiospur kopiert :

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a copy \
       output.mp4

Die -tune filmoben angegebene Option kann weggelassen werden oder Sie können es -tune animationje nach Art des verwendeten Videoclips versuchen .

Wenn Sie sich entschieden , dass Sie würde die Audio eine gute Wahl umcodiert werden wie die externe Bibliothek libfdk_aac verwenden würde wie folgt aussehen :

ffmpeg -i input.wmv \
       -c:v libx264 -preset veryslow -tune film -crf 22 -vf scale=-2:720 \
       -c:a libfdk_aac -b:a 128k \
       output.mp4

Dies ist sicherlich das, was ich mit einer WMV-Datei machen würde, die ich skaliert habe. Sie werden die Ergebnisse mehr als akzeptabel finden ...

andrew.46
quelle
1

Wenn Sie alle Audiospuren, Untertitel usw. intakt halten möchten, sollten Sie Folgendes verwenden:

ffmpeg -i input.mkv \
       -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 \
       -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow \
       -c:a:0 copy -c:a:1 copy -c:s copy \
       output.mkv

In diesem Fall enthält die Datei input.mkv zwei Audiospuren und zwei Untertitel. Sie können alle Audiospuren (oder Untertitel oder Videos usw.) einzeln oder als einzelne Entität angeben (wie für Untertitel angegeben).

Ich hoffe es hilft...

adsuar
quelle
1
Sie müssen nicht jeden Stream wie oben -map 0:0 -map 0:1 -map 0:2 -map 0:3 -map 0:4 angegeben angeben : Stattdessen können Sie -map 0stattdessen einfach angeben . Dadurch werden automatisch alle Streams in Eingang 0 ausgewählt. Ähnlich wie bei Audiokopie-Codecs. Die einzigen Codec-Optionen, die Sie angeben müssen, sind -c:copy -c:v libx264. Dies bedeutet: "Alle Stream-Codecs auf Kopieren einstellen, außer Video, das auf x264 umcodiert werden soll."
Cheekysoft
Äquivalent (zeigt die Reihenfolge der Parameter):ffmpeg -i input.mkv -map 0 -vf scale=-1:720 -c:copy -c:v libx264 -crf 18 -preset veryslow output.mkv
Cheekysoft