跳到主要内容

录像功能

启用录像功能后,视频将存储在/media/frigate/recordings目录下。录像的文件结构为YYYY-MM-DD/HH/<摄像头名称>/MM.SS.mp4(使用UTC时间)。这些录像直接从摄像头流写入,不经过重新编码。每个摄像头支持可配置的保留策略。当决定是否删除录像时,Frigate会选择录像保留和追踪对象保留中较大的匹配值。

新的录像片段会从摄像头流写入缓存,只有符合设置的录像保留策略时才会移动到磁盘存储。

H265编码的录像只能在Chrome 108+、Edge和Safari浏览器中播放。其他浏览器需要H264编码的录像。

常见录像配置

最保守方案:保存所有视频

对于需要在没有检测到运动时也保存连续视频的环境,以下配置将保存3天内的所有视频。3天后,只有包含运动且与警报或检测重叠的视频会保留30天。

record:
enabled: True
retain:
days: 3
mode: all
alerts:
retain:
days: 30
mode: motion
detections:
retain:
days: 30
mode: motion

减少存储:仅保存检测到运动的视频

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

record:
enabled: True
retain:
days: 3
mode: motion
alerts:
retain:
days: 30
mode: motion
detections:
retain:
days: 30
mode: motion

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

如果只想保留追踪对象期间的视频,此配置将丢弃非警报期间的视频。

record:
enabled: True
retain:
days: 0
alerts:
retain:
days: 30
mode: motion

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

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

配置录像保留策略

Frigate支持连续录像和基于追踪对象的录像,具有独立的保留模式和保留期限。

提示

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

连续录像

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

record:
enabled: True
retain:
days: 1 # <- 保留连续录像的天数

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

对象录像

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

record:
enabled: True
alerts:
retain:
days: 10 # <- 保留警报录像的天数
detections:
retain:
days: 10 # <- 保留检测录像的天数

此配置将保留与警报和检测重叠的录像片段10天。由于多个追踪对象可能引用相同的录像片段,这样可以避免存储重复内容并减少总体存储需求。

警告:必须在配置中启用录像功能。如果摄像头在配置中禁用了录像,通过上述方法启用将不会生效。

不同保留模式的含义

Frigate以10秒为片段保存具有record角色的视频流。这些选项决定了哪些录像片段会被保留(也会影响追踪对象)。

假设您配置门铃摄像头保留最近2天的连续录像:

  • 使用all选项会保留这2天内的全部48小时录像
  • 使用motion选项只会保留Frigate检测到运动的部分片段。这是折中方案,不会保留全部48小时,但可能会保留所有感兴趣的片段以及一些额外内容
  • 使用active_objects选项只会保留存在真实活动对象(非静止)的片段

警报和检测也有相同的选项,但只会保存与相应类型回放条目重叠的录像。

以下配置示例将保存所有运动片段7天,活动对象片段保存14天:

record:
enabled: True
retain:
days: 7
mode: motion
alerts:
retain:
days: 14
mode: active_objects
detections:
retain:
days: 14
mode: active_objects

上述配置可以全局应用或针对单个摄像头设置。

可以只在特定时间进行"连续"录像吗?

通过Frigate页面、Home Assistant或MQTT,可以设置摄像头只在特定情况或时间进行录像。

如何导出录像?

可以通过在回放面板中右键点击(桌面)或长按(移动设备)回放条目,或在历史视图中点击导出按钮来导出录像。导出的录像会通过主导航栏中的导出视图进行组织和搜索。

延时摄影导出

延时摄影导出只能通过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资源,大多数情况下不需要启用,仅在必要时使用。