配置 go2rtc
使用捆绑的 go2rtc 是可选的。您仍然可以配置 FFmpeg 以直接连接到您的摄像机。但是,需要将 go2rtc 添加到您的配置中才能实现以下功能:
- WebRTC 或 MSE 用于实时观看,比 jsmpeg 流具有更高的分辨率和帧速率,jsmpeg 流仅限于检测流
- Home Assistant 集成中对摄像机的实时流支持
- RTSP(而不是 RTMP)中继供其它使用者一起使用,以减少摄像机流的连接数量
设置一个 go2rtc 流
首先,您需要通过在 Frigate 配置文件中添加要用于实况视图的流来配置 go2rtc 连接到您的摄像机流。如果您将 go2rtc 下的流名称设置为与您的摄像机名称相匹配,它将自动映射,您将获得摄像机的其他实况视图选项。避免在此步骤更改配置的任何其它部分。请注意 go2rtc 支持许多不同的流类型,而不仅仅是 rtsp。
go2rtc:
streams:
back:
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
最简单的实况视图是 MSE。将其添加到配置后,重新启动 Frigate 并尝试通过单击摄像机后在下拉列表中选择 MSE 来观看实况流。
视频无法播放怎么办?
如果您无法看到视频画面,请首先检查 Frigate UI 中侧边栏日志下的 go2rtc 日志。如果 go2rtc 无法连接到您的摄像机,您应该在日志中看到一些错误消息。如果您没有看到任何错误,则您的浏览器可能不支持该流的视频编解码器。如果您的摄像机流设置为 H265,请尝试切换到 H264。您可以在 go2rtc 文档中查看有关视频编解码器兼容性的更多信息。如果您无法将摄像机设置从 H265 切换到 H264 或者您的流是不同的格式(例如 MJPEG),您可以使用 go2rtc 使用FFmpeg 参数对视频进行重新编码。它支持视频的旋转和调整大小以及硬件加速。请记住,将视频从一种格式转码为另一种格式是一项资源密集型任务,您最好使用内置的 jsmpeg 视图。以下是将流重新编码为 H264 且无需硬件加速的配置示例:
go2rtc:
streams:
back:
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
- "ffmpeg:back#video=h264"
有些摄像机流可能需要使用 go2rtc 中的 ffmpeg 模块。这样做的缺点是启动时间较慢,但与更多流类型兼容。
go2rtc:
streams:
back:
- ffmpeg:rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
如果您可以看到视频但没有音频,这很可能是因为您的摄像机的音频流不是 AAC。如果可能,请将摄像机的音频设置更新为 AAC。如果您的摄像机不支持 AAC 音频,如果您需要音频,则需要告诉 go2rtc 将音频重新编码为 AAC。这将使用额外的 CPU 并增加一些延迟。要按需添加 AAC 音频,您可以按如下方式更新 go2rtc 配置:
go2rtc:
streams:
back:
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
- "ffmpeg:back#audio=aac"
如果您需要同时转换音频和视频流,可以使用以下命令:
go2rtc:
streams:
back:
- rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
- "ffmpeg:back#video=h264#audio=aac"
使用 ffmpeg 模块时,您可以像这样添加 AAC 音频:
go2rtc:
streams:
back:
- "ffmpeg:rtsp://user:password@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2#video=copy#audio=copy#audio=aac"
要在使用 Frigate 插件时从外部访问 go2rtc 流(例如通过 VLC),必须首先启用 RTSP Restream 端口。 您可以通过访问 Home Assistant 中的 Frigate 插件配置页面并显示“显示禁用端口”部分下的隐藏选项来完成此操作。