it-swarm.com.de

Wie erstelle ich ein Stop-Motion- oder Zeitraffer-Video mit einer Webcam?

Ich habe eine Webcam, die als v4l2-Gerät funktioniert.

Was ist der bequemste Weg, um ein Stop-Motion- oder Zeitraffer -Video aufzunehmen?

N.B.

stop-Motion und Zeitraffer sind verwandt, aber konzeptionell unterschiedlich.

In Zeitraffer machst du ein Foto von einer Szene in einem festgelegten Intervall und kombinierst es dann zu einem Video (das sieht so aus, als würde es sehr schnell gehen).

In Stop-Motion steuern Sie die Szene und nehmen für jede vorgenommene Änderung ein Bild auf, um eine Animation zu erstellen (z. B. Wallace und Grommit).

Eine Anwendung für Zeitraffer muss in der Lage sein, in einem festgelegten Intervall ein Foto aufzunehmen.

27
Seppo Erviälä

Millionen von Bildern aufnehmen.

Der erste Schritt ist die Aufnahme von Bildern. Stellen Sie sich vor, Sie möchten alle 10 Sekunden ein Foto aufnehmen und dieses in einem Verzeichnis auf Ihrem Desktop speichern

mkdir ~/Desktop/cap
cd ~/Desktop/cap

Wir verwenden streamer, um das Capture zu erstellen, also installieren wir es:

Sudo apt-get install streamer

Und jetzt wollen wir einfangen

streamer -o 0000.jpeg -s 300x200 -j 100 -t 2000 -r 1

-t ist die Anzahl der Bilder, die wir aufnehmen möchten. -r ist Bilder pro Sekunde. Das sollte also einen Frame pro Sekunde erfassen. Wenn Sie das zu einem 30-fps-Video komprimieren, wird eine Minute Aufnahme zu 2 Sekunden Video. Je nachdem, wie viel Video Sie ausgeben möchten, sollten Sie dies entsprechend abstimmen.

Diese Zeile liefert 2000 Bilder, die Aufnahme dauert eine halbe Stunde und erzeugt mit 30 Bildern pro Sekunde etwas mehr als eine Minute Video.

Alles zusammen

Ich werde ffmpeg verwenden. Es gibt viele verschiedene Arten, es zusammenzustellen, einschließlich mencoder, aber ich bevorzuge einfach ffmpegs Lebensperspektive. Nach der Installation (Sudo apt-get install ffmpeg) haben Sie Folgendes herausgespielt:

ffmpeg -r 30 -i %04d.jpeg -s hd480 -vcodec libx264 -vpre hq time-lapse.mp4

Die Qualitätseinstellungen dort sind nicht mit denen meiner Webcam vergleichbar. Vielleicht möchten Sie mit den Optionen viel mehr herumspielen, um eine bessere Codierung zu erzielen, aber das sollte Ihnen ein nettes 30-fps-Video generieren, das in x264 komprimiert ist.

Vielleicht möchten Sie mit der Framerate (-r) herumspielen, aber ich würde nicht unter 15fps fallen.

39
Oli

Verwenden Sie Bewegung, um alle X Sekunden einer Webcam zu erfassen.

motion installieren

Sudo apt-get install motion oder Sudo aptitude install motion

Konfigurieren Sie die Bewegung für alle X Sekunden

Sudo nano /etc/motion/motion.conf

Ändern Sie die Variablen minimum_frame_time und snapshot_interval auf die gleiche Anzahl von Sekunden, die Sie mit der Webcam aufnehmen möchten.

10 Minuten = 600 Sekunden
20 Minuten = 1200 Sekunden
30 Minuten = 1800 Sekunden
1 Stunde = 3600 Sekunden
2 Stunden = 7200 Sekunden und so weiter ...

bewegung ausführen mit Sudo motion anhalten mit CTRL+C

HINWEIS - Konfigurieren Sie motion.conf so, dass die Dateien in einem anderen Verzeichnis als dem Standardverzeichnis/tmp gespeichert werden. Zum Beispiel Ihren privaten Ordner. Da das Gehen zu/tmp mehr Privilegien erfordert. In der motion.conf finden Sie auch viele nützliche Optionen für viele andere Dinge, die Sie vielleicht mögen.

8
Luis Alvarado

gTimelapse ( Download-Link )

enter image description here

Eine Anwendung zum Aufnehmen von Bildern zur Erzeugung von Zeitraffervideos, die auf den Bibliotheken gPhoto2 und wxWidgets basiert.

Anweisungen kompilieren

Laden Sie den Quellcode von der sourceforge-Website herunter

in einem Terminal geben Sie Folgendes ein:

cd Downloads 
gunzip gtimelapse-0.1.tar.gz
tar -xvf gtimelapse-0.1.tar
cd gtimelapse
Sudo apt-get install build-essential libgphoto2-2-dev libwxbase2.8-dev libwxgtk2.8-dev gphoto2
./configure
make
Sudo make install

So führen Sie den Anwendungstyp aus

gtimelapse &

n.b. 1

gphoto2 --list-cameras | more

n.b. 2

siehe hierzu Blog für weitere nützliche Informationen

listet alle kompatiblen Geräte auf, die von der Anwendung unterstützt werden

n.b. 3

Ich habe gelesen, dass gphoto2 keine Webcams unterstützt - ich werde diese Antwort trotzdem sichtbar lassen, nur für den Fall, dass jemand diese Antwort mit einer anständigen Digitalkamera anstelle einer Webcam ausprobieren möchte.

7
fossfreedom

Der beste und einfachste Weg, dies zu tun, ist die Installation von Motion . Es ist eine umfassende Überwachungssoftware für Linux-basierte Betriebssysteme.

Install via the software center

1
Vesa

Ich habe Stopmotion verwendet, um dies zu tun, es befindet sich im Software-Center. Sie können auch mit Cheese aufnehmen, müssen jedoch die Konfiguration von Cheese ändern, um die maximale Anzahl von Bildern zu erhöhen. Ich fand es am einfachsten, Stopmotion für den gesamten Prozess zu verwenden.

1
Tom Brossman

Sie sollten in der Lage sein, motion (in motion.conf) für das Streaming einzurichten. Standardmäßig erfolgt das Streaming über Port 8081. Sie müssen dann nur noch VLC, "Open Network Stream" und "Open Network Stream" öffnen, um Ihren "Rückspiegel" zu erhalten Zeigen Sie auf http: // localhost: 8081 .

0
Derek

Camorama ist ein Webcam-Viewer/-Recorder, mit dem ich in Abständen von 1 Minute Bilder von meiner Webcam auf einen Webserver hochgeladen habe. Es ist eine einfache Einrichtung. Es ist auch im Ubuntu Software Center verfügbar oder kann folgendermaßen installiert werden:

Sudo apt-get install camorama

Hoffe das hilft.

0
kicsyromy

Eine schnelle, schmutzige, aber etwas flexiblere Option ist wie folgt:

ffmpeg -pattern_type glob -framerate 25 -i 'image-*.jpg' -c:v libx264 \
    -profile:v high -crf 20 -pix_fmt yuv420p output.mp4

Hier füge ich -pattern_type glob mit dem Platzhalter * hinzu und setze meinen Dateinamen in einfache Anführungszeichen: 'image-*.jpg'.

Der Vorteil: Diese Syntax ermöglicht es Ihnen, bei einer beliebigen Nummer zu beginnen und ein beliebiges Muster in Ihrer Nummerierung zu haben Beispiel).

Die Nachteile: Mit dieser Syntax können Sie keine sich wiederholenden Zahlen überspringen, wie es die '% ## d'-Syntax zulässt. Sie können auch kein Nummerierungsschema ohne vorangestellte 0s haben. Das heißt, das Dateinamensschema muss etwa 00001, 00002, ... 00033 ... lauten (die Nummerierung darf nicht 1,2,3, ... 33, ... lauten, sonst wird die Nummer '3' sortiert '39' und '40' zum Beispiel).

Beachten Sie auch, dass ich den Namen meiner Eingabedatei in einfache Anführungszeichen setzen musste, da ffmpeg sonst versuchte, alle meine Bilddateien mit einer Kopie des ersten Bildes zu überschreiben (Es ist immer eine gute Idee, vor der Bearbeitung von Dateien eine Sicherungskopie zu erstellen ).

Von diese Änderung von einem anonymen Benutzer.

0
Tim