Docker 版 FFmpeg 推流系统&网心云OEC + Frigate 实现本地AI视频监控
使用方法:
1、安装
使用ssh工具输入下面代码一键拉取安装
XML/HTML代码
- x86平台
- docker run -d -p 36336:36336 --name ffmpeg-streaming shuiyanmilidemao/ffmpeg-streaming::v2.0.5-tag
- Arm64平台
- docker run -d -p 36336:36336 --name ffmpeg-streaming shuiyanmilidemao/ffmpeg-streaming::v2.0.3-tag
安装成功,记得在安全组放行36336端口
2、进入直播推流控制面板
浏览器访问:http://你的服务IP:36336
输入源地址处输入要拉流的直播链接,推流ID可以不填,会自动生成,模式开关自选,点开始推流即可。
详情参考上面版本更新,适合局域网推流给多用户观看。
网心云OEC + Frigate 实现本地AI视频监控
前提:网心云刷Armbian系统,Flash_Armbian_25.05.0_rockchip_efused-wxy-oec_bookworm_6.1.99_server_2025.03.20.7z(hoiw大神的包),下载地址,刷入此估计。然后安装Docker
XML/HTML代码
- #一键换源
- bash <(curl -sSL https://linuxmirrors.cn/main.sh)
- #Debian安装常用组件
- apt-get -y install htop nload ncdu wget curl tar gzip bzip2 xz-utils unzip net-tools sudo ca-certificates
- #安装docker+Portainer
- #官网
- bash <(curl -sL https://iii80.com/sh/docker.sh)
- #官网
- bash <(curl -sL https://iii80.com/sh/docker-cn.sh)
- #官方仅安装docker
- curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
Frigate安装
Frigate官网文档:https://docs.frigate-cn.video
注意:Frigate需要保存视频到本地磁盘,必须挂载硬盘,设置保存视频目录在SATA硬盘上。可以将整个系统迁移到SATA,也可以挂载SATA硬盘,将docker迁移到SATA硬盘,详情参考之前OEC刷机知识。
XML/HTML代码
- #拉取Frigate镜像(已使用镜像加速):
- docker pull ghcr.io/blakeblackshear/frigate:stable-rk
例如SATA硬盘已经挂载opt目录,或者系统都迁移到了SATA硬盘。
创建/opt/frigate目录,并上传文件到此目录
docker-compose.yml
XML/HTML代码
- version: "3.9"
- services:
- frigate:
- container_name: frigate
- privileged: true # 特权模式 第一次安装需要打开
- restart: unless-stopped
- stop_grace_period: 30s # 留出足够的时间关闭各种服务
- image: ghcr.io/blakeblackshear/frigate:stable-rk
- shm_size: "512mb" # 分配内存大小,按需配置,一路摄像机预留70M左右
- security_opt:
- - apparmor=unconfined
- - systempaths=unconfined
- devices:
- - /dev/dri
- - /dev/dma_heap
- - /dev/rga
- - /dev/mpp_service
- volumes:
- - /etc/localtime:/etc/localtime:ro
- - /sys/:/sys/:ro
- - /opt/frigate/config:/config # 配置文件路径,冒号前面的内容
- - /mnt/sda1/frigate/storage:/media/frigate # “/mnt/sda1/frigate/storage” 为录像存储路径,使用之前挂载的硬盘路径!
- - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
- target: /tmp/cache
- tmpfs:
- size: 1000000000
- ports:
- - "8971:8971" # Web 访问端口,可以改第一个8971成自己喜欢的端口
- - "8554:8554" # RTSP feeds
- - "8555:8555/tcp" # WebRTC over tcp
- - "8555:8555/udp" # WebRTC over udp
- environment:
- FRIGATE_RTSP_PASSWORD: "password" # RTSP密码,建议修改
config.yml
XML/HTML代码
- # Frigate配置参考 详细完整文档:https://docs.frigate.video
- ffmpeg:
- output_args:
- record: preset-record-generic-audio-aac
- hwaccel_args: preset-rk-h264 #开启硬件加速(NPU)
- go2rtc: # <----- WebRTC,实时播放
- streams:
- 1_Camera: # <----- 和下面摄像头名字一样
- - rtsp://admin:password@10.0.0.9:554
- - "ffmpeg:back#video=h264#audio=aac#hardware"
- detectors: # required 为必填
- rknn: # required
- type: rknn # required
- num_cores: 0
- model: # required
- # 模型名称(将自动下载)或自定义.rknn模型文件路径 | PS:s比较合适OEC跑,其他太大比较慢
- # - deci-fp16-yolonas_s | deci-fp16-yolonas_m | deci-fp16-yolonas_l | 或 您的yolonas_model.rknn
- path: deci-fp16-yolonas_s
- width: 320
- height: 320
- input_pixel_format: bgr # required
- input_tensor: nhwc
- labelmap_path: /labelmap.txt # required
- cameras: # <----- 相机配置
- 1_Camera: # <----- 自定义相机名称
- enabled: true
- ffmpeg:
- inputs:
- - path: rtsp://admin:password@10.0.0.9:554/1 # <----- 推荐使用副码流进行检测
- roles:
- - detect
- - path: rtsp://admin:password@10.0.0.9:554 # <----- 添加您要从中录制的流(主码流)
- roles:
- - record
- - audio
- detect: # <----- 分辨率配置 ,最好根据检测的码流分辨率(也就是副码流)
- width: 1280
- height: 720
- audio: # <----- 音频配置
- enabled: true
- detect: # <----- AI检测(16版本之后默认关闭/需手动开启)
- enabled: true
- fps: 5
- record: # <----- 录制配置
- enabled: true
- sync_recordings: false
- preview:
- quality: very_high # 预览快照质量
- retain: # 保存设置 详细文档:https://docs.frigate.video/configuration/record
- days: 3
- mode: all
- alerts:
- retain:
- days: 30
- detections:
- retain:
- days: 30
- snapshots: # <----- 快照/截图配置
- enabled: true
- timestamp: false
- retain:
- default: 30
- quality: 100
- tls: # <----- true是HTTPS | false是HTTP
- enabled: true
- mqtt: # <----- MQTT
- enabled: false
XML/HTML代码
- #执行运行docker
- cd /opt//opt/frigate && docker compose up -d
- #查看日志自动生成密码和管理员账户
- docker logs frigate
打开https://IP:8971 从日志里面获取的生成密码即可登录。
在WEB配置即可:这里我使用RTSP接入,不同品牌的链接不一样,需要自己获取。
注意:以上配置是针对OEC/T的rk3566的GPU硬解设置,其他GPU可以参考官网自行修改参数。