Page:
Local-Development-and-Verification
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
本地开发与验证
环境
- 工作目录:
D:\github\mediamtx - 主要终端:PowerShell
- 语言:Go(版本以
go.mod和上游 CI 为准) - 管理页:原生 HTML/CSS/JavaScript,无运行时前端依赖
- DevHarness:Python 3 标准库
- 上游远端:
upstream=https://github.com/bluenviron/mediamtx.git - 定制远端:
origin=https://git.ilapage.cn/OPC/mediamtx.git
首次准备
上游通过 go:generate 生成被 Git 忽略的构建资源。新工作树执行:
go generate ./internal/servers/hls
go generate ./internal/core
HLS 下载器使用固定版本和 SHA-256 校验;生成的 hls.min.js 与 VERSION 不进入提交。
常用命令
git status --short --branch
node --check internal/api/admin/app.js
go test ./internal/api -run '^TestAdmin' -count=1
go test ./... -run '^$'
go test -tags enable_linters ./internal/linters/docsorder
python dev_scripts/harness.py check --strict
python dev_scripts/harness.py sync --check
python -m unittest discover -s tests -v
git diff --check
预期:
- Git 状态只包含当前工单和已知用户改动。
- 管理页路由、资源、安全头和鉴权测试通过。
- 全部 Go 包可编译;全量测试按端口占用和风险执行。
- Harness 结构、镜像和单元测试通过。
运行管理页面
在测试配置中启用 API:
api: yes
apiAddress: :9997
运行 MediaMTX 后访问 http://127.0.0.1:9997/admin/。页面和 API 共用 action: api 权限;未授权浏览器会收到现有 Basic authentication challenge。
默认媒体入口:
- RTSP:
:8554/{path} - HLS:
:8888/{path}/ - WebRTC:
:8889/{path}
页面从 /v3/config/global/get 读取自定义端口,不写死部署主机名。启用 TLS 时由对应 HLS/WebRTC 配置决定预览协议。
浏览器检查
至少检查 1440×900 和 375×812:
- 桌面表格与手机卡片切换,无横向溢出。
- 所有表单有可见标签、就地错误和键盘焦点。
- 主要操作高度至少 44px。
- reduced-motion 生效,页面不请求第三方资源。
- 新增、编辑留空保留源凭据、删除确认、WebRTC/HLS 切换和 API 断线重试。
- DOM、帮助文字和通知中不存在完整 RTSP 密码。
- 控制台无运行时错误。
凭据
ip_camera.env 只允许保存在本地并被 Git 忽略。测试、日志、截图、工单和 Wiki 使用 192.0.2.x 等保留地址及虚构账号。
未验证内容
公网 NAT、真实摄像头、浏览器编码兼容和生产认证必须单独记录实际验证环境,不能由单元测试结果代替。