Mit 5 Bildern muss ich ein Video von 60 Sekunden in ffmpeg erstellen, jedes Bild muss 15 Sekunden lang angezeigt werden. Nach 15 Sekunden muss das erste Bild ausgeblendet und das zweite Bild eingeblendet werden. Nach dem Ausblenden des zweiten Bildes muss das dritte Bild eingeblendet werden. Bitte führen Sie mich, wie ich dies mit ffmpeg-Befehlen erreichen kann.
27
Antworten:
Nach schwarz tauchen / verblassen
Scrollen Sie für die Überblendmethode nach unten.
Beispiel, in dem jedes Bild 5 Sekunden lang angezeigt wird und jedes eine Überblendung von 1 Sekunde hat. Jeder Bildeingang hat die gleiche Breite, Höhe und das gleiche Seitenverhältnis. Wenn sie unterschiedlich groß sind, siehe Beispiel 3 unten.
MP4-Ausgang
Mit Audio
Wie oben, jedoch mit Audio:
Für Eingabebilder mit variierenden oder willkürlichen Größen
Wie das erste Beispiel, jedoch mit Eingabebildern, die sich in Breite x Höhe unterscheiden. Sie werden so gepolstert, dass sie in eine Box mit einer Größe von 1280 x 720 passen:
Sehen Sie sich die Beispiele unter Ändern der Größe von Videos an, um sie in einen Player mit statischer Größe zu passen, wenn Sie anstelle eines Pads (Letterbox / Pillarbox) einen Ausschnitt erstellen (den Bildschirm ausfüllen) oder eine Hochskalierung verhindern möchten.
GIF-Ausgabe
Fügt die Filter von Wie konvertiere ich ein Video mit ffmpeg in GIF mit angemessener Qualität?
Verwenden Sie die
-loop
Ausgabeoption, um die Anzahl der GIF-Schleifen zu steuern. Standard ist Endlosschleife, wenn diese Option nicht verwendet wird. Ein Wert von-1
ist keine Schleife.Verwendete Optionen und Filter:
-t
um die Dauer in Sekunden für jeden Eingang einzustellen.-loop 1
Schleifen Sie das Bild, da es sonst eine Dauer von 1 Frame hat.-framerate
um die Bildrate für die Eingabe festzulegen (Standardeinstellung, wenn nicht deklariert, ist 25). Nützlich für die Erstellung von GIF.Skalieren Sie mit dem Pad , um die Eingabebilder in eine bestimmte, einheitliche Größe zu bringen (verwendet in Beispiel 3).
Ein- und Ausblenden.
d
ist die Dauer der Überblendung.st
ist, wenn es anfängt.concat , um jedes Bild zu verketten (oder zu "verbinden").
Format zur Ausgabe eines Chroma-Subsampling-Schemas, das mit nicht auf FFmpeg basierenden Playern kompatibel ist, wenn MP4 ausgegeben und mit libx264 codiert wird (der Standardcodierer für MP4-Ausgabe, wenn dies von Ihrem Build unterstützt wird).
Teilen , um Kopien einer Filterausgabe zu erstellen. Wird von den * -Filtern der Palette benötigt, um alles in einem Befehl auszuführen.
palettegen und paletteuse für das Bilden des nett aussehenden GIF.
Überblenden
Beispiel, in dem jedes Bild 5 Sekunden lang angezeigt wird und jedes eine Überblendung von 1 Sekunde hat. Jeder Bildeingang hat die gleiche Breite, Höhe und das gleiche Seitenverhältnis. Wenn sie unterschiedlich groß sind, passen Sie Beispiel 3 an.
MP4-Ausgang
Mit Audio
Überblendung zwischen zwei Videos mit Audio
Wählen Sie aus jedem Eingang ein 5-Sekunden-Segment und fügen Sie eine 1-Sekunden-Überblendung hinzu:
GIF-Ausgabe
Verwenden Sie die
-loop
Ausgabeoption, um die Anzahl der GIF-Schleifen zu steuern. Standard ist Endlosschleife, wenn diese Option nicht verwendet wird. Ein Wert von-1
ist keine Schleife.quelle
-t
in-loop 1 -t 1 -i 001.png
definiert die Dauer des einzelnen Frames, und dass die NummernT/
infilter_complex
Block des Übergangs der Dauer definiert? Und wird die Rahmendauer in diesem Beispiel einschließlich der Übergangsdauer gezählt oder nicht?-preset ultrafast
.melt
.concat=n=9
teil des befehls9
kommt das aus den 5 bildern im beispiel + 4 übergänge zwischen den bildern. Wenn Sie eine andere Anzahl von Bildern bearbeiten, müssen Sie diese entsprechend anpassen.Ich habe ein allgemeines Bash-Skript geschrieben, das einen Pfad zu einem Ordner mit Bildern aufnimmt und ein Crossfade-Video mit ffmpeg ausgibt:
https://gist.github.com/anguyen8/d0630b6aef6c1cd79b9a1341e88a573e
Das Skript betrachtet im Wesentlichen die Bilder in einem Ordner und druckt einen Befehl aus, der der Antwort von @LordNeckbeard oben ähnlich ist, und führt den Befehl aus. Dieses Skript hilft, wenn Sie viele Bilder in einem Ordner haben und nicht manuell einen bedrückend langen Befehl eingeben möchten.
quelle