Zum Hauptinhalt springen
Diese Dokumentation wird noch verbessert und ist in Arbeit!
Sowohl elektrische als auch softwareseitige Synchronisation sind erforderlich. Die detaillierten Anweisungen finden Sie unten.

Anleitung zur elektrischen Verdrahtung

Übersicht

Dieser Modus ist für Konfigurationen konzipiert, die kein externes Taktsignal verwenden.Sie verwenden eine Kamera im leader-Modus (die ein Synchronisationssignal ausgibt) und alle übrigen Kameras im follower-Modus.

Firmware-Anleitung Leader/Follower

Klicken Sie hier für unsere Anleitung zum Umschalten Ihrer Kamera zwischen Leader- und Follower-Modus.

Verdrahtung

Beispiel


Python-Bibliothek für synchronisierte Videos (Linux)

Zusätzlich zu unserem kommenden SDK bieten wir derzeit einen einfachen Python-Prozess an, um synchronisierte Frames aus Ihren Kamera-Setups abzurufen. (Hinweis: Dies wird in Zukunft möglicherweise zugunsten des vollständigen SDK eingestellt.)

Python-Bibliothek für synchronisierte Videos

Folgen Sie unserer GitHub-Anleitung, um unsere benutzerdefinierte Linux-Python-Bibliothek zu installieren und zu verwenden.

Synchronisiertes zusammengefügtes Video

Dieser Abschnitt behandelt die Verwendung von GStreamer, um zwei Videostreams zu synchronisieren und zusammenzufügen. Anschließend wird ein virtuelles Gerät erstellt, das in anderen Programmen verwendet werden kann.
1

Erforderliche Pakete installieren

Installieren Sie die erforderlichen Abhängigkeiten mit dem folgenden Befehl:
sudo apt install -y libx264-dev libjpeg-dev \
libglib2.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad gstreamer1.0-libav libgstreamer-plugins-bad1.0-dev \
gstreamer1.0-plugins-ugly gstreamer1.0-gl \
v4l-utils
2

Aktuelle Kamerageräte auflisten

Führen Sie den folgenden Befehl aus, um Ihre angeschlossenen Kameras zu finden:
v4l2-ctl --list-devices
Beispielausgabe:
stellarHD Leader: stellarHD Lea (usb-0000:00:14.0-8.3):
    /dev/video0
    /dev/video1
    /dev/media0

stellarHD Follower: stellarHD F (usb-0000:00:14.0-8.4):
    /dev/video2
    /dev/video3
    /dev/media1
3

Virtuelles Gerät erstellen

Identifizieren Sie die Geräte-IDs der beiden Kameras, die Sie verwenden möchten, und wählen Sie eine Geräte-ID-Nummer aus, die derzeit nicht aufgeführt ist.In diesem Beispiel verwenden wir 9 (da sie oben nicht verwendet wird), um ein virtuelles Gerät namens stellarHD_stitched zu erstellen. Passen Sie die 9 im folgenden Befehl an Ihre gewählte, nicht verwendete ID an:
sudo modprobe v4l2loopback video_nr=9 \
card_label=stellarHD_stitched exclusive_caps=1
4

GStreamer-Pipeline starten

Starten Sie die Pipeline, um das zusammengefügte Video zu erstellen und den Stream an Ihr neues virtuelles Gerät auszugeben:
gst-launch-1.0 -v \
compositor name=mix \
    sink_0::xpos=0    sink_0::ypos=0   sink_0::alpha=1 \
    sink_1::xpos=1600 sink_1::ypos=0   sink_1::alpha=1 \
! jpegenc ! jpegdec ! videoconvert ! v4l2sink device=/dev/video9 \
v4l2src device=/dev/video0 ! image/jpeg,width=1600,framerate=60/1 ! jpegdec ! videorate ! mix.sink_0 \
v4l2src device=/dev/video2 ! image/jpeg,width=1600,framerate=60/1 ! jpegdec ! videorate ! mix.sink_1
Sie müssen diesen Befehl während der Nutzung der synchronisierten, zusammengefügten Videos laufen lassen. Sie können den Befehl anpassen, um weitere Kameras hinzuzufügen, Auflösungen/Bildraten zu ändern oder das Layout zu verändern.
5

Das virtuelle Gerät in OpenCV verwenden

OpenCV-Startcode

Folgen Sie unserem Beispielcode, um /dev/video9 in OpenCV zu verwenden.
6

Loopback-Gerät entfernen

Um das Loopback-Gerät sicher zu entfernen, können Sie entweder Ihren Computer neu starten oder die folgende Befehlsfolge ausführen:1. Programme identifizieren, die derzeit das Loopback-Gerät verwenden:
sudo lsof /dev/video*
2. Die Prozesse mit ihren PID-Nummern (Prozess-ID) beenden:
sudo kill <PID_NUMMER_EINFÜGEN>
3. Loopback-Gerät entfernen:
sudo modprobe -r v4l2loopback