Konvertieren Sie ein Video durch Zuschneiden und Ändern der Größe auf eine feste Bildschirmgröße

13

Ich habe versucht, das selbst herauszufinden, aber die Vielzahl der Möglichkeiten verwirrt mich einfach.

Ich möchte im Idealfall entweder ffmpegoder mencoder(oder etwas anderes, aber die beiden, von denen ich weiß, dass sie funktionieren) verwenden, um eingehende Videos in eine feste Bildschirmgröße zu konvertieren.

Wenn das Video breiter oder zu kurz ist, können Sie es in der Mitte zuschneiden. Wenn es dann nicht die richtige Größe ist, ändern Sie die Größe nach oben oder unten, um genau die festgelegte Bildschirmgröße zu erhalten.

Das Letzte, was ich brauche, ist 720x480 in einem XVid-AVI mit einem MP3-Audiotrack.

Ich habe viele Seiten gefunden, auf denen gezeigt wird, wie die Größe auf eine maximale Auflösung angepasst werden kann, aber ich benötige ein Video mit genau dieser Auflösung (mit abgeschnittenen zusätzlichen Teilen, ohne schwarze Balken).

Kann mir jemand sagen, dass die Befehlszeile ausgeführt werden soll - oder kann ich mich zumindest einigermaßen dort hin bewegen? Wenn es mehrere Befehlszeilen sein müssen (führen Sie X aus, um die Auflösung zu erhalten, führen Sie diese Berechnung aus und führen Sie dann Y mit der Ausgabe dieser Berechnung aus), kann ich das skripten.

Andy Jeffries
quelle

Antworten:

21

So etwas sollte mit den richtigen Parametern für jeden Fall funktionieren:

Hinweis: Die ursprüngliche Antwort wurde unter folgendem Link veröffentlicht: Wie kann ich ein Video mit ffmpeg zuschneiden? das ursprünglich von mir gepostet und mehrfach bearbeitet wurde, um es auf die neuesten optionen in den neuesten versionen von ffmpeg zu aktualisieren. Vielen Dank an Slhck , Jonathan. , Anton Rudeshko , LordNeckbeard und zukünftige Betreuer.


Verwenden Sie in neueren Versionen von FFmpeg den cropFilter :

ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4

Wo die Optionen wie folgt sind:

  • out_w ist die Breite des Ausgaberechts
  • out_h ist die Höhe des Ausgaberechts
  • xund ygeben Sie die linke obere Ecke des Ausgaberechts an

Original Bild

Original Bild
Ursprüngliches Bild 320x240

Beispiel 1

80x60

So schneiden Sie einen 80 × 60-Abschnitt ab Position (200, 100) zu:

ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4
  • In diesem Beispiel wird das Audio per Stream kopiert , sodass eine Neucodierung vermieden wird.

Beispiel 2

rechtes unteres Viertel

So beschneiden Sie das untere rechte Viertel:

ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4

Dies ist dasselbe wie:

ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4

Welches ist das gleiche wie:

ffmpeg -i in.mp4 -filter:v "crop=240:120:240:120" -c:a copy out.mp4
  • Sie können mit in_wund auf die Größe des Eingabebilds verweisen, in_hwie in diesem ersten Beispiel gezeigt. Die Ausgabebreite und -höhe kann auch mit out_wund verwendet werden out_h.

Beispiel 3

20 Pixel von oben und 20 Pixel von unten

Beschneide 20 Pixel von oben und 20 Pixel von unten:

 ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4
  • Der Filter wird automatisch zentriert die Ernte , wenn xund yist wie in diesem Beispiel weggelassen.

Vorschau

Sie können eine Ernte (heh heh) nehmen und sie live in der Vorschau anzeigen mit ffplay:

ffplay -i input -vf "crop=in_w:in_h-40"

Auf diese Weise können Sie experimentieren und den Zuschnitt anpassen, ohne ihn codieren, anzeigen und wiederholen zu müssen.

Anmerkungen

  • crop Filterdokumentation

  • Der Standard-Encoder für MP4 ist libx264(H.264-Video) oder mpeg4(MPEG-4 Part 2-Video), abhängig von Ihrem ffmpegBuild. Weitere Informationen finden Sie im FFmpeg Wiki: H.264 Video Encoding Guide .

  • Anstatt das Format zu beschneiden und neu zu codieren, sollten Sie es bei der Wiedergabe beschneiden. Dies ist mit jedem Spieler möglich, der es wert ist, benutzt zu werden.

  • Alte ffmpegbaut gebrauchte -croptop, -cropbottom, -cropleft, -croprightOptionen anstelle des cropFilters. Wenn dies für Sie der Fall ist, dann holenffmpeg Sie sich ein modernes . Die Entwicklung ist sehr aktiv und es gibt keinen Grund, eine Antiquität zu verwenden.

Geppettvs D'Constanzo
quelle
Zusätzliche Punkte für die Vorschau, mit ffplaydenen das ffmpegZuschneiden der Videobildschirmgröße in der Praxis funktioniert.
SpeedCoder5