Both electrical and software synchronization is required. See below for more instructions.

Electrical Wiring Guide

Overview

This mode is designed for those who are not using an External Clock Signal.

In this mode, you utilize one camera in leader mode (outputting a synchronization signal) and the remaining cameras in follower mode.

Leader/Follower Firmware Guide

Click here to see our guide to update your camera between Leader mode or Follower mode.

Wiring

Example

An example of the wires from two cameras being connected for frame-synchronization

Synchronized Stitched Video

1

Install required packages

Install the following packages on Linux:

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

List current camera devices

Run the following command to list your current camera devices:

v4l2-ctl --list-devices

Example output:

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

Create virtual device

Find the device ID of the two cameras you would like to utilize, and then choose a device ID number that is not listed.

In our case, the number we are choosing is 9, since it is not used above.

We will use this unused device ID for the virtual device we are going to create.

Here, we create a virtual device for two stitched videos. We use the output ID of 9 and virtual device name of stellarHD_stitched.

Using the following command, you can replace 9 with your chosen device ID:

sudo modprobe v4l2loopback video_nr=9 \
card_label=stellarHD_stitched exclusive_caps=1
4

Launch gstreamer pipeline

Launch the gstreamer pipeline to create the stitched video and output the video stream to the virtual device created.

Use the following command:

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

Note, you will need to keep this command running while using the synchronized, stitched videos. You can modify this command to add more cameras, change resolutions and framerates, or change layouts as you wish.

6

Remove loopback device

To remove the loopback device, you can either restart your device or use the following commands:

1

Retrieve any programs still using the loopback device

sudo lsof /dev/video*
2

Use the PID (Process ID) number(s) obtained in the previous step and kill the processes

sudo kill INSERT_PID_NUMBER
3

Remove the loopback device

sudo modprobe -r v4l2loopback