实时预览页面
Frigate智能地在实时预览页面仪表板上显示您的摄像头流。默认情况下,Frigate采用"智能视频流"技术,当没有检测到活动时,摄像头图像每分钟更新一次以节省带宽和资源。一旦检测到任何运动或活动对象,摄像头会无缝切换到实时流。
::: warning
需要注意的是,在没配置go2rtc时,默认的jsmpeg方法是没法听到声音的。如果希望实时预览监控能够听到声音,请参考文档来配置go2rtc。
:::
实时预览页面技术
Frigate智能地使用三种不同的视频流技术在仪表板和单摄像头页面上显示您的摄像头流,根据网络带宽、播放器错误或双向通话等功能需求在不同可用模式间切换。要获得最高质量和流畅度的实时预览页面,需要按照逐步指南配置内置的go2rtc
。
jsmpeg实时预览会消耗更多浏览器和客户端GPU资源。强烈推荐使用go2rtc,它能提供更流畅的体验。
来源 | 帧率 | 分辨率 | 音频 | 需要go2rtc | 说明 |
---|---|---|---|---|---|
jsmpeg | 与detect -> fps 相同,上限10fps | 720p | 无 | 否 | 分辨率可配置,但如需更高分辨率和更好帧率推荐使用go2rtc。未配置go2rtc时Frigate将默认采用这个方式。 |
mse | 原生 | 原生 | 是(取决于音频编解码器) | 是 | iPhone需要iOS 17.1+,Firefox仅支持h.264。配置go2rtc后Frigate将默认采用这个方式。 |
webrtc | 原生 | 原生 | 是(取决于音频编解码器) | 是 | 需要额外配置,不支持h.265。当MSE失败或使用摄像头双向通话功能时,Frigate会尝试使用WebRTC。 |
摄像头设置建议
如果使用go2rtc,应在摄像头固件中调整以下设置以获得最佳实时预览页面体验:
- 视频编解码器:H.264 - 提供与所有实时预览页面技术和浏览器最兼容的视频编解码器。避免使用任何"智能编解码器"或"+"编解码器,如_H.264+或_H.265+,这些非标准编解码器会移除关键帧(见下文)。
- 音频编解码器:AAC - 提供与所有支持音频的实时预览页面技术和浏览器最兼容的音频编解码器。
- I帧间隔(有时称为关键帧间隔、帧间空间或GOP长度):匹配摄像头的帧率,或选择"1x"(对于Reolink摄像头的帧间空间)。例如,如果您的流输出20fps,I帧间隔应为20(或Reolink上的1x)。高于帧率的值会导致流开始播放时间更长。有关关键帧的更多信息,请参阅此页面。对于多数用户而言这可能不是什么问题,但需注意:若您同时将视频流用于record(录制)功能,1倍关键帧间隔(i-frame interval)会导致更高的存储空间占用
摄像头的默认视频和音频编解码器可能不总是与您的浏览器兼容,这就是为什么建议将它们设置为H.264和AAC。有关编解码器支持信息,请参阅go2rtc文档。
音频支持
MSE需要PCMA/PCMU或AAC音频,WebRTC需要PCMA/PCMU或opus音频。如果想同时支持MSE和WebRTC,则需要在重流配置中确保两者都启用。
go2rtc:
streams:
rtsp_cam: # <- RTSP流
- rtsp://192.168.1.5:554/live0 # <- 支持视频和AAC音频的流
- "ffmpeg:rtsp_cam#audio=opus" # <- 将音频转码为缺失编解码器(通常是opus)的流副本
http_cam: # <- HTTP流
- http://192.168.50.155/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=user&password=password # <- 支持视频和AAC音频的流
- "ffmpeg:http_cam#audio=opus" # <- 将音频转码为缺失编解码器(通常是opus)的流副本
如果摄像头不支持AAC音频或实时预览页面有问题,尝试直接转码为AAC音频:
go2rtc:
streams:
rtsp_cam: # <- RTSP流
- "ffmpeg:rtsp://192.168.1.5:554/live0#video=copy#audio=aac" # <- 复制视频流并将音频转码为AAC
- "ffmpeg:rtsp_cam#audio=opus" # <- 提供WebRTC支持
如果摄像头没有音频且实时预览页面有问题,应让go2rtc仅发送视频:
go2rtc:
streams:
no_audio_camera:
- ffmpeg:rtsp://192.168.1.5:554/live0#video=copy