2012-11-30 06:38:03 +0000 2012-11-30 06:38:03 +0000
115
115

Ändern der Größe eines Videos, um es mit FFmpeg kleiner zu machen

Ist es möglich, die Größe meiner Videos mit FFmpeg zu ändern, um sie kleiner zu machen?

Ich habe ein Originalvideo mit den Abmessungen 1024x576, jetzt möchte ich die Größe des Videos auf 720x480 ändern, um die Anforderungen zu erfüllen.

Wie kann ich das tun?

Antworten (2)

182
182
182
2012-11-30 06:53:23 +0000

Das einfachste Beispiel ist dieses:

ffmpeg -i input.avi -s 720x480 -c:a copy output.mkv

Die Verwendung von dem Filter scale bietet mehr Flexibilität:

ffmpeg -i input.avi -filter:v scale=720:-1 -c:a copy output.mkv

Das -1 weist ffmpeg an, automatisch die richtige Höhe im Verhältnis zur angegebenen Breite zu wählen, um das Seitenverhältnis zu erhalten. -1 kann auch für die Breite verwendet werden, wenn Sie eine bestimmte Höhe angeben.


Ein Nachteil der Skalierung bei Verwendung von libx264 ist, dass dieser Encoder gerade Werte benötigt und die Skalierung automatisch einen ungeraden Wert wählen kann, was zu einem Fehler führt: width or height not divisible by 2. Sie können scale anweisen, einen geraden Wert für eine gegebene Höhe (720 in diesem Beispiel) zu wählen:

scale="trunc(oh*a/2)*2:720"

…oder eine gegebene Breite (1280 in diesem Beispiel):

scale="1280:trunc(ow/a/2)*2"

Beachten Sie, dass Ihr ffmpeg-Build sich darüber beschweren könnte, dass es die Optionen -c oder -filter nicht erkennt. Es kann auch sein, dass es scale nicht unterstützt. In diesem Fall sollten Sie ein neueres ffmpeg verwenden, das Sie als statisches Build herunterladen können , oder selbst kompilieren .

21
21
21
2018-02-24 06:57:24 +0000

Ich verwende die folgenden Befehle, um die Skalierung für Videos und Bilder vorzunehmen. Für feste Breite und Höhe -

ffmpeg -i input.avi -vf scale="720:480" output.avi

& und wenn Sie das Seitenverhältnis beibehalten wollen, geben Sie einfach die Höhe als -1 an und die Größe wird automatisch basierend auf der Breite angepasst -

ffmpeg -i input.avi -vf scale="720:-1" output.avi

Wenn Sie die Skalierung basierend auf der Eingabegröße vornehmen wollen, z. B. z.B. die Breite/Höhe um die Hälfte reduzieren möchten, können Sie dies tun -

ffmpeg -i input.avi -vf scale="iw/1:ih/2" output.avi

HINWEIS :

iw : input width
ih : input height

Static build kann heruntergeladen werden von - https://johnvansickle.com/ffmpeg/

Dokumentation : https://ffmpeg.org/ffmpeg.html#filter_005foption