录制功能
启用录制功能后,视频将存储在容器的/media/frigate/recordings目录下(主机的实际路径为你 Docker 设置挂载/media/frigate对应的路径)。录制的文件结构为YYYY-MM-DD/HH/<摄像头名称>/MM.SS.mp4(使用 UTC 时间)。这些录制直接从摄像头流写入,不经过重新编码。每个摄像头支持可配置的保留策略。当决定是否删除录制时,Frigate 会选择录制保留和追踪物体/目标中最大的保留周期值。
新的录制片段会从摄像头流写入缓存,只有符合设置的录制保留策略时才会移动到硬盘存储。
H265 编码的录制只能在 Chrome 108+、Edge 和 Safari 浏览器中能够正常播放。其他浏览器需要设置为使用 H264 编码进行录制。
提示
国产浏览器(例如 360 浏览器)基本上基于 Chrome 内核进行开发,大多数内核版本高于 108,基本上能正常播放 H265 编码的视频。
常见录制配置例子
最保守方案:保存所有视频
对于需要在没有检测到画面变动时也保存连续视频的环境,以下配置将保存 3 天内的所有视频。3 天后,只有画面变动的视频会保留 30 天,7 天后,只有包含画面变动且属于 核查 中警报或检测的视频会保留 30 天。
record:
enabled: True # 只有设置了enabled为True时录制功能才会生效 #
continuous:
days: 3
motion: # 所有原始录制保留
days: 7
alerts: # 核查警报类型录制
retain:
days: 30
mode: all # 将在最上面的3天后,仅保存画面有变动且属于核查中"警报"的视频30天
detections: # 核查检测类型录制
retain:
days: 30
mode: all # 将在最上面的3天后,仅保存画面有变动且属于核查中"检测"的视频30天减少存储:仅保存检测到画面变动的视频
为了减少存储需求,可以调整配置只保留检测到画面变动和活动的视频。
record:
enabled: True
motion:
days: 3
alerts:
retain:
days: 30
mode: motion # 将在最上面的3天后,仅保存画面有变动且属于核查中"警报"的视频30天
detections:
retain:
days: 30
mode: motion # 将在最上面的3天后,仅保存画面有变动且属于核查中"检测"的视频30天最小方案:仅保存警报视频
如果只想保留检测追踪到的目标活动期间的视频,可以参考以下配置。不属于核查中警报的视频将不会保留。
record:
enabled: True
continuous:
days: 0 # 设置为0后默认就不会录制所有没有指定类型的监控视频
alerts: # 这里指定只有警报的视频会录制,会无视上面的设定
retain:
days: 30
mode: motion存储空间不足时 Frigate 会删除旧录制吗?
从 Frigate 0.12 开始,当剩余存储空间不足 1 小时时,系统会自动删除最早的 2 小时录制。
配置录制保留策略
Frigate 支持连续录制和基于追踪物体/目标的录制,具有独立的保留模式和保留期限。
提示
保留配置支持小数,例如可以设置为保留0.5天(12 小时)。
连续录制
可以通过以下配置设置保留连续录制的天数(X 为数字),默认情况下连续录制被禁用。
record:
enabled: True
continuous:
days: 1 # <- 保留连续录制的天数
motion:
days: 2 # <- 保留画面变动记录的天数连续录制支持不同的保留模式,详见下文
针对识别到的物体/目标的录制
可以为分类为警报和检测的回放条目分别指定保留天数。
record:
enabled: True
alerts:
retain:
days: 10 # <- 保留警报录制的天数
detections:
retain:
days: 10 # <- 保留检测录制的天数此配置将保留与警报和检测重叠的录制片段 10 天。由于多个追踪 物体/目标 可能引用相同的录制片段,这样可以避免存储重复内容并减少总体存储需求。
警告:必须在配置中启用录制功能。如果摄像头在配置中禁用了录制,通过上述方法启用将不会生效。
可以只在特定时间进行"连续"录制吗?
通过 Frigate 页面、Home Assistant 或 MQTT,可以设置摄像头只在特定情况或时间进行录制。
如何导出录制文件
可以通过在核查页面中右键点击(电脑)或长按(手机)回放条目,或在摄像头的历史页面中点击导出按钮来导出录制。导出的录制会通过主导航栏中的导出页面进行管理和搜索,也可下载为录制文件。
提示
请不要直接从 Frigate 保存视频的路径直接获取视频,也无法设置默认保存录制文件时间长度,如需要导出视频,请使用 Frigate 内的导出功能来导出指定时间的录制,然后在导出页面下载录制文件。
延时摄影导出
延时摄影导出只能通过HTTP API实现。
默认情况下,延时摄影以 25 倍速和 30FPS 导出。这意味着每 25 秒的实际录制会被压缩为 1 秒的延时视频(无音频)。
要配置加速倍数、帧率等参数,可以使用timelapse_args配置参数。以下示例将延时速度改为 60 倍(1 小时录制压缩为 1 分钟),帧率 25FPS:
record:
enabled: True
export:
timelapse_args: '-vf setpts=PTS/60 -r 25'提示
当全局使用hwaccel_args时,延时生成会使用硬件编码。编码器会自行决定行为,可能导致输出文件过大。 可以使用 ffmpeg 参数-qp n(n 代表量化参数值)来减小输出文件大小,调整该值可以在质量和文件大小之间取得平衡。
Apple 设备 H.265 流兼容性说明
使用 Safari 浏览器的 Apple 设备在播放 H.265 格式录制时可能出现兼容性问题。为确保在 Apple 设备上的正常播放,建议启用Apple 兼容性选项。
同步录制与硬盘上的文件
在某些情况下,录制文件可能被删除但 Frigate 并不知道。可以启用录制同步功能,让 Frigate 检查文件系统并删除数据库中不存在的文件记录。
record:
sync_recordings: True此功能用于修复文件差异,而非完全删除数据库条目。如果你清理了所有监控文件,请务必不要使用sync_recordings,而是停止 Frigate 容器,直接删除frigate.db数据库后重新启动。
警告
同步操作会占用大量 CPU 资源,大多数情况下不需要启用,仅在必要时使用。