Building your own USB camera with GStreamer
Action | Key |
---|---|
Play / Pause | K or space |
Mute / Unmute | M |
Toggle fullscreen mode | F |
Select next subtitles | C |
Select next audio track | A |
Toggle automatic slides maximization | V |
Seek 5s backward | left arrow |
Seek 5s forward | right arrow |
Seek 10s backward | shift + left arrow or J |
Seek 10s forward | shift + right arrow or L |
Seek 60s backward | control + left arrow |
Seek 60s forward | control + right arrow |
Seek 1 frame backward | alt + left arrow |
Seek 1 frame forward | alt + right arrow |
Decrease volume | shift + down arrow |
Increase volume | shift + up arrow |
Decrease playback rate | < |
Increase playback rate | > |
Seek to end | end |
Seek to beginning | beginning |
You can right click on slides to open the menu
Share this media
HLS video stream
You can use an external player to play this stream (like VLC).
HLS video stream
Subscribe to notifications
When subscribed to notifications, an email will be sent to you for all added annotations.
Your user account has no email address.
Information on this media
119 views
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.
Creation date:
Sept. 26, 2023
Speakers:
Michael Grzeschik
License:
CC BY-SA 3.0
Links:
Other media in the channel "GStreamer Conference 2023"
370 views, 124 this year, 4 this monthHow we are building a distributed multi-camera real-time sports tracking system using GStreamer and RustSeptember 26th, 2023
49 views, 8 this yearFlumes: Scan and index your multimedia filesSeptember 26th, 2023
302 views, 141 this year, 7 this monthGstWASM: GStreamer for the webSeptember 26th, 2023
86 views, 28 this yearVariations on a WebRTC relay architecture (featuring Janus and WebRTC{Src,Sink})September 26th, 2023
51 views, 12 this year, 1 this monthHYPE: HYbrid Parallel EncoderSeptember 26th, 2023
116 views, 69 this year, 8 this monthlibcamerasrc: Introduction and usage of libcamera's GStreamer elementSeptember 26th, 2023