Go2rtc:

一款功能强大的通用摄像头流媒体服务器,专为解决安防监控领域的视频协议兼容性与低延迟传输难题而设计。它能够作为一个高效的中转网关,将各类传统的监控视频流汇聚并转换为现代化的 Web 友好协议。

图片

TIP:由于 Go2rtc 功能非常多,就不展开详细介绍,本篇主要简单介绍如何配置小米摄像头获取 RTSP 地址

安装

Docker Compose

1
2
3
4
5
6
7
8
9
10
11
12
13
services:
go2rtc:
image: alexxit/go2rtc:latest
container_name: go2rtc
network_mode: host
privileged: true
ports:
- 1984:1984
environment:
- TZ:Asia/Shanghai
volumes:
- ./config:/config
restart: always

参数说明(更多参数建议去看文档)
TZ(环境变量):设置时区

/config(路径):配置文件

网络模式选择:

官方默认使用 host 模式,当然也可以桥接只暴露常用的 1984 和 8554 端口。至于为什么额外多写了 1984 端口,是为了 NAS 系统 Docker 里有跳转链接,所以也将端口号标出来。

使用

浏览器中输入 http://NAS的IP:1984 就能看到界面

图片

点击顶部导航栏的“add”按钮

图片

滑动到最底部就能看到“Xiaomi”,点击展开

图片

填写小米账号信息(手机号和密码)进行登录

图片

登录成功之后,点击加载设备

图片

等下会用到这个 URL 链接(如果后面联动其他容器应用也是要的)

图片

来到 config 页面,需要先配置才能正常使用

图片

TIP:下面出现的参数说明

1
2
3
4
5
6
7
8
9
10
11
12
小米在 go2rtc 的画质等级
subtype=0:auto(自动)
subtype=1:SD(标清)
subtype=2:HD(高清)
subtype=3:FHD(超清)
subtype=4–5:部分新机型更高画质

video=copy
视频不转码、直接复制,省 CPU、低延迟

audio=pcmu
音频转成 PCMU 格式,浏览器 / 网页播放兼容最好

需要先配置视频流,参考下面的格式

1
2
3
4
5
streams:
xiaomi_auto:
- "xiaomi_url&subtype=0#video=copy#audio=pcmu"
xiaomi_4k:
- "xiaomi_url&subtype=3#video=copy#audio=pcmu"

图片

替换 xiaomi_url 为之前获取的 URL 链接,点击保存重启

图片

跳转到首页,就能看到添加的视频流

图片

可以正常直接打开观看

图片

回到 config 页面,下面还需要配置当前 Go2rtc 后台用户名和密码

1
2
3
4
api:
listen: ":1984" # 网页后台端口
username: admin
password: "password"

图片

再次刷新网页,就需要用户名和密码才能登录了

图片

接下来配置 RTSP 协议流的用户名和密码,避免直接暴露

1
2
3
4
rtsp:
listen: ":8554" # RTSP 端口
username: admin
password: "password"

图片

TIP:访问 RTSP 的格式

1
2
3
4
5
6
7
# 无密码
rtsp://NAS的IP:8554/xiaomi_auto
rtsp://NAS的IP:8554/xiaomi_4k

# 开启密码认证
rtsp://admin:password@NAS的IP:8554/xiaomi_auto
rtsp://admin:password@NAS的IP:8554/xiaomi_4k

这样基本都配置完,可以复制 RTSP 流连接到其他需要软件上调用了

图片

总结

Go2rtc 是一款通用摄像头流媒体服务器,能把各品牌摄像头的视频流转换为 RTSP/WebRTC/HLS 等通用协议,方便接入 Home Assistant、Frigate 等平台。以小米摄像头为例,登录小米账号即可获取 RTSP 流,跟着教程配置不难,但自己折腾还是有一定门槛。家里有摄像头想接入智能家居或 NAS 监控的,值得一试。