PyMKUI是一个为ZLMediakit设计的现代化前端管理界面,提供了直观、美观的视频流管理功能。
PyMKUI是基于Web技术开发的前端界面,专为ZLMediakit流媒体服务器打造,提供了以下功能:
- 视频流管理(查看、播放、停止)
- 流信息查看
- 观众列表管理
- 流截图功能
- 服务器状态监控
pymkui-main/
├─ frontend/ # 静态前端页面(login.html / index.html 等)
├─ backend/ # Python 插件与 FastAPI 接口
│ ├─ mk_plugin.py # ZLMediaKit Python 插件入口
│ ├─ py_http_api.py # FastAPI API
│ ├─ database.py # SQLite 数据库逻辑
│ └─ config.py # 项目路径与数据库路径配置
├─ data/ # SQLite 数据目录(运行后生成)
└─ README.md
ZLMediakit是一个高性能的流媒体服务器,支持RTSP、RTMP、HLS、HTTP-FLV、WebSocket-FLV等多种流媒体协议。PyMKUI作为ZLMediakit的前端管理界面,提供了以下优势:
- 简化管理:通过直观的Web界面管理ZLMediakit服务器,无需命令行操作
- 实时监控:实时查看流状态、观众数量、码率等信息
- 便捷操作:一键播放、停止流,查看详细信息
- 流截图:支持获取流截图,便于预览流内容
- 前端:HTML5、CSS3、JavaScript
- 样式:Tailwind CSS
- 图标:Font Awesome
- 播放器:原生HTML5视频播放器、Jessibuca(FLV播放)、WHEP(WebRTC播放)
- 克隆本项目到本地
- 确保ZLMediakit服务器已经编译安装
# 进入backend目录
cd pymkui/backend
# 安装依赖
pip install -r requirements.txt在CMakeLists.txt中配置:
option(ENABLE_PYTHON "Enable python plugin" ON)在 config.ini 中确认启用了 Python 插件和配置HTTP根目录指向前端
[python]
plugin=mk_plugin
[http]
rootPath=/path/to/pymkui-main/frontend做法可以是以下两种之一:
export PYTHONPATH=/path/to/pymkui-main/backend:$PYTHONPATH例如:
cd /path/to/ZLMediaKit/release/linux/Debug/python
ln -sf /path/to/pymkui-main/backend/mk_plugin.py mk_plugin.py
ln -sf /path/to/pymkui-main/backend/py_http_api.py py_http_api.py
ln -sf /path/to/pymkui-main/backend/database.py database.py
ln -sf /path/to/pymkui-main/backend/config.py config.py
ln -sf /path/to/pymkui-main/backend/mk_logger.py mk_logger.py
ln -sf /path/to/pymkui-main/backend/shared_loop.py shared_loop.py- 启动ZLMediakit服务器
- 打开浏览器访问
http://your-server-ip:80/ - 输入ZLMediakit服务器地址和secret密钥登录
启动后,建议按这个顺序检查:
ps -ef | grep MediaServerss -lntp | grep 80ls -l /path/to/pymkui-main/frontend/login.html
ls -l /path/to/pymkui-main/frontend/index.htmlcurl -sv http://your-server-ip:80/login.html正常应返回:
HTTP/1.1 200 OK
优先检查:
mk_plugin.py中on_http_access的参数签名- ZLMediaKit 版本与当前代码是否兼容
这是 API 正常工作时的表现之一,说明 Python API 链路大概率是活的,但你还没有完成登录。
检查:
rootPath是否指向frontend/login.html文件是否存在on_http_access回调是否正常- Python 插件是否真的成功加载
- 响应式设计:适配不同屏幕尺寸
- 实时数据:实时更新流状态和服务器信息
- 直观操作:简单易用的界面设计
- 多协议支持:支持多种流媒体协议的管理
- 流截图:支持获取和下载流截图
- 本项目需要与ZLMediakit服务器配合使用
- 确保服务器地址和secret密钥正确
- 部分功能可能需要ZLMediakit特定版本支持
欢迎提交Issue和Pull Request,帮助改进本项目。
我们计划在未来的版本中实现以下功能:
- 完善播放、推流鉴权:加强安全性,实现更灵活的鉴权机制
- 添加SQLite持久化:主要用于推拉流任务的持久化,存储配置和历史数据,提高系统可靠性
- 添加录像文件管理:实现录像文件的管理、查询和下载功能
- 添加推拉流代理:支持更灵活的流分发和转发
- Python转码、推理功能:利用Python的强大生态,实现视频转码和AI推理功能
本项目采用MIT许可证。








