Paparazzi UAS  v5.10_stable-5-g83a0da5-dirty
Paparazzi is a free software Unmanned Aircraft System.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
video_rtp_stream module

Video streaming for Linux based devices.

Works e.g. in conjunction with Parrot Drones where the autopilot is the Paparazzi autopilot. Features:

  • Sends a RTP/UDP stream of the camera image, a.k.a. live video
  • Possibility to save an image(shot) on internal or external storage space even in full size, best quality Example to add to ARdrone2 airframe with extra USB stick plugger in:

Example for airframe file

Add to your firmware section: This example contains all possible configuration options, not all of them are mandatory!

1 <module name="video_thread"/>
2 <module name="video_rtp_stream">
3  <define name="VIEWVIDEO_CAMERA" value="front_camera|bottom_camera" />
4  <define name="VIEWVIDEO_DOWNSIZE_FACTOR" value="4" />
5  <define name="VIEWVIDEO_QUALITY_FACTOR" value="50" />
6  <define name="VIEWVIDEO_USE_RTP" value="TRUE|FALSE" />
7  <configure name="VIEWVIDEO_USE_NETCAT" value="FALSE|TRUE" />
8  <configure name="VIEWVIDEO_HOST" value="192.168.1.255" />
9  <configure name="VIEWVIDEO_PORT_OUT" value="5000" />
10  <configure name="VIEWVIDEO_BROADCAST" value="FALSE|TRUE" />
11 </module>

Module configuration options

Configure Options

  • name: VIEWVIDEO_USE_NETCAT value: FALSE|TRUE
    Description: Use netcat for transfering images instead of RTP stream (default: FALSE)
  • name: VIEWVIDEO_HOST value: 192.168.1.255
    Description: GCS IP (default: MODEM_HOST)
  • name: VIEWVIDEO_PORT_OUT value: 5000
    Description: Port (default: 5000)
  • name: VIEWVIDEO_BROADCAST value: FALSE|TRUE
    Description: Enable broadcast of image stream (default: TRUE)

Define Options

  • name: VIEWVIDEO_CAMERA value: front_camera|bottom_camera
    Description: Video device to use
  • name: VIEWVIDEO_DOWNSIZE_FACTOR value: 4
    Description: Reduction factor of the video stream
  • name: VIEWVIDEO_QUALITY_FACTOR value: 50
    Description: JPEG encoding compression factor [0-99]
  • name: VIEWVIDEO_USE_RTP value: TRUE|FALSE
    Description: Enable RTP at startup for transfering images (default: TRUE)

Dependencies

Module functions

Init Functions

These initialization functions are called once on startup.

Files

Header Files

The following headers are automatically included in modules.h

Source Files

Raw video_rtp_stream.xml file:

<!DOCTYPE module SYSTEM "module.dtd">
<module name="video_rtp_stream" dir="computer_vision">
<doc>
<description>
Video streaming for Linux based devices.
Works e.g. in conjunction with Parrot Drones where the autopilot is the Paparazzi autopilot.
Features:
- Sends a RTP/UDP stream of the camera image, a.k.a. live video
- Possibility to save an image(shot) on internal or external storage space even in full size, best quality
Example to add to ARdrone2 airframe with extra USB stick plugger in:
</description>
<configure name="VIEWVIDEO_USE_NETCAT" value="FALSE|TRUE" description="Use netcat for transfering images instead of RTP stream (default: FALSE)"/>
<configure name="VIEWVIDEO_HOST" value="192.168.1.255" description="GCS IP (default: MODEM_HOST)"/>
<configure name="VIEWVIDEO_PORT_OUT" value="5000" description="Port (default: 5000)"/>
<configure name="VIEWVIDEO_BROADCAST" value="FALSE|TRUE" description="Enable broadcast of image stream (default: TRUE)"/>
<define name="VIEWVIDEO_CAMERA" value="front_camera|bottom_camera" description="Video device to use"/>
<define name="VIEWVIDEO_DOWNSIZE_FACTOR" value="4" description="Reduction factor of the video stream"/>
<define name="VIEWVIDEO_QUALITY_FACTOR" value="50" description="JPEG encoding compression factor [0-99]"/>
<define name="VIEWVIDEO_USE_RTP" value="TRUE|FALSE" description="Enable RTP at startup for transfering images (default: TRUE)"/>
</doc>
<settings>
<dl_settings>
<dl_settings name="video">
<dl_setting var="viewvideo.use_rtp" min="0" step="1" max="1" values="FALSE|TRUE" shortname="rtp" module="computer_vision/viewvideo" param="VIEWVIDEO_USE_RTP"/>
</dl_settings>
</dl_settings>
</settings>
<depends>video_thread</depends>
<header>
<file name="viewvideo.h"/>
</header>
<init fun="viewvideo_init()"/>
<makefile target="ap">
<file name="viewvideo.c"/>
<!-- Include the needed Computer Vision files -->
<include name="modules/computer_vision"/>
<file name="rtp.c" dir="modules/computer_vision/lib/encoding"/>
<!-- Define the network connection to send images over -->
<raw>
include $(CFG_SHARED)/udp.makefile
VIEWVIDEO_HOST ?= $(MODEM_HOST)
VIEWVIDEO_PORT_OUT ?= 5000
VIEWVIDEO_BROADCAST ?= TRUE
VIEWVIDEO_USE_NETCAT ?= FALSE
VIEWVID_CFLAGS = -DVIEWVIDEO_HOST=$(VIEWVIDEO_HOST) -DVIEWVIDEO_PORT_OUT=$(VIEWVIDEO_PORT_OUT)
ifneq (,$(findstring $(VIEWVIDEO_USE_NETCAT),0 FALSE))
ap.CFLAGS += $(VIEWVID_CFLAGS) -DVIEWVIDEO_BROADCAST=$(VIEWVIDEO_BROADCAST)
nps.CFLAGS += $(VIEWVID_CFLAGS) -DVIEWVIDEO_BROADCAST=FALSE
else
$(TARGET).CFLAGS += $(VIEWVID_CFLAGS) -DVIEWVIDEO_USE_NETCAT
endif
</raw>
</makefile>
</module>