HomeKit
Frigate 摄像头可以通过 go2rtc 导出到 Apple HomeKit。每台导出的摄像头在 iOS、iPadOS、macOS 和 tvOS 设备上的 Apple Home 应用中显示为一个配件。
概述
导出摄像头完全通过 go2rtc 处理,go2rtc 内嵌在 Frigate 中。go2rtc 提供必要的 HomeKit 配件协议(HAP)服务器,因此你的摄像头会作为独立配件发布到 HomeKit。
NOTE
这与导入 HomeKit 摄像头相反。go2rtc 也可以与现有的 HomeKit 摄像头(Aqara、Eve、Eufy 等)配对并将其用作视频源,这正是 go2rtc WebUI 中 add 页面的用途。该页面会发现在你网络上的 HomeKit 配件,不会列出你的 Frigate 摄像头。它不用于导出。
要求
- Frigate 必须以
network_mode: host运行,以便 HomeKit 可以通过 mDNS 发现你的摄像头 - 你的 Apple 设备必须与 Frigate 位于同一网络上
- 端口 1984 必须可访问,以便你能访问 go2rtc WebUI
HomeKit 还对视频流本身有严格限制。go2rtc 直接传递你的视频流而不进行缩放或重新编码,因此你导出的流必须已满足以下要求:
- 视频: H.264,1920x1080、1280x720 或 320x240
- 音频: Opus,单声道,16 kHz
摄像头的全分辨率流通常不满足要求。请参阅下方的导出兼容流。
配置
HomeKit 设置存储在 /config/go2rtc_homekit.yml 中。这是与你的 Frigate 配置分开的文件,因为 go2rtc 需要在设备配对时把你的配对信息写回该文件。
使用 go2rtc 配置编辑器编辑它,该编辑器直接写入此文件:
http://<frigate_host>:1984/editor.html将 <frigate_host> 替换为 Frigate 服务器的 IP 地址或主机名。编辑器最初为空,直到你添加 HomeKit 部分,因为该文件只存放你的 HomeKit 设置,而不是其余 go2rtc 配置。
警告
不要将 homekit: 部分放在 Frigate 配置的 go2rtc: 部分中。
Frigate 每次启动都会重新生成该配置,因此 go2rtc 无法将你的配对信息保存到其中。配对看似成功,但下次重启后会因 PairVerify with unknown client_id 而失败。如果该部分同时存在于两个位置,你保存的配对信息会在每次重启时被清除。
为每台要导出的摄像头添加一个条目。键必须与 go2rtc 流的名称匹配,PIN 必须是 8 位数字。这是 Home 应用称为设置代码的数字:
homekit:
front_door:
name: Front Door
pin: "12345678"如果键与 go2rtc 流不匹配,go2rtc 会在启动时记录 [homekit] missing stream: 日志,该摄像头不会出现在 Home 应用中。
NOTE
go2rtc 根据此键派生每个配件的 HomeKit 身份,因此稍后重命名它会导致摄像头显示为新配件,需要重新配对。在配对前确定名称。
Frigate 启动时只保留此文件中的 homekit: 部分,因此不要在其中存储流或其他 go2rtc 设置。
导出兼容流
如果摄像头的流不满足上述要求,在 Frigate 配置中定义缩放的转流,并让 HomeKit 指向该流而不是原始流:
go2rtc:
streams:
front_door:
- rtsp://user:password@192.168.1.50:554/stream
front_door_homekit:
- "ffmpeg:front_door#video=h264#width=1280#height=720#audio=opus/16000"# /config/go2rtc_homekit.yml
homekit:
front_door_homekit:
name: Front Door
pin: "12345678"添加 #hardware=cuda、#hardware=vaapi 或适合你系统的值以使用 GPU 进行转码。请注意,NVENC 无法编码宽度超过 4096 像素的 H.264,因此非常宽的流必须如上所示缩小,而不仅仅重新编码。
配对摄像头
- 添加
homekit:部分后重启 Frigate - 在 Apple Home 应用中,选择添加配件,然后选择更多选项手动输入代码
- 选择你的摄像头并输入你配置的 PIN 作为设置代码
- 确认
/config/go2rtc_homekit.yml中摄像头的下方现在出现pairings:列表
配对信息会自动保存回该文件。如果第 4 步未显示 pairings: 列表,请检查 Frigate 日志中的 [homekit] can't save,这意味着 /config/go2rtc_homekit.yml 中缺少 homekit: 部分。
有关详细的 go2rtc 配置选项,请参阅 go2rtc 文档。