Core features
  • collection of various Video4Linux2-compliant drivers (back-ends) and front-ends (e.g. Streaming Server)
  • fully user space. From user’s perspective drivers are not different from an those in kernel space.
  • cross-platform
  • no kernel crashes are possible
  • each module can be loaded dynamically and configured from command line or configuration file
  • there’s one independent system process for each handled device (there can be many of them running at the same time)
  • each plug-in (e.g. Streaming Server) runs in the context of a single process and is “per-device”
  • device node registration and deregistration are done when the process starts or shuts down respectively
  • multi-thread safe
    can run in foreground, or in background as a daemon
  • both Read-Write and Streaming Video4Linux2 I/O API are supported
  • no need of root privileges
  • optional real-time scheduling and no memory paging
  • multilevel logger that can send messages to a (remote) syslog daemon
  • no dependency on any third-party library other than basic system libraries
Streaming Server & WebRTC extension
  • support for both HTTP and HTTPS protocols
  • record while streaming and playback in standard HTML5
  • can be programmed or controlled through a well-defined RESTful API
  • offers a “per-device”, built-in web front-end (there can coexist as many Streaming Servers as devices running at the same time)
  • can serve any custom web pages under a given filesystem path
  • includes a Control Panel web page that allows to concurrently control all the device settings while the device is in use for streaming by any Video4Linux2 application
  • many formats for live streaming over the web are possible like MJPEG, JPEG (HTTP/HTTPS) or WebRTC (audio, video, data)
  • concurrent, optionally delayed JPEG snapshots
  • optional bidirectional encrypted live audio, video and data from or to the browser, with automatic play out to connected speakers and direct rendering of video onto the display
  • very efficient support for multiple clients
  • the server does NOT stop any other applications from using the device (except if a stream is actually open)
  • may be used in “headless mode” (without any browser) to get the RAW data streams in any video format over HTTP/HTTPS
  • support for ‘user’, ‘admin’, ‘config’ and ‘www’ different user authentications (see the manual for details)
  • since the server supports WebRTC technology “out of the box”, custom HTML5 pages embedding video and audio content can be implemented as wanted
  • WebRTC is ideal for low-latency live streaming over internet (other than LAN) and provides modern solutions like encryption, NAT traversal through STUN and TURN, adaptive streaming, echo cancellation, hardware-encoded H264/VP8/VP9/Opus encodings, etc…
  • includes a multi peer-to-peer audio/video Conferencing web page written in standard HTML5
  • supportsĀ  WebRTC Data Channels for message from/to local third-party applications (e.g. useful for theĀ IoT or for controlling robots)
  • can be fine-tuned at wish (things like HTTP/HTTPS port, max. concurrent clients and threads, keepalive connection timeouts and so on)
  • can read default parameters from a configuration file
  • proprietary, standard XMPP (with support for logins/MUC), Janus signaling protocols for WebRTC are supported
  • can broadcast audio&video to participants of a Jitsi Meet Web Conference or have bidirectional audio/video
  • can participate to videoconferencing rooms on the cloud with the Janus WebRTC Gateway
UVC Driver

module for devices based on the USB Video Class specifications

XScreen Driver
  • turn any portion of any X Screen into a virtual Video4Linux device
  • if used together with the Streaming Server, it’s possible to live stream the Desktop (and audio too) to any browser via WebRTC
MJPEGStream driver
  • create a virtual Video4Linux device from a given MJPEG Stream (e.g. IP Camera) which can be used along with Streaming Server or other third-party applications
Raspicam and raspicam-ai drivers
  • module for the single or dual Raspberry Pi CSI Camera boards (Zero, ZeroW, 1, 2, 3, 4, CM, CM3, etc…) and TC358743 HDMI-in to MIPI converter
  • full control of any supported image setting and resolution
  • support for any video format available from the GPU (yuv420, nv21, yvu420, rgb565, rgb565x, rgb24, bgr24, rgba, bgra, jpeg Still, mjpeg Video, h264)
  • directly supports Stereoscopic Vision (side-by-side or top-bottom images)
  • the dual cameras can be concurrently handled as two independent cameras (with two different device nodes)
  • on-the-fly text overlay with any font, color and position. Text can be dynamically changed
  • on-the-fly, real-time object detection and tracking (default is face detection)
  • text overlay and object detection work efficiently in any selected video format (compressed or not)
  • the raspicam-ai driver adds support for Tensor Flow Lite models and for the Google Edge TPU which allows to do things like real-time object detection and tracking
Raspidisp driver
  • turn a given Raspberry Pi HDMI output source into a virtual Video4Linux-compliant device (such as a camera) that can capture the images coming from that source
  • when used with the Streaming Server, it allows your Raspberry Pi to be mirrored and controlled from the browser (plugin-free). This is a demo.

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.