µStreamer

A lightweight server that streams MJPEG video from V4L2 devices to the network via HTTP.

µStreamer is an open-source server that streams MJPEG video from V4L2 devices to a network via HTTP. It is designed to handle high resolution and high frame rate video, making it suitable for streaming VGA and HDMI screencast hardware data. The software is deployed as a server application and is compatible with most modern web browsers and video players like VLC and mplayer.

The application functions by capturing video from a device, such as a webcam or a capture card, and serving it as a stream. It includes specific optimizations for hardware on the Raspberry Pi to ensure efficient encoding. Users can configure the server via command line arguments to specify the input device, host, port, and encoding parameters. It can be run as a standalone binary or deployed as a Docker container for easier management on Raspberry Pi 4 systems.

Key features

  • Multithreaded JPEG encoding for improved performance
  • Hardware image encoding support for Raspberry Pi
  • DV-timings support to change resolution based on the source signal
  • Frame skipping for static images to reduce network traffic
  • Streaming via UNIX domain sockets
  • Systemd socket activation support
  • Visual notification of stream loss with a black screen and error message
  • Stream state signaling on GPIO using libgpiod

The software is built using C and requires libraries such as libevent and libjpeg. It is particularly geared toward users of the PiKVM project and those needing high-quality video streams from embedded hardware. To optimize traffic when streaming HDMI, the server can match frames byte-wise and drop identical frames, which reduces outgoing bandwidth while slightly increasing CPU usage. It supports various input formats, including uyvy, and allows for the configuration of custom EDID data when used with HDMI capture devices.

µStreamer is positioned as a high-performance MJPEG streaming server for users who prioritize image quality and frame rates over webcam control features.

Last Modified
Software TypeWeb App / Server
Platform
Last Activity22 days ago
Repository Age7 years
LicenseGPL-3.0
Open Source Software.io

Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.