User space Video4Linux

UV4L was originally conceived as a modular collection of Video4Linux2-compliant, cross-platform, user space drivers for real or virtual video input and output devices (with absolutely no external difference from kernel drivers), and other pluggable back-ends or front-ends.

It has evolved over the years and now includes a full-featured Streaming Server component with a  customizable web UI providing a set of standard, modern and unique solutions for encrypted live bidirectional data, audio and video streaming, mirroring or conferencing over the web and for the IoT . Since recent releases UV4L has also been providing a RESTful API for the developers who want to implement their custom applications.

Click here for the installation instructions for ARM or x86. Here some tutorials and demos.

Below is a list of the supported modules:

  • UV4L core module (features, manual)
  • Streaming server with web front-end over HTTP/HTTPS and on-the-fly device control (features, manual). It also provides a RESTful API for developers and can run custom web apps (example).

    landing page
  • Native WebRTC extension for the Streaming Server

    two-way audio/video example
  • Jitsi Meet extension to broadcast live audio and video over the Web
  • Support for Janus WebRTC Gateway to join videoconferencing rooms on the cloud
  • UVC driver supporting webcams compliant with the Usb Video Class specifications (features, manual)
  • XScreen driver, a virtual device capturing a given portion of an X screen (features, manual)
  • MJPEGStream driver, create a virtual capture device from a given Motion JPEG stream, i.e. IP Camera (features, manual)
  • Raspicam driver for all the Raspberry Pi camera boards (including stereoscopic cameras) and the TC358743 HDMI-in to MIPI converter (features, manual)
  • Raspidisp driver for Raspberry Pi, create a virtual capture device from a given HDMI output source (features, manual)
  • Dummy driver creating a fake device (useful for testing V4L2 applications and for other purposes, screenshot)