记录我的一些生活写照、无聊的牢骚、内心世界的活动 注册 | 登陆

Docker 版 FFmpeg 推流系统&网心云OEC + Frigate 实现本地AI视频监控

Docker 版 FFmpeg 推流系统&网心云OEC + Frigate 实现本地AI视频监控
使用方法:
1、安装
使用ssh工具输入下面代码一键拉取安装
XML/HTML代码
  1. x86平台
  2. docker run -d -p 36336:36336 --name ffmpeg-streaming shuiyanmilidemao/ffmpeg-streaming::v2.0.5-tag
  3. Arm64平台
  4. 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代码
  1. #一键换源
  2. bash <(curl -sSL https://linuxmirrors.cn/main.sh)
  3. #Debian安装常用组件
  4. apt-get -y install htop nload ncdu wget curl tar gzip bzip2 xz-utils unzip net-tools sudo ca-certificates
  5. #安装docker+Portainer
  6. #官网
  7. bash <(curl -sL https://iii80.com/sh/docker.sh)
  8. #官网  
  9. bash <(curl -sL https://iii80.com/sh/docker-cn.sh)
  10. #官方仅安装docker
  11. 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代码
  1. #拉取Frigate镜像(已使用镜像加速):
  2. docker pull ghcr.io/blakeblackshear/frigate:stable-rk
例如SATA硬盘已经挂载opt目录,或者系统都迁移到了SATA硬盘。
创建/opt/frigate目录,并上传文件到此目录
docker-compose.yml
XML/HTML代码
  1. version: "3.9"
  2. services:
  3.   frigate:
  4.     container_name: frigate
  5.     privileged: true # 特权模式 第一次安装需要打开
  6.     restart: unless-stopped
  7.     stop_grace_period: 30s  # 留出足够的时间关闭各种服务
  8.     image: ghcr.io/blakeblackshear/frigate:stable-rk
  9.     shm_size: "512mb" # 分配内存大小,按需配置,一路摄像机预留70M左右
  10.     security_opt:
  11.       - apparmor=unconfined
  12.       - systempaths=unconfined
  13.     devices:
  14.       - /dev/dri
  15.       - /dev/dma_heap
  16.       - /dev/rga
  17.       - /dev/mpp_service
  18.     volumes:
  19.       - /etc/localtime:/etc/localtime:ro
  20.       - /sys/:/sys/:ro
  21.       - /opt/frigate/config:/config  # 配置文件路径,冒号前面的内容
  22.       - /mnt/sda1/frigate/storage:/media/frigate  # “/mnt/sda1/frigate/storage” 为录像存储路径,使用之前挂载的硬盘路径!
  23.       - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
  24.         target: /tmp/cache
  25.         tmpfs:
  26.           size: 1000000000
  27.     ports:
  28.       - "8971:8971" # Web 访问端口,可以改第一个8971成自己喜欢的端口
  29.       - "8554:8554" # RTSP feeds
  30.       - "8555:8555/tcp" # WebRTC over tcp
  31.       - "8555:8555/udp" # WebRTC over udp
  32.     environment:
  33.       FRIGATE_RTSP_PASSWORD: "password"  # RTSP密码,建议修改
config.yml
XML/HTML代码
  1. # Frigate配置参考  详细完整文档:https://docs.frigate.video
  2. ffmpeg:
  3.   output_args:
  4.     record: preset-record-generic-audio-aac
  5.   hwaccel_args: preset-rk-h264  #开启硬件加速(NPU)
  6.  
  7. go2rtc: # <----- WebRTC,实时播放
  8.   streams:
  9.     1_Camera: # <----- 和下面摄像头名字一样
  10.       - rtsp://admin:password@10.0.0.9:554
  11.       - "ffmpeg:back#video=h264#audio=aac#hardware"
  12.  
  13. detectors: # required 为必填
  14.   rknn: # required
  15.     type: rknn # required
  16.     num_cores: 0
  17.  
  18. model: # required
  19.   # 模型名称(将自动下载)或自定义.rknn模型文件路径 | PS:s比较合适OEC跑,其他太大比较慢
  20.   # - deci-fp16-yolonas_s | deci-fp16-yolonas_m | deci-fp16-yolonas_l | 或 您的yolonas_model.rknn
  21.   path: deci-fp16-yolonas_s
  22.   width: 320
  23.   height: 320
  24.   input_pixel_format: bgr # required
  25.   input_tensor: nhwc
  26.   labelmap_path: /labelmap.txt # required
  27.  
  28. cameras: # <----- 相机配置
  29.   1_Camera:   # <----- 自定义相机名称
  30.     enabled: true
  31.     ffmpeg:
  32.       inputs:
  33.         - path: rtsp://admin:password@10.0.0.9:554/1 # <----- 推荐使用副码流进行检测
  34.           roles:
  35.             - detect
  36.         - path: rtsp://admin:password@10.0.0.9:554 # <----- 添加您要从中录制的流(主码流)
  37.           roles:
  38.             - record
  39.             - audio
  40.     detect: # <----- 分辨率配置 ,最好根据检测的码流分辨率(也就是副码流)
  41.       width: 1280
  42.       height: 720
  43.  
  44. audio: # <----- 音频配置
  45.   enabled: true
  46.  
  47. detect: # <----- AI检测(16版本之后默认关闭/需手动开启)
  48.   enabled: true
  49.   fps: 5
  50.  
  51. record: # <----- 录制配置
  52.   enabled: true
  53.   sync_recordings: false
  54.   preview:
  55.     quality: very_high # 预览快照质量
  56.   retain:  # 保存设置  详细文档:https://docs.frigate.video/configuration/record
  57.     days: 3
  58.     mode: all
  59.   alerts:
  60.     retain:
  61.       days: 30
  62.   detections:
  63.     retain:
  64.       days: 30
  65.  
  66. snapshots: # <----- 快照/截图配置
  67.   enabled: true
  68.   timestamp: false
  69.   retain:
  70.     default: 30
  71.   quality: 100
  72.  
  73. tls: # <----- true是HTTPS  | false是HTTP
  74.   enabled: true
  75.  
  76. mqtt: # <----- MQTT
  77.   enabled: false
XML/HTML代码
  1. #执行运行docker
  2. cd /opt//opt/frigate  && docker compose up -d
  3. #查看日志自动生成密码和管理员账户
  4. docker logs frigate
打开https://IP:8971  从日志里面获取的生成密码即可登录。
在WEB配置即可:这里我使用RTSP接入,不同品牌的链接不一样,需要自己获取。
注意:以上配置是针对OEC/T的rk3566的GPU硬解设置,其他GPU可以参考官网自行修改参数。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):