Wie erstelle ich ein Zeitraffervideo aus einer Sammlung von Fotos in Linux?

Ich möchte unter Ubuntu einen Zeitraffer aus einer Sammlung von Bildern erstellen. Ich möchte HD-Videos machen und idealerweise einen Soundtrack hinzufügen.

Das habe ich nicht gesehen. Ich kann diese Frage löschen und meine Antwort dort posten. Ist das in Ordnung?
Ich bin mir nicht einmal sicher, ob dies die beste Stackexchange-Site dafür ist. Ich möchte nur teilen, was ich getan habe.
Auf askubuntu.com gibt es eine ähnliche Frage . Die Antworten werden hier zum Zeitpunkt des Schreibens größtenteils behandelt, aber das kann sich in Zukunft natürlich ändern.

Antworten (6)

Ffmpeg wird es tun. Wenn Sie Bilder haben img001.jpg, img002.jpg, img003.jpg, ..., tun Sie Folgendes in der Befehlszeile:

ffmpeg -i img*.jpg output.mpeg

Es gibt mehr Optionen in den ffmpeg --helpManpages oder im Web. Diese ermöglichen die Kontrolle über die Bildrate und das Ausgabeformat.

Die Verwendung führt bei mir zu einem Fehler, da letztere .jpgDateien als Ausgabedatei betrachtet werden. Ich verstehe File 'DSCF6134.JPG' already exists. Overwrite ? [y/N]- nicht so toll. Meine Lösung bestand darin, eine Dateiliste mit zu generieren \ls *.JPG | sed "s/^/file '/;s/$/'/" > files.txtund diese dann mit zu laden ffmpeg -f concat -i files.txt output.mpeg.
Mit anderen ffmpeg-Versionen funktioniert die folgende Version, ohne zu versuchen, Bilder zu überschreiben:ffmpeg -pattern_type glob -i "picture*.jpg" output.mpeg

Zuerst benennen wir alle *.JPG-Dateien basierend auf ihrem Erstellungsdatum um. Manchmal ändern Kameras den Dateinamen oder nur die Reihenfolge ist irgendwie nicht das, was wir wollen. Das Umbenennen nach dem Erstellungsdatum funktioniert jedoch immer:

jhead -n%Y%m%d-%H%M%S *.JPG

Danach legen wir diese Liste in einer Datei ab:

ls -1tr | grep -v files.txt > files.txt

Und verwenden Sie dann mencoder, um ein AVIVideo mit 20 fps zu erstellen. Beachten Sie, dass dies eine riesige Videodatei erzeugt, die normalerweise etwa die gleiche Größe wie alle Bilder hat, die summiert werden.

mencoder -nosound -noskip -oac copy -ovc copy -o output.avi -mf fps=20 'mf://@files.txt'

Normalerweise fotografiere ich für Zeitraffer mit der niedrigsten Auflösung meiner Kamera (5 MP), die ein Seitenverhältnis von 4:3 hat. Um ein richtiges 1080p-Video zu erzeugen, wird das Bild zuerst auf eine Breite von 1920 Pixel neu skaliert und dann auf eine Höhe von 1080 beschnitten. Auf diese Weise ändere ich den Inhalt der Fotos nicht, sondern beschneide nur:

ffmpeg -i output.avi -y -sameq -vf scale=1920:1440,crop=1920:1080 output-final.avi

Der Grund, warum ich Mencoder verwende, um die Fotos zusammenzusetzen, ist, dass ich eine segmentation faultmit ffmpeg habe.

Für den Segfault wäre es hilfreich, Ihre Version von ffmpeg zu kennen.
Wenn Sie wie ich in 3:2 aufgenommen haben (meine D750-Standbilder sind 6016 x 4016) und es in 16: 9 (für 4k-Video) 3840 x 2160 benötigen, können Sie FFMPEG verwenden, um das Video zu pillerboxen und mit diesem Befehl schwarze Tramlinien an den Seiten aufzufüllen - ffmpeg -i output.avi -qscale 0 -vf "scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:(ow-iw)/2:(oh-ih)/2" output-final.avi - Video wird größer, aber kein Qualitätsverlust, da dies herunterskaliert wird
In Ihrem ffmpegBefehl wird die -sameqOption jetzt durch ersetzt-qscale 0

Blender ist eine gute Lösung, wenn Sie mit Bewegungszeitraffer (Hyperlapse) oder unruhigem Filmmaterial zu tun haben. Es verfügt über Bewegungsverfolgungsfunktionen, sodass Sie einen festen Punkt auswählen können, der während des gesamten Zeitraffers verfolgt werden soll. Sie können auch Rotationsprobleme beheben.

Vielleicht interessiert Sie auch das Projekt timelapse-darktable . Es macht es einfach, Bilder mit Darktable nachzubearbeiten und einen Zeitraffer der Serie zu erstellen. Anweisungen zur Verwendung finden Sie hier: https://code.google.com/p/timelapse-darktable/wiki/generateTimelapse

Sie können mencoder verwenden. Optionen sind ziemlich explizit:

  • Listen Sie alle Ihre Bilddateien auf.

Wenn sie sich alle im aktuellen Verzeichnis mit geordneten Namen befinden und Sie die Liste in der Datei /tmp/files.txt haben möchten:

ls -1 *jpg > /tmp/files.txt

  • Verwenden Sie mencoder mit der entsprechenden Option.

Wenn die Ausgabedatei /tmp/test.avi mit 30fps sein soll:

mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4 -o /tmp/test.avi -mf type=jpeg:fps=30 mf://@/tmp/files.txt

Kdenlive kann auch Zeitraffer über das Add Slideshow ClipMenü generieren, wie in diesem Tutorial erklärt .

Laut derselben Seite hat Openshot eine ähnliche Funktionalität, empfiehlt es aber nicht, weil es "viel zu fehlerhaft" ist. Wenn es sich jedoch um Ihren bevorzugten Videoeditor handelt, werden Sie erfreut sein zu wissen, dass Sie einfach eine Folge richtig benannter Dateien (001.jpg bis NNN.jpg) in ein Openshot-Fenster ziehen und dort ablegen können, um sie auch als Zeitraffer zu importieren.

Dieser Leitfaden stammt aus dem Jahr 2014. OpenShot hat sich in den letzten Jahren bewährt und ist jetzt viel zuverlässiger.