Μ

µStreamer

2.0k stars·影音下载·已提供 SHA-256 校验码,下载后可自行核对文件完整性

轻量快速的MJPEG视频流服务器

智能下载

前往项目主页

该项目暂未提供安装包,请直接访问源代码仓库

极速MJPEG视频流,支持树莓派硬件编码

核心功能

  • 多线程JPEG编码提升性能
  • 树莓派硬件编码加速(V4L2 M2M)
  • DV-timings自动适配输入分辨率
  • 帧去重功能节省60%以上流量
  • Unix域套接字与systemd socket激活

避坑指南

  • •依赖libevent、libjpeg、libbsd等库;默认监听127.0.0.1:8080;跨域请求默认关闭,需设置 --allow-origin=* 开启;HTTPS需配合反向代理(如Nginx);帧去重特性对不同浏览器需使用特定URL参数。

适用场景

  • 树莓派HDMI/VGA屏幕采集直播(如PiKVM远程管理)
  • 高质量网络摄像头视频流推送
  • 远程监控与安防系统

详细介绍

µStreamer 是一个轻量且快速的 MJPEG 视频流服务器,可从任何 V4L2 设备向网络推送视频。它支持多线程 JPEG 编码、树莓派硬件编码加速、DV-timings 动态分辨率调整、帧去重节省带宽、Unix 域套接字流、GPIO 信号指示流状态等高级功能。作为 PiKVM 项目的核心组件,专为高帧率、高分辨率屏幕采集(HDMI/VGA)设计,比同类 mjpg-streamer 更高效稳定。

常见问题与排障 (2)

故障排除
为什么我的GL.iNet GL-RM1 (Comet KVM)上/api/streamer/snapshot返回503?

GL-RM1运行ustreamer时使用'--host=0.0.0.0 --port=8080',而非预期的Unix套接字路径/run/kvmd/ustreamer.sock,导致标准PiKVM API失效。解决方法:通过SSH连接到设备,直接从ustreamer的HTTP端点获取快照:'ssh root@<kvm-ip> curl -s http://127.0.0.1:8080/snapshot > screenshot.jpg'。这将返回1920x1080的JPEG帧。此问题特定于该第三方实现;PiKVM项目不支持GL-RM1的非标准设置。

来源 Issue #331
故障排除
运行多个 USB 摄像头时,如何修复 uStreamer 的“CAP: Device select() timeout”?

超时通常意味着 USB 总线无法同时处理所有摄像头。uStreamer 会在进程启动后立即打开每个 V4L2 设备并开始采集;“没有人观看”只会跳过 JPEG 编码,并不会停止 USB 采集。

解决方法:
1. 不要一次性启动全部四个 uStreamer 实例。仅在需要时启动实例,并在空闲时停止它,可使用进程监督程序、反向代理或启动脚本。
2. 将摄像头连接到不同的 USB 总线/主机控制器。带 USB hat/hub 的 Raspberry Pi Zero 2W 仍然共享一个 USB2 总线,因此增加 hub 端口并不会增加带宽。
3. 降低分辨率和帧率,然后逐个测试摄像头:
ustreamer --format=mjpeg --device=/dev/video0 --host=192.168.2.144 --port=8000 -r 1280x720 -f 1 --device-timeout=20
4. 更大的 --device-timeout,例如 20,可能避免过早失败,但不会增加 USB 带宽。
5. 移除 -K/--last-as-blank;它已弃用,并且无法阻止设备被采集。

此 uStreamer 版本中没有内置选项可以让视频设备在第一个 HTTP 观看者连接之前保持关闭。

来源 Issue #309

标签

MJPEG流媒体V4L2Raspberry Pi视频编码

快速上手

1

下载安装包

点击上方按钮下载对应系统的安装包

2

安装软件

双击下载的安装程序,按提示完成安装

3

克隆仓库: git clone --depth=1 https://github.com/pikvm/ustreamer

4

进入目录: cd ustreamer

5

编译: make

安装指引
  1. 克隆仓库: git clone --depth=1 https://github.com/pikvm/ustreamer
  2. 进入目录: cd ustreamer
  3. 编译: make
文件完整性

暂未获取到校验码

该项目暂未在 GitHub Release 页面提供 SHA-256 校验码

SHA256 校验码

暂无校验码

建议从 GitHub Releases 页面直接下载,并自行核对文件完整性

本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。

运维指引

卸载说明

删除源码目录即可;若通过包管理器安装(如apt、pacman),使用对应卸载命令(如sudo apt remove ustreamer)。

无额外依赖

下载后即可直接使用,无需安装其他运行环境

项目信息
开源协议GPL-3.0
最后更新2026-10-11 11:40:58
GitHub 仓库官方网站

遇到问题?查看下方 FAQ

2 FAQs

相似推荐