ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Frigate Live View 实战指南:实时监控面板、流媒体切换与摄像头控制全解析

Frigate Live View 实战指南:实时监控面板、流媒体切换与摄像头控制全解析 Frigate Live View 实战指南实时监控面板、流媒体切换与摄像头控制全解析【免费下载链接】frigateNVR with realtime local object detection for IP cameras项目地址: https://gitcode.com/GitHub_Trending/fr/frigate导读Live View实时视图是 Frigate 面向 IP 摄像头的实时监控仪表盘也是默认登录页面它同时呈现所有摄像头的画面、顶部滚动展示最近告警、支持单路全分辨率大画面含音频、双向对讲、PTZ 云台与按需录像控制。本文以 Live View 使用文档 为核心融合 Live View 配置文档 与前端/后端源码实现系统讲解仪表盘布局、摄像头分组、流媒体技术选型jsmpeg/MSE/WebRTC、右键菜单、单摄像头视图、实时控制开关、按需录像快照、PTZ 云台操作及常见问题排查帮助你从「会看」到「会用」再到「懂原理」。本文聚焦 Live view 的使用层面。关于 go2rtc 配置、流选择、智能流、WebRTC 与音频等配置细节请参阅 Live View configuration。一、Live View 技术全景三种流媒体技术如何协同1.1 什么是「智能流」Smart Streaming默认情况下 Frigate 采用Smart Streaming智能流当画面没有可检测活动时摄像头图像大约每分钟更新一次以节约带宽与资源一旦检测到任何运动或活动目标画面无缝切换为实时流。因为「一张静止的场景图」与「一段没有运动的实时流」视觉上完全一致所以这种方式在几乎不影响观看体验的前提下大幅降低带宽消耗尤其适合高分辨率摄像头。智能流的完整工作链路如下见 Live view FAQ静态图像从配置中带有detect角色的流拉取检测到活动后detect流立即以约 5 fps 开始更新画面让你能看到活动发生直至实时播放器加载完成通常只需 1~2 秒若实时播放器超时、缓冲或出错则回退到 jsmpeg 播放器播放来自detect角色的纯视频流活动结束后播放器被销毁重新显示静态图像循环往复。智能流的灵敏度依赖摄像头motion配置中的threshold与contour_area取值可在 UI 的 Settings 中使用 Motion Tuner 实时调参。1.2 三种流媒体技术对比Frigate 会根据网络带宽、播放器错误或所需功能如双向对讲在三种技术间智能切换具体差异如下来源帧率分辨率音频需要 go2rtc说明jsmpeg与detect - fps相同上限 10720p无否分辨率可配置追求更高分辨率与帧率建议使用 go2rtc。未配置 go2rtc 时 jsmpeg 是 Frigate 的默认方案mse原生原生支持取决于音频编码是iPhone 需 iOS 17.1Firefox 仅支持 h.264。配置 go2rtc 后这是默认方案webrtc原生原生支持取决于音频编码是需要额外配置。当 MSE 失败或使用双向对讲时Frigate 会尝试使用 WebRTCjsmpeg 会占用更多浏览器与客户端 GPU 资源配置 go2rtc 可显著改善体验。另需注意WebRTC 可能使用外部 STUN 服务器做 NAT 穿透而 MSE 与 HLS 流不需要任何互联网访问详见 网络要求。1.3 前端源码中的模式选择逻辑前端在web/src/hooks/use-camera-live-mode.ts中实现了这套选型逻辑遍历每台摄像头取其当前选中流activeStreams或camera.live.streams的第一个条目判断该流是否为 go2rtc 中已配置的 restream 流config.go2rtc.streams若浏览器不支持 MSEMediaSource/ManagedMediaSource均不存在restream 流退而使用webrtc否则使用mse非 restream 流统一使用jsmpeg只有 restream 流才去拉取流元数据useDeferredStreamMetadata并检测音频能力detectCameraAudioFeatures。播放器模式类型定义在web/src/types/live.tsexport type LivePlayerMode webrtc | mse | jsmpeg | debug;错误类型为stalled | startup | mse-decode。对应的播放器实现分别位于web/src/components/player/MsePlayer.tsx、JSMpegPlayer.tsx与LivePlayer.tsx。二、仪表盘速览All Cameras 主页默认的All Cameras仪表盘展示所有已启用的摄像头顶部有一条最近alerts告警的滚动胶片条点击某个告警会在 Review 中打开它每张卡片上有「标记为已审阅」的勾选按钮无需离开仪表盘即可处理胶片条中只出现 alerts若要屏蔽某标签或区域出现在胶片条中请将其配置为 detection 而不是 alert见 Alerts and Detections。移动端顶栏的开关可在网格grid布局与单列列表list布局间切换。桌面端右下角提供全屏按钮。2.1 切换仪表盘与摄像头分组左侧图标栏桌面端在左上角移动端为横向条用于切换仪表盘home 图标 All Cameras 仪表盘展示所有为仪表盘启用的摄像头你创建的每个camera group摄像头分组都有独立图标选中后只显示该组摄像头。分组非常适合按位置组织摄像头例如Front of House、Backyard并且可以让每个分组拥有独立的仪表盘布局与流媒体偏好。此外你还可以在仪表盘上直接查看 Birdseye或通过http://frigate_host:5000/#birdseye直接打开在 Birdseye 视图中点击某摄像头即可跳到它的实时画面。2.2 创建与编辑摄像头分组管理员可通过分组图标栏旁的铅笔图标打开Camera Groups对话框进行添加、编辑与删除。创建分组时需要指定配置项说明Name分组名称空格会被自动转换为下划线cameras包含的摄像头列表每台摄像头有开关与齿轮齿轮可打开其流媒体设置icon分组按钮在图标栏中使用的图标删除分组会同时清除你为该分组保存的自定义布局。2.3 调整分组布局桌面端与平板端每个摄像头分组都有可自由排列的网格点击右下角的布局按钮进入Edit Layout编辑布局模式摄像头瓦片会出现拖拽手柄与角落的缩放手柄拖拽瓦片可移动位置拖拽角落可改变大小保持宽高比退出编辑模式即保存。布局按设备存储在浏览器本地localStorage因此每台设备可以有不同的排列。默认的 All Cameras 仪表盘不可手动排列——它会根据每台摄像头的宽高比自动排布瓦片宽屏摄像头占两列竖屏摄像头占两行。相关前端实现见web/src/views/live/DraggableGridLayout.tsx。三、读懂摄像头瓦片的状态指示器每块摄像头瓦片通过少量覆盖层反映当前状态指示器含义脉动的红点角落该摄像头当前检测到运动红色描边瓦片外框该摄像头上有活动中的跟踪目标标签小芯片当前检测到的目标类型列表例如Person、Car摄像头名称标签当你开启了常显摄像头名称或摄像头处于离线/已禁用状态时显示Stream Offline / Camera is off占位未收到任何帧或摄像头已被关闭你还可以选择在瓦片上叠加实时流统计信息流类型、带宽、延迟、帧计数用于诊断播放问题——统计开关位于右键菜单中。四、流媒体设置与右键菜单4.1 右键长按菜单的快捷控制右键或长按摄像头瓦片会打开上下文菜单实现于web/src/components/menu/LiveContextMenu.tsx音量控制仅支持音频的流显示Mute / Unmute all cameras静音/取消静音所有摄像头显示/隐藏流统计debug view调试视图notification通知选项管理员可开启/关闭摄像头。如果音量控制没有出现请检查 Audio Support。音频需要 go2rtc 配置了兼容的音频编码。当 Frigate 回退到较低质量的 jsmpeg 流时菜单中会出现Low-bandwidth mode低带宽模式提示与Reset选项。低带宽模式产生的原因见 Live view FAQ。4.2 流媒体设置非默认分组对于非默认分组上下文菜单还提供该摄像头的Streaming Settings流媒体设置stream流下拉框列出你在live - streams下配置的流并标注哪些流可用音频streaming method流方式No Streaming不流式播放、Smart Streaming智能流推荐、Continuous Streaming持续流带宽更高compatibility mode兼容模式仅当默认播放器渲染异常画面出现彩色伪影、右侧对角线时启用。这些设置按分组、按设备保存在浏览器本地localStorage不会写入配置文件。注意默认的 All Cameras 仪表盘总是使用 Smart Streaming除非在 Settings 中关闭了全局 Automatic Live View并且总是使用streams配置中的第一条流——想改变这些默认值请使用摄像头分组。五、单摄像头视图点击摄像头瓦片进入该摄像头的全分辨率单摄像头视图顶栏提供功能说明Back返回仪表盘快捷键EscHistory跳转到该摄像头的录像回放起点约为过去 30 秒Fullscreen / Picture-in-Picture全屏 / 画中画取决于浏览器是否支持Two-way talk麦克风按钮双向对讲需要支持该功能的摄像头与 WebRTC快捷键tCamera audio muting扬声器按钮摄像头音频静音快捷键m你可以捏合或滚动缩放画面。设置齿轮提供stream 选择器带音频与双向对讲可用性标识、Play in background后台播放、Show stats显示统计、Debug view调试视图叠加显示 Frigate 的检测区域与目标边界框。双向对讲与摄像头音频有特定的编码与端口要求详见 Audio Support 与 WebRTC。从源码看web/src/views/live/LiveCameraView.tsx画中画通过document.pictureInPictureElement状态跟踪PTZ 拖拽区域用react-konva绘制矩形覆盖层并定义了DRAG_MIN_PX 15的像素阈值区分「点击」与「拖拽」。六、摄像头控制管理员的实时开关管理员在单摄像头视图中移动端为设置抽屉有一排实时开关可即时启停摄像头功能开关说明Camera摄像头开/关Object detection目标检测Recording录像仅在摄像头配置中启用录制时可用Snapshots快照Audio detection音频检测Live audio transcription实时音频转写音频检测开启时可用Autotracking自动跟踪适用于支持 PTZ 自动跟踪 的摄像头这些开关立即改变运行时行为是否在重启后保持取决于具体功能请参阅对应配置页面。6.1 运行时状态的持久化.runtime_state.jsonLive view 中的camera on/off、detect、recordings、snapshots、audio detection等开关以及等价的 MQTT/set主题会把新状态写入config.yml旁的.runtime_state.json文件。该文件在 Frigate 启动时被重放因此最近一次的开关节状态能够跨重启保留。后端持久化层实现在frigate/comms/runtime_state.pyRuntimeStatePersistence类其关键设计TRACKED_TOPICS映射了调度器主题名到 YAML 键后缀enabled、detect.enabled、snapshots.enabled、record.enabled、audio.enabled使用filelock的FileLock保证多进程并发读写的原子性写入时先写.tmp再os.replaceclear_all()在切换 profile 时清空全部覆盖值避免陈旧覆盖在新 profile 上重放clear_for_yaml_keys()在通过 Settings UI 保存字段时清除与已写入配置项对应的覆盖条目使config.yml成为权威来源clear_camera()在删除摄像头时清理对应条目防止同名新摄像头继承过期开关状态。与文档描述对应Settings UI 保存优先匹配条目从.runtime_state.json清除切换 profile 清空所有运行时覆盖见 Profiles。若你手工编辑config.yml而运行时覆盖仍存在覆盖值仍会在重启后重放删除.runtime_state.json即可重置为 YAML 定义的默认值。6.2 摄像头的三种状态On / Off / Disabled在Settings → Global configuration → Camera management中每台摄像头有三种状态状态行为On正常处理流检测、录制与 Live view 全部激活Off暂停 ffmpeg 进程停止录制与检测仪表盘显示带 Camera is off 消息的空白画面历史审阅项、跟踪目标与历史录像仍可在 UI 中访问状态通过.runtime_state.json跨重启保留Disabled修改写入配置文件enabled: False摄像头立即停止ffmpeg 进程停止Live 与历史 UI 元素全部隐藏数据仍保留在磁盘需重启 Frigate 才能恢复为 On关闭摄像头Off的途径包括单摄像头视图顶栏电源按钮、仪表盘瓦片右键菜单、Camera management 设置面板、移动端设置抽屉仅管理员、MQTT 主题frigate/camera_name/enabled/set载荷ON/OFF、Home Assistant 集成 的camera.turn_on/camera.turn_offaction。选择建议想保留摄像头历史数据审阅项、跟踪目标、录像可访问就设为Off想让摄像头彻底从仪表盘、审阅筛选器等 UI 中消失则设为Disabled仍保留在 Camera management 中以便日后重新启用想彻底移除包括配置在内的所有痕迹请用 Camera management 中的删除操作。Restream 行为对于 Off 与 Disabled 摄像头go2rtc 仍然运行但除非存在活跃的外部消费者如 Home Assistant 的 Advanced Camera Card 使用 go2rtc 源否则不消耗解码/处理资源。七、按需录制与快照单摄像头视图可以按需采集画面Start on-demand recording开始一段手动录像基于摄像头的录像保留设置激活时按钮呈脉动状态若该摄像头未启用录制则只保存一张快照。使用End on-demand recording结束。Download instant snapshot保存当前帧的静态图片。保留策略配置见 Recording 与 Snapshots需要永久保留片段请使用 Exports。快照下载的逻辑位于web/src/utils/snapshotUtil.tsdownloadSnapshot、fetchCameraSnapshot、generateSnapshotFilename、grabVideoSnapshot由LiveCameraView.tsx中的按钮调用。八、PTZ 云台控制对于支持的 ONVIF 摄像头控制面板提供pan/tilt 方向箭头、zoom变焦、focus对焦与已保存的presets预置位。你还可以启用click-to-move / drag-to-zoom点击移动 / 拖拽缩放覆盖层点击画面中的某点摄像头平移使该点居中拖拽一个方框进行平移与缩放从左上到右下拖拽 放大反向拖拽 缩小。前端实现中LiveCameraView.tsx用ptzRect状态跟踪拖拽矩形通过sendPtz将归一化坐标指令发送到后端 ONVIF 服务PTZ 后端逻辑见frigate/ptz/onvif.py。若需要对移动目标进行持续自动跟踪请参阅 Autotracking。九、音频支持与流配置要点9.1 音频编码兼容性MSE需要PCMA/PCMU 或 AAC音频WebRTC需要PCMA/PCMU 或 opus音频。要同时支持 MSE 与 WebRTCrestream 配置需确保两种编码都被启用go2rtc: streams: rtsp_cam: # - 适用于 RTSP 流 - rtsp://192.168.1.5:554/live0 # - 支持视频与 aac 音频的流 - ffmpeg:rtsp_cam#audioopus # - 复制流将音频转码为缺失的编码通常为 opus http_cam: # - 适用于 http 流 - http://192.168.50.155/flv?port1935appbcsstreamchannel0_main.bcsuseruserpasswordpassword - ffmpeg:http_cam#audioopus若摄像头不支持 AAC 音频或 Live view 出现问题可直接转码为 AACgo2rtc: streams: rtsp_cam: - ffmpeg:rtsp://192.168.1.5:554/live0#videocopy#audioaac # - 复制视频流并转码音频为 aac - ffmpeg:rtsp_cam#audioopus # - 为 WebRTC 提供支持若摄像头没有音频让 go2rtc 只发送视频go2rtc: streams: no_audio_camera: - ffmpeg:rtsp://192.168.1.5:554/live0#videocopy9.2 摄像头固件推荐设置使用 go2rtc 时建议在摄像头固件中做如下调整以获得最佳 Live view 体验视频编码H.264——对 Live view 各技术与浏览器兼容性最好避免 H.264/H.265 等非标准「智能编码」它们会移除关键帧I 帧音频编码AAC——对支持音频的浏览器兼容性最好I 帧间隔关键帧间隔 / GOP 长度与帧率一致Reolink 选择 1x。例如 20fps 输出对应 I 帧间隔 20。高于帧率的值会显著延长起播时间。注意 1x 的 I 帧间隔若同时用于record角色会增加存储占用。9.3 为 Live UI 配置可选流live - streams配置可让 UI 的 Live view 中出现流下拉框从而在不同设备上手动选择不同流例如移动端看子码流、桌面端看全分辨率主码流。该设置按设备保存在浏览器本地存储在 UI 中创建/编辑摄像头分组时也可为分组仪表盘选择流。默认的 All Cameras 仪表盘播放直播时总是使用streams中定义的第一条流。YAML 配置示例Frigate 0.16 支持多流go2rtc: streams: test_cam: - rtsp://192.168.1.5:554/live_main - ffmpeg:test_cam#audioopus # - 转码音频为 opus 以支持 webrtc test_cam_sub: - rtsp://192.168.1.5:554/live_sub test_cam_another_sub: - rtsp://192.168.1.5:554/live_alt cameras: test_cam: ffmpeg: output_args: record: preset-record-generic-audio-copy inputs: - path: rtsp://127.0.0.1:8554/test_cam # - 名称须与 restream 中的摄像头名一致 input_args: preset-rtsp-restream roles: - record - path: rtsp://127.0.0.1:8554/test_cam_sub input_args: preset-rtsp-restream roles: - detect live: streams: # - Frigate 0.16 及以后支持多流 Main Stream: test_cam # - 友好名称 go2rtc 流名 Sub Stream: test_cam_sub Special Stream: test_cam_another_sub注意streams中只能填写go2rtc 流名不能填写路径并且必须使用 Frigate 内置的 go2rtc。也可通过 UI 在Settings Camera configuration Live playback中维护。9.4 WebRTC 额外配置WebRTC 通过端口8555建立 TCP 或 UDP 连接需要额外配置外网访问路由器将8555端口TCP 与 UDP转发到 Frigate 设备内网/本地访问未通过 HA App 运行时在 go2rtc 配置中设置 WebRTC candidates 列表例如 Frigate 设备本地 IP 为192.168.1.10go2rtc: streams: test_cam: ... webrtc: candidates: - 192.168.1.10:8555 - stun:8555Tailscale 访问必须将 Frigate 系统的 Tailscale IP 添加为 WebRTC candidateTailscale IP 以100.开头属于保留 CIDR100.64.0.0/10部分浏览器不支持 H.265HEVC若以 Docker 运行且 WebRTC 难以工作可尝试network: host无需端口转发go2rtc 推荐但建议仅在必要时使用或network: bridge需映射端口8555:8555/tcp与8555:8555/udp通过 Home Assistant App 安装时通常无需手动配置Frigate 会通过 Supervisor API 生成 candidate若 App 日志初始化阶段出现[WARN] Failed to get IP address from supervisor或[WARN] Failed to get WebRTC port from supervisor建议手动定义 candidates。9.5 双向对讲Two-way talk使用前提配置好 WebRTC、通过 https 访问 Frigate可能需要开放 8971 端口见 安装文档、Home Assistant Frigate 卡片按官方指引选择正确的源。Reolink 门铃请使用推荐的 Reolink 配置。另外为防止 go2rtc 独占摄像头的双向音频通道而阻塞其他应用需要在流配置中加入#backchannel0见 restream 文档 中的双向对讲章节。9.6 jsmpeg 流质量jsmpeg Live view 的分辨率与编码质量可全局或按摄像头调整仅影响 jsmpeg 播放器使用 go2rtc 时不生效字段说明Live heightjsmpeg 实时流的高度像素必须小于等于 detect 流高度Live qualityjsmpeg 流编码质量1 最高31 最低# 全局默认 live: height: 720 quality: 8 # 单摄像头覆盖 cameras: front_door: live: height: 480 quality: 4UI 对应入口Settings Global configuration Live playback全局或Settings Camera configuration Live playback按摄像头。十、播放器错误信息与故障排查当浏览器播放摄像头流遇到问题时会在浏览器控制台输出简短错误消息。它们指示的是客户端/浏览器侧的播放、编码或网络问题而非 Frigate 服务端问题错误类型含义建议处理startup播放器初始化或连接失败网络或启动错误刷新 Live view 或点击Reset确认 go2rtc 运行且流可达从下拉框换流或换浏览器。控制台可能出现Error opening MediaSource.、Browser reported a network error.、Max error count ${errorCount} exceeded.mse-decode浏览器解码错误通常是编码不兼容或帧损坏检查浏览器控制台中协商的编码确保摄像头/restream 使用 H.264 视频与 AAC 音频非标准音频编码请配置 go2rtc 转码为 AACiPhone 需 iOS 17.1。控制台可能出现Safari cannot open MediaSource.、Safari reported InvalidStateError.、Safari reported decoding errors.stalled播放停滞播放器落后实时太多缓冲不足或无数据到达通常因浏览器同时解码过多高分辨率流改用低带宽子码流、减少同时打开的流、改善网络或降低分辨率检查摄像头 I 帧间隔可增大Settings UI中的超时值。控制台可能出现Buffer time (10 seconds) exceeded...、Media playback has stalled after n seconds...10.1 常见 FAQ 速览Live view 没有音频必须使用 go2rtc确认摄像头发送 PCMA/PCMU 或 AAC 音频否则用 go2rtc 转码。若 UI 中根本不显示音频控件请确认 Live view 实际使用的是 go2rtc 流——流名与摄像头名不一致时需通过live - streams映射否则 UI 会回退到纯视频的 jsmpeg 播放器。低带宽模式播放器是纯视频流即使配置了 go2rtc 也不会有声音。仪表盘上取消静音却听不到声音摄像头正在流式播放右上角红点或持续流模式时浏览器可能因自动播放策略而阻止音频直到你与页面交互这是浏览器有意为之的限制。Live view 黑屏/不加载但 debug view 正常debug view 播放 Frigate 自己处理的detect流而 Live view 直接播放 go2rtc 流。前者正常后者黑屏通常是浏览器无法解码摄像头输出多为 H.265 视频或不兼容的音频轨。两个高频解法① 用 go2rtc 的 FFmpeg 模块重新拉流给源加ffmpeg:前缀如- ffmpeg:rtsp://user:password192.168.1.5:554/stream② 转码为兼容编码- ffmpeg:rtsp://user:password192.168.1.5:554/stream#videoh264#audioaac#hardware。完整排查见 go2rtc 排障指南。低带宽模式是什么意思配置 go2rtc 后Live view 优先尝试更清晰流畅的 MSE初始超时、低带宽导致缓冲或解码错误时会回退到detect角色流的 jsmpeg 格式即「低带宽模式」。智能流模式下活动结束后会自动复位持续流模式无自动复位可用Reset强制重新加载。相关错误会记录到浏览器控制台消息带摄像头名前缀可用于判断是播放器MSE vs WebRTC问题还是摄像头配置问题。Live view 延迟/落后实时起播延迟通常是 I 帧间隔问题——播放必须等到关键帧到来才能开始间隔大于帧率会显著拖慢起播按时序落后则是缓冲问题通常是浏览器解码高分辨率流过载可换低带宽子码流、减少并发流或改善网络。Frigate 的播放器在缓冲后会自动加速追平实时停滞过久则回退低带宽模式。为什么 Frigate 优先 MSE 而不是 WebRTCMSE 是开放标准、所有现代浏览器原生支持、无需额外配置WebRTC 需要端口转发与 candidate 配置且部分浏览器不支持 H.265、无需联网做 NAT 穿透更重要的是 MSE 走 TCP每帧按序到达并解码不会静默丢帧而 WebRTC 为低延迟在 UDP 上丢弃迟到/不完整帧在蜂窝网络或信号不佳的 Wi-Fi 上可能产生画面冻结、花屏或缺帧。Frigate 的增强 MSE 播放器具备自适应变速播放因此默认 MSE仅在双向对讲等必要场景使用 WebRTC。Live view 出现奇怪的斜线但录像正常通常是detect的宽高设置不正确或自动检测错误导致 jsmpeg 渲染引擎轻微变形。把 detect 分辨率放宽到标准宽高比如 640x352 → 640x360、800x443 → 800x450、2688x1520 → 2688x1512。仍无法解决再启用摄像头分组仪表盘的「兼容模式」但兼容模式对多摄像头场景支持有限仅建议在改配置无效时使用。仪表盘上摄像头画面会切换宽高比因为智能流在无活动时显示detect流静态图、有活动时切换为 go2rtc 实时流两个流宽高比不一致就会「跳变」。解决办法是让detect流与 go2rtc 实时流宽高比一致分辨率不必一致例如实时流 1920x108016:9时把 detect 设为 640x360 而非 640x352。record流同理与detect宽高比不一致会导致录像画幅与 Live view 不同。cameras: front_door: detect: width: 640 height: 360 # 设为 360 而不是 352 ffmpeg: inputs: - path: rtsp://127.0.0.1:8554/front_door # 主码流 1920x1080 roles: - record - path: rtsp://127.0.0.1:8554/front_door_sub # 子码流 640x352 roles: - detect十一、总结与延伸阅读Live View 是 Frigate 日常使用频率最高的界面默认智能流在带宽与实时性之间取得平衡jsmpeg/MSE/WebRTC 三种技术按场景自动切换摄像头分组让不同位置、不同设备的观看偏好各得其所右键菜单、单摄像头视图与管理员开关构成了完整的「看 - 控 - 录」闭环而.runtime_state.json持久化机制保证了运行时开关状态跨重启稳定。深入主题可继续阅读当前仓库中的以下文档与源码Live View 配置文档go2rtc、流选择、WebRTC、音频、jsmpeg 质量、摄像头状态go2rtc 配置 与 Restream前端选型逻辑 use-camera-live-mode.ts、模式定义 live.ts单摄像头视图实现 LiveCameraView.tsx、仪表盘 LiveDashboardView.tsx、布局 DraggableGridLayout.tsx播放器实现 LivePlayer.tsx、MsePlayer.tsx、JSMpegPlayer.tsx运行时状态持久化 runtime_state.py 及测试 test_runtime_state.py、test_dispatcher_runtime_state.py【免费下载链接】frigateNVR with realtime local object detection for IP cameras项目地址: https://gitcode.com/GitHub_Trending/fr/frigate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表