µStreamer
轻量快速的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的非标准设置。
故障排除运行多个 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 观看者连接之前保持关闭。
标签
快速上手
安装软件
双击下载的安装程序,按提示完成安装
克隆仓库: git clone --depth=1 https://github.com/pikvm/ustreamer
进入目录: cd ustreamer
编译: make
- 克隆仓库: git clone --depth=1 https://github.com/pikvm/ustreamer
- 进入目录: cd ustreamer
- 编译: make
暂未获取到校验码
该项目暂未在 GitHub Release 页面提供 SHA-256 校验码
SHA256 校验码
暂无校验码
建议从 GitHub Releases 页面直接下载,并自行核对文件完整性
本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。
开源透明
查看 GitHub 源码卸载说明
删除源码目录即可;若通过包管理器安装(如apt、pacman),使用对应卸载命令(如sudo apt remove ustreamer)。
无额外依赖
下载后即可直接使用,无需安装其他运行环境
遇到问题?查看下方 FAQ
2 FAQs