UVC Video Streaming (RTSP)

Table of contents

  1. Overview
  2. Requirements
    1. Hardware
    2. Target Software
    3. Host Software
  3. Setup Hardware
  4. Network Configuration
  5. Run Software on Target
    1. Starting FFmpeg
  6. Viewing Stream
    1. VLC
    2. QGroundControl

Overview

This user guide provides the necessary steps to get video streaming over RTSP network using a UVC (e.g. USB webcam like a Logitech C270) and the VOXL system.

In short, we’ll be doing the following:

  • Connect an HD USB webcam to the VOXL’s USB Hub
  • Use ffmpeg on the VOXL to stream the video to the host computer
  • Use either VLC or QGC on a host computer to view the video stream

Requirements

Hardware

Part Number Description Link
Host Computer Ground Control Station (Ubuntu 18.04)  
VOXL-DK VOXL Development Kit Purchase
MPS-00001-1 5V/6A Power Supply Purchase
MCBL-00009-1 USB Cable (Host, 4-pin JST to USB 2.0 Type A Female) Purchase
Camera USB Cable USB Cable included with camera (Mini USB)  

One of the following VOXL Add-on boards is required.

Part Number Description Link
VOXL-ACC-MH VOXL Microhard Modem Add-on Purchase
VOXL-ACC-HUB VOXL USB Expansion Board with Fastboot and Emergency Boot Purchase
VOXL-ACC-LTEH VOXL Cellular LTE and USB hub add-on Purchase

If you would like to stream video to QGroundControl, one of the two following boards is required.

Part Number Description Link
MCCA-M0018 Flight Core Purchase
MCCA-M0019 VOXL Flight (replaces need for VOXL-DK) Purchase

Target Software

ffmpeg is included as part of the VOXL-Suite.

Host Software

  • On the host computer, install VLC media player, which we’ll used to display the RTSP video:
sudo apt-get install vlc

Setup Hardware

  • Disconnect power from the VOXL
  • Attach the USB Hub accessory to VOXL J13
  • Attach the JST cable to the JST USB connector (J16 or J17)
  • Attach the Logitech C270 (or equivalent) UVC camera to the USB connector on the JST to USB Female A cable
  • Connect power to the VOXL

jst-connection

Network Configuration

  • Configure the VOXL as an Access Point (or connect it to a network)
    • instructions on how to do this are here
    • the default IP address of the device will be 192.168.8.1
  • Connect the host computer to the VOXL’s Access Point (default password is 1234567890) or to the same network you connected the VOXL to

Run Software on Target

Starting FFmpeg

  • SSH onto the target (see here for details) or ADB in using a micro-usb to USB cable
  • First, validate the the USB device is found using the lsusb command:
root@apq8096:~# lsusb
Bus 001 Device 003: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • Start ffmpeg with the following default command
ffmpeg -i /dev/video2 -f mpegts udp://QCS_IP:4242

Replace GCS_IP with the IP address of your host computer acting as the Ground Control Station.

FFmpeg has a large variety of flags that can be set in order to change the encoder settings and modify the resolution, framerate, bitrate, etc. of the video stream. The documentation can be found on the FFmpeg website.

Viewing Stream

VLC

  • On the host system, run the VLC software

  • Go to Media > Open Network Stream

  • Enter the following URL: udp://@:4242

  • Click Play to view the video stream

QGroundControl

Before attempting to view the video stream, follow these instructions on connecting to QGC: How to Connect QGroundControl to VOXL using WiFi

  • After your connection has been established to QGC, press the purple QGC logo in the top left corner in order to access the Application Settings menu.

  • Under the General tab, scroll down until you find the Video section.

  • Under the Video Source dropdown, choose MPEG-TS (h.264) Video Stream.

  • In the UDP Port field enter the default: 4242

  • You will now be able to view the video stream under QGC’s Fly view.