Sobre el proyecto
µStreamer (ustreamer) es un servidor de streaming MJPEG de alto rendimiento diseñado para capturar vídeo desde cualquier dispositivo compatible con V4L2 —cámaras web, dongles de captura HDMI/VGA, cámaras de Raspberry Pi— y servirlo por HTTP a navegadores y reproductores como VLC. Fue creado como parte del proyecto PiKVM para ofrecer máxima resolución y velocidad de fotogramas en casos de uso de KVM remoto sobre IP.
Capacidades clave evidenciadas en el README:
- Codificación JPEG multihilo para una mejor utilización de la CPU.
- Codificación acelerada por hardware mediante V4L2 M2M en Raspberry Pi (kernel ≥5.15).
- Soporte de DV-timings: se adapta dinámicamente a cambios de resolución de la fuente (por ejemplo, conexión en caliente de HDMI).
- Streaming persistente: muestra un marcador de posición "NO LIVE VIDEO" cuando el dispositivo de entrada se desconecta y se reanuda automáticamente al reconectar.
- Deduplicación de fotogramas (`--drop-same-frames`) para reducir drásticamente el ancho de banda en fuentes digitales estáticas como HDMI.
- Soporte de socket de dominio UNIX y activación por socket de systemd.
- Señalización GPIO (mediante libgpiod) para indicar el estado del stream.
- Servicio de archivos HTTP integrado e integración con Janus WebRTC para streaming H.264.
- Compatible con la API HTTP de mjpg-streamer como reemplazo directo.
La instalación se realiza mediante compilación desde el código fuente (Makefile) o paquetes de distribución (Arch, Fedora, Debian/Ubuntu, OpenWRT, FreeBSD). Se proporcionan imágenes Docker para configuraciones de captura HDMI en Raspberry Pi 4. La configuración se realiza completamente por línea de comandos; las invocaciones típicas en producción especifican el formato de entrada, el codificador por hardware, los hilos de trabajo, los DV-timings y los umbrales de descarte de fotogramas.
El proyecto está licenciado bajo GPL-3.0-or-later.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.