go2rtc 技术文档
go2rtc 是一个终极的摄像机流媒体应用,支持 RTSP、WebRTC、HomeKit、FFmpeg、RTMP 等多种协议,专为实现低延迟高质量视频流而设计。它适用于所有操作系统(包括 Windows, macOS, Linux 和 ARM 架构设备),提供零配置体验,能够处理来自多种来源的视频流,并将之广播到不同的目标。
安装指南
go2rtc 可执行文件
- 访问 go2rtc 的 最新版本页面。
- 根据您的操作系统下载相应文件,例如对于 Windows 用户,选择
go2rtc_win64.zip
。 - 解压缩下载的文件并获取
go2rtc_xxx_xxx
可执行文件。 - 在 Linux 或 macOS 上,通过终端进入存放该文件的目录,并运行命令
chmod +x go2rtc_xxx_xxx
以赋予执行权限。
Docker 方式安装
在有 Docker 环境的机器上运行以下命令:
docker pull alexxit/go2rtc
docker run -p 1984:1984 -p 8554:8554 -p 8555:8555 alexxit/go2rtc
这会启动容器,并映射必要的端口。
Home Assistant 添加组件
- 如您已安装 Home Assistant,可通过添加附加组件的方式集成 go2rtc。首先,在“设置”>“附加存储库”中添加仓库
https://github.com/AlexxIT/hassio-addons
。 - 安装 go2rtc 添加项后,从侧边栏访问其设置界面进行配置。
使用说明
go2rtc 启动后,默认情况下可以通过访问 http://localhost:1984/
来管理配置。您可以在此界面上添加、修改或删除流源。
配置示例
假设我们要添加一个 RTSP 摄像头作为流源,在 go2rtc.yaml
文件中配置如下:
streams:
- name: "My RTSP Cam"
source: rtsp://camera_ip/stream
然后重启服务使配置生效。
API 使用文档
go2rtc 提供了 HTTP API 用于动态控制和查询状态,例如创建新的流或查询当前活动流。具体API文档可在项目wiki的配置部分找到详细说明。
项目模块概览
- RTSP 模块: 创建 RTSP 流服务器,允许 FFmpeg 等工具接入。
- WebRTC 模块: 支持实时的浏览器内视频流,含两路音频功能。
- MSE/MP4 模块: 提供基于 MSE 和 MP4 格式的流。
- HomeKit 模块: 直接与 HomeKit 设备交互,支持流式传输。
每个模块都有详细的配置选项,确保阅读官方提供的配置文档以了解详细配置指令和使用案例。
记住,安全性和编码过滤是配置时的重要考虑因素,特别是在处理外网访问和编码兼容性时。此外,利用如 ngrok 的模块可以帮助在没有公网 IP 的情况下提供外部访问。
此文档仅为快速入门和技术概览,更多高级特性和详细配置请参考 go2rtc 的官方 GitHub 页面及其相关wiki文档。