A lightweight, fast MJPEG-HTTP video streamer for V4L2 devices, optimized for high-resolution, high-FPS streaming.
µStreamer is a lightweight, high-performance MJPEG-HTTP video streamer designed to capture and stream video from V4L2 devices over a network. It solves the problem of efficiently streaming high-resolution, high-FPS video from sources like HDMI capture cards or USB webcams with minimal latency and resource usage. It is optimized for embedded systems like Raspberry Pi and is a key component of the PiKVM project for remote management.
Developers and hobbyists building video streaming solutions for embedded systems, IP cameras, or remote management tools like PiKVM. It is particularly suited for those needing high-performance MJPEG streaming from V4L2 devices on resource-constrained hardware.
Developers choose µStreamer for its superior performance, hardware acceleration support, and modern features like DV-timings and frame skipping, which are not available in older alternatives like mjpg-streamer. Its lightweight design and reliability make it ideal for high-FPS, low-latency streaming scenarios.
µStreamer - Lightweight and fast MJPEG-HTTP streamer
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Utilizes multithreaded JPEG encoding and hardware acceleration on Raspberry Pi via M2M drivers, enabling faster processing and higher FPS than alternatives like mjpg-streamer.
Supports DV-timings to automatically adjust resolution based on the source signal, ensuring optimal streaming quality without manual intervention.
Implements frame skipping to drop identical frames when streaming static images, significantly reducing network traffic for scenarios like HDMI capture.
Features UNIX domain socket streaming, systemd socket activation, and GPIO signaling via libgpiod, allowing seamless integration into Linux-based embedded systems.
Lacks HTTP endpoints for adjusting camera controls such as focus or brightness, a feature available in mjpg-streamer, limiting use for remote-controlled webcams.
Requires at least kernel 5.15.32 for M2M hardware encoding on Raspberry Pi, which can restrict compatibility with older or customized systems.
Enabling GPIO support or systemd activation necessitates installing additional libraries like libgpiod and setting build flags, increasing initial configuration overhead.
µStreamer is an open-source alternative to the following products: