24-26 September 2023
Palexco
Europe/Madrid timezone

Building your own USB camera with GStreamer

26 Sep 2023, 15:15
40m
Room 2 (Palexco)

Room 2

Palexco

Speaker

Michael Grzeschik

Description

USB cameras are commonly used in desktops and laptops for streaming video or
participating in video conferences. Thus, USB is more or less the standard for
connecting a camera to a PC.

Linux allows to turn hardware that has a USB device controller (UDC), for example the
Rapsberry Pi 4, into a USB peripheral. The kernel provides a number of
different USB gadgets to implement various USB device classes. One of them is
the UVC (USB Video Class) gadget to implement an USB camera.

However, correctly configuring such a system and passing a video stream to the
USB gadget is not that easy. Fortunately, the new uvcsink element allows you to
easily stream an arbitrary GStreamer video pipelines into the UVC gadget and,
thus, to any USB host system.

Michael will show you how to prepare a system as a UVC gadget and stream video
data to an UVC host using a simple GStreamer pipeline like "gst-launch-1.0
videotestsrc ! uvcsink". He will also give some insight into the implementation
details of the uvcsink element.

Speaker bio Kernel and Userspace Developer at Pengutronix

Primary author

Presentation Materials

2024 Platinum Sponsor
Collabora
2024 Gold Sponsors
Arm
Google
Microsoft
NVIDIA
2024 Silver Sponsors
AMD
FEX-Emu
Igalia
Qualcomm
The Linux Foundation
2024 Bronze Sponsors
CodeWeavers
Khronos Group
Libre Computer