go2rtc
Frigate 使用内置的 go2rtc 来驱动多项关键功能:
- WebRTC 或 MSE 实时监控,支持音频、更高分辨率和帧率,而 jsmpeg 流仅限于检测流且不支持音频
- Home Assistant 集成中的摄像头实时流支持
- RTSP 转流,供其他消费者使用以减少与摄像头视频流的连接数
提示:大多数用户不再需要手动配置 go2rtc
摄像头设置向导是添加摄像头的推荐方式。在设置 > 全局配置 > 摄像头管理中点击添加摄像头,向导会探测你的摄像头并为你写入配置——包括 go2rtc 转流和实时流映射——因此 go2rtc 会自动配置好。
本指南主要适用于从旧版本升级且现有摄像头尚未使用 go2rtc的用户,或想手动微调视频流(例如转码浏览器无法播放的编解码器)的用户。无论摄像头如何添加,go2rtc 故障排除指南都适用。
手动添加 go2rtc 流
如果你使用向导添加了摄像头,go2rtc 已配置好——你可以直接跳到故障排除。以下步骤适用于升级用户中尚未使用 go2rtc 的现有摄像头,或任何想手动配置流的用户。
通过添加要用于实时监控的流来配置 go2rtc 连接到你的摄像头。在此步骤中避免更改配置的其他部分。注意 go2rtc 支持多种不同的流类型,不仅仅是 rtsp。
go2rtc:
streams:
back:
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2将此添加到配置后,重启 Frigate 并通过从仪表板点击单个摄像头来尝试观看实时流。它应该比原来的 jsmpeg 流看起来更清晰、更流畅。
后续步骤
- 如果你添加到 go2rtc 的流也被 Frigate 用于
record或detect功能,你可以迁移配置以从 RTSP 转流拉取,以减少与摄像头的连接数,如此处所示。 - 如果你的摄像头支持双向通话,你可以设置 WebRTC。注意 WebRTC 仅支持特定的音频格式,可能需要在路由器上开放端口。
- 如果你的摄像头支持双向通话,你必须使用
#backchannel=0配置你的流,以防止 go2rtc 阻止其他应用程序访问摄像头的音频输出。请参阅转流文档中的防止 go2rtc 阻止双向音频。
故障排除
如果你的流无法播放、没有音频、CPU 占用过高或有其他异常,请参阅专门的 go2rtc 故障排除指南。它逐步介绍了如何隔离问题所在,并涵盖了最常见的问题——不支持的编解码器、H.265/HEVC、音频、WebRTC 和双向通话、FFmpeg 8 硬件加速转码以及摄像头特定的怪异行为。
Homekit 配置
要将摄像头流添加到 Homekit,必须在 Docker 中将 Frigate 配置为使用 host 网络模式。完成后,你可以使用 go2rtc Web 界面(通过端口 1984 访问,默认禁用)将摄像头共享导出到 Homekit。所做的任何更改都会自动保存到 /config/go2rtc_homekit.yml。