Skip to content

录制功能

启用录制功能后,视频将存储在容器的/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 天。

yaml
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天

减少存储:仅保存检测到画面变动的视频

为了减少存储需求,可以调整配置只保留检测到画面变动和活动的视频。

yaml
record:
  enabled: True
  motion:
    days: 3
  alerts:
    retain:
      days: 30
      mode: motion # 将在最上面的3天后,仅保存画面有变动且属于核查中"警报"的视频30天
  detections:
    retain:
      days: 30
      mode: motion # 将在最上面的3天后,仅保存画面有变动且属于核查中"检测"的视频30天

最小方案:仅保存警报视频

如果只想保留检测追踪到的目标活动期间的视频,可以参考以下配置。不属于核查警报的视频将不会保留。

yaml
record:
  enabled: True
  continuous:
    days: 0 # 设置为0后默认就不会录制所有没有指定类型的监控视频
  alerts: # 这里指定只有警报的视频会录制,会无视上面的设定
    retain:
      days: 30
      mode: motion

存储空间不足时 Frigate 会删除旧录制吗?

从 Frigate 0.12 开始,当剩余存储空间不足 1 小时时,系统会自动删除最早的 2 小时录制。

配置录制保留策略

Frigate 支持连续录制和基于追踪物体/目标的录制,具有独立的保留模式和保留期限。

提示

保留配置支持小数,例如可以设置为保留0.5天(12 小时)。

连续录制

可以通过以下配置设置保留连续录制的天数(X 为数字),默认情况下连续录制被禁用。

yaml
record:
  enabled: True
  continuous:
    days: 1 # <- 保留连续录制的天数
  motion:
    days: 2 # <- 保留画面变动记录的天数

连续录制支持不同的保留模式,详见下文

针对识别到的物体/目标的录制

可以为分类为警报和检测的回放条目分别指定保留天数。

yaml
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:

yaml
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 检查文件系统并删除数据库中不存在的文件记录。

yaml
record:
  sync_recordings: True

此功能用于修复文件差异,而非完全删除数据库条目。如果你清理了所有监控文件,请务必不要使用sync_recordings,而是停止 Frigate 容器,直接删除frigate.db数据库后重新启动。

警告

同步操作会占用大量 CPU 资源,大多数情况下不需要启用,仅在必要时使用。

最近更新