Overlay-timelapse-video auf einfarbigem hintergrund Farbe mit ffmpeg
Habe ich eine Ladung screenshots, die eine homepage mit dem Namen homescreen000001.png
, homescreen000002.png
, etc und ich versuche zu schaffen, ein Zeitraffer-video von diese Bilder mit ffmpeg.
Habe ich es in allgemein, wenn ich führen Sie die folgenden:
ffmpeg -f image2 \
-i ~/Desktop/homescreen%06d.png \
-r 0.5 \
-s 1440x900 \
-b:v 1M \
-vcodec libx264 \
-pix_fmt yuv420p \
~/Desktop/timelapse.mp4
Jedoch, es stellt sich heraus, dass einige der Bilder haben einen transparenten hintergrund, sodass der hintergrund zeigt sich, wie schwarz auf die Bilder.
Ich würde gerne einen weißen hintergrund, so dass ich versucht habe zu setzen, die sich mit ffmpeg wie folgt:
ffmpeg -f image2 \
-loop 1 \
-i ~/Desktop/whitebg.png \
-i ~/Desktop/homescreen%06d.png \
-filter_complex overlay \
-r 0.5 \
-s 1440x900 \
-b:v 1M \
-vcodec libx264 \
-pix_fmt yuv420p \
~/Desktop/timelapse.mp4
Hier whitebg.png
ist 2px x 2px png mit einem weissen hintergrund, und das ist es.
Diese ffmpeg-Befehl erzeugt eine wirklich winzige (in der Dateigröße) video-das ist nur ein weißer hintergrund.
Kann mir jemand erklären, wie ich kann die overlay-Bilder als Zeitraffer-video über einen weißen hintergrund mit ffmpeg?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktioniert bei mir mit einer Serie von Bildern, die alle enthalten die Transparenz mit einem aktuellen build von
ffmpeg
, aber du hast nicht die komplette Ausgabe der Konsole, die würde haben nützliche Informationen, die Sie möglicherweise haben gezeigt, dass der Grund, warum es nicht wie erwartet funktioniert hat.Können Sie die color source filter als hintergrund:
Müssen Sie manuell zur Verfügung stellen, die input-Größe für die color source filter, aber Sie können ein Skript erstellen, indem Sie mit
ffprobe
zu Holen Sie sich die Bild-frame-Größe, wie gezeigt, in FFprobe-Tipps.Beachten Sie, dass durch
-r 0.5
frames verworfen werden, um Platz für diese Ausgabe-Framerate, da standardmäßig die Eingabe-r 25
. Dies kann oder kann nicht wünschenswert sein.Erklärt, eine bitrate und mit nur einem pass ist im Allgemeinen nicht empfohlen. Verwenden
-crf
stattdessen, wie gezeigt, in der FFmpeg und H. 264-Encoding-Guide.Stack-Überlauf ist für Fragen zur Programmierung nur.
ffmpeg
cli-Nutzung Fragen, die gestellt werden sollte, auf Super-User.Können Sie ersetzen die transparenten Pixel mit weißer diejenigen mit ImageMagick so:
oder für ein ganzes Verzeichnis (mit output-Dateien in ein Unterverzeichnis namens
output
) wie folgt:Bitte erst sichern!
ImageMagick ist hier obwohl es bereits installiert ist auf vielen Linux-Distributionen.