UV4L

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 providing a set of modern and unique solutions for encrypted live 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 some 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 deploys a RESTful API for developers.

    uv4l_landing_page
    landing page
  • Native WebRTC extension for the Streaming Server

    webrtc-twoway
    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 (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)