前言:
frigate,是一个不错的监控平台NVR,今天我写一个通过docker compose安装的教程,unraid商店有成品的模板所以我就不去费劲写模板了,可以直接用,配置文件都是通用的可以借鉴。
在开始之前,需要确认你的摄像头是网络的,支持RSTP,在确认主流和子流配置,本教程使用的海康摄像头,所以教程内容也以海康的配置内容为主。
教程:
在创建容器之前,我们需要创建config.yml因为默认容器并不会生成新的默认配置文件。
使用命令创建config.yml touch ./config.yaml
注意操作前的路径,方便后期映射配置文件。
mqtt: host: mqtt port: 1883 birdseye: enabled: False mode: motion width: 1920 height: 1080 objects: track: - person # - car # - motorcyle # - cat - dog ###视频解码硬件加速 ffmpeg: hwaccel_args: preset-nvidia-h264 input_args: preset-rtsp-restream-low-latency output_args: record: preset-record-generic-audio-aac ###摄像头链接参数 cameras: cam: enabled: True ffmpeg: inputs: - path: rtsp://user:password@ip:554/Streaming/Channels/2 roles: - detect - rtmp - path: rtsp://user:password@ip:554/Streaming/Channels/1 roles: - record detect: width: 1280 height: 720 record: enabled: True retain: days: 20 mode: motion snapshots: enabled: True
下面是针对配置的部分解释,这里我只写了几个我们需要修改的,其他参数并没有做出解释。
这里需要注意。子流的分辨率和FPS 不建议给太高,过高的分辨率和FPS 会导致CPU 负载增高推理速度下降,在mqtt的配置上如果是compose或者其他系统的docker,可以写容器名字,如果是unraid系统请改为IP,以免出现通讯问题,如果是使用compose插件则写容器名字即可。
下面我们来写compose,这里注意,开头的compose的版本和其他信息我并没有标注,所以其他内容请自行填充,这里只写frigate相关。
###frigate frigate: image: ghcr.io/blakeblackshear/frigate:stable-tensorrt container_name: "frigate" restart: always shm_size: "5G" privileged: true volumes: - "/data/appdata/frigate:/config" - "/DVR:/media/frigate" - "/tmp/frigate:/tmp/cache" - "/etc/localtime:/etc/localtime:ro" - type: tmpfs target: /tmp/cache tmpfs: size: 2G environment: - "FRIGATE_RTSP_PASSWORD=" - "TZ=Asia/Shanghai" - "PUID=0" - "PGID=0" - "UMASK=000" ports: - "5000:5000" labels: - "traefik.http.routers.frigate.rule=Host(`frigate.xxx.com`)" - "traefik.enable=true" - "traefik.http.services.frigate.loadbalancer.server.port=5000"
配置完成后,使用docker compose up -d 或者docker-compose up -d 生成容器并启动,启动后ip:5000端口访问frigate的web界面就可以看到frigate信息了。
结尾:
frigate是一个非常好用的NVR平台,但是因为他的功能,对CPU消耗相比shinobi这种平台消耗会高一些,后续我还会根据frigate的官方文档出硬件加速,和GPU对yolov模型的加速。
如果无法确定摄像头rstp是否正常,可以安装VLC播放器,手动检测RSTP是否正常。
评论(2)
大佬,根据教程我所有得配置硬件加速等都弄好了 ,就是视频录下来没声音,哪个部分调下这音频部分audio:
enabled: True
listen:
- bark
- fire_alarm
- scream
- speech
- yell
加了也不管用。
我并没有写音频相关的参数,如果你需要录音,你可以看看官方文档。