实时视图
Frigate智能地在实时视图仪表板上显示您的摄像头流。默认情况下,Frigate采用"智能流媒体"技术,当没有检测到活动时,摄像头图像每分钟更新一次以节省带宽和资源。一旦检测到任何运动或活动对象,摄像头会无缝切换到实时流。
实时视图技术
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)。高于帧率的值会导致流开始播放时间更长。有关关键帧的更多信息,请参阅此页面。对于许多用户来说这可能不是问题,但应注意1x I帧间隔会导致更多存储使用(如果同时将该流用于
record
角色)。
摄像头的默认视频和音频编解码器可能不总是与您的浏览器兼容,这就是为什么建议将它们设置为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