<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="Docker 版 FFmpeg 推流系统&amp;网心云OEC + Frigate 实现本地AI视频监控">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2025-05-21 14:49<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
Docker 版 FFmpeg 推流系统&amp;网心云OEC + Frigate 实现本地AI视频监控

使用方法：

1、安装

使用ssh工具输入下面代码一键拉取安装



XML/HTML代码


    git clone https://gh-proxy.com/https://github.com/iii80/ffmpeg-streaming.git &amp;&amp; cd ffmpeg-streaming

    docker build -t ffmpeg-streaming .

    docker run -d -p 36336:36336 --name ffmpeg-streaming ffmpeg-streaming




启动镜像


XML/HTML代码


    docker run -d -p 36336:36336 --name ffmpeg-streaming ffmpeg-streaming




安装成功，记得在安全组放行36336端口

2、进入直播推流控制面板

浏览器访问：http://你的服务IP:36336

输入源地址处输入要拉流的直播链接，推流ID可以不填，会自动生成，模式开关自选，点开始推流即可。

Github：https://github.com/iii80/ffmpeg-streaming

详情参考上面版本更新，适合局域网推流给多用户观看。



网心云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 &lt;(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 &lt;(curl -sL https://iii80.com/sh/docker.sh)

    #官网  

    bash &lt;(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: &quot;3.9&quot;

    services:

      frigate:

        container_name: frigate

        privileged: true # 特权模式 第一次安装需要打开

        restart: unless-stopped

        stop_grace_period: 30s  # 留出足够的时间关闭各种服务

        image: ghcr.io/blakeblackshear/frigate:stable-rk

        shm_size: &quot;512mb&quot; # 分配内存大小，按需配置，一路摄像机预留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  # &ldquo;/mnt/sda1/frigate/storage&rdquo; 为录像存储路径，使用之前挂载的硬盘路径！

          - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear

            target: /tmp/cache

            tmpfs:

              size: 1000000000

        ports:

          - &quot;8971:8971&quot; # Web 访问端口，可以改第一个8971成自己喜欢的端口

          - &quot;8554:8554&quot; # RTSP feeds

          - &quot;8555:8555/tcp&quot; # WebRTC over tcp

          - &quot;8555:8555/udp&quot; # WebRTC over udp

        environment:

          FRIGATE_RTSP_PASSWORD: &quot;password&quot;  # 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: # &lt;----- WebRTC，实时播放

      streams:

        1_Camera: # &lt;----- 和下面摄像头名字一样

          - rtsp://admin:password@10.0.0.9:554

          - &quot;ffmpeg:back#video=h264#audio=aac#hardware&quot;

     

    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: # &lt;----- 相机配置

      1_Camera:   # &lt;----- 自定义相机名称

        enabled: true

        ffmpeg:

          inputs:

            - path: rtsp://admin:password@10.0.0.9:554/1 # &lt;----- 推荐使用副码流进行检测

              roles:

                - detect

            - path: rtsp://admin:password@10.0.0.9:554 # &lt;----- 添加您要从中录制的流（主码流）

              roles:

                - record

                - audio

        detect: # &lt;----- 分辨率配置 ，最好根据检测的码流分辨率（也就是副码流）

          width: 1280

          height: 720

     

    audio: # &lt;----- 音频配置

      enabled: true

     

    detect: # &lt;----- AI检测（16版本之后默认关闭/需手动开启）

      enabled: true

      fps: 5

     

    record: # &lt;----- 录制配置

      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: # &lt;----- 快照/截图配置

      enabled: true

      timestamp: false

      retain:

        default: 30

      quality: 100

     

    tls: # &lt;----- true是HTTPS  ｜ false是HTTP

      enabled: true

     

    mqtt: # &lt;----- MQTT

      enabled: false





XML/HTML代码


    #执行运行docker

    cd /opt//opt/frigate  &amp;&amp; docker compose up -d

    #查看日志自动生成密码和管理员账户

    docker logs frigate




打开https://IP:8971  从日志里面获取的生成密码即可登录。

在WEB配置即可：这里我使用RTSP接入，不同品牌的链接不一样，需要自己获取。

注意：以上配置是针对OEC/T的rk3566的GPU硬解设置，其他GPU可以参考官网自行修改参数。
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
