目录

Docker宝库:MiCam-小米摄像头视频拉取

前置条件

必须要安装Docker和DockerCompose

Debian安装流程:[[电脑折腾/玩NAS/安装DockerCompose|安装DockerCompose]]

安装

分别执行以下每一行命令:

## 创建/opt/micam文件夹
mkdir /opt/micam
## 定位到/opt/micam文件夹
cd /opt/micam
## 下载 micam项目的docker compose文件
wget https://raw.githubusercontent.com/miiot/micam/refs/heads/main/docker-compose.yml
## 启动
docker compose up -d

此命令会通过docker部署Miloco、Go2rtc及RTSP转发服务。如果需要添加多个摄像头,需要编辑docker-compose.yml运行多个micam服务。

部署的Miloco为基础版,不带AI引擎,无GPU算力要求,大部分机器都能运行。本项目基于官方镜像修改,添加了arm64支持,并默认获取高清流和音频流。

附compose文件内容:

services:

  # https://github.com/XiaoMi/xiaomi-miloco
  miloco:
    container_name: miloco
    # image: ghcr.nju.edu.cn/xiaomi/miloco-backend # Official image
    image: ghcr.nju.edu.cn/miiot/miloco:main # Modified image to using HD stream
    network_mode: host
    environment:
      BACKEND_PORT: ${MILOCO_PORT:-8000}
      BACKEND_LOG_LEVEL: ${MILOCO_LOG_LEVEL:-warning}
      TZ: ${TZ:-Asia/Shanghai}
    volumes:
      - ./miloco:/app/miloco_server/.temp
    # NOTICE: Mount configuration files, if you want to use your own configuration files, please mount them here.
    #  - ./miloco/server_config.yaml:/app/config/server_config.yaml
    #  - ./miloco/prompt_config.yaml:/app/config/prompt_config.yaml
    restart: unless-stopped

  # https://github.com/AlexxIT/go2rtc
  go2rtc:
    container_name: go2rtc
    image: ghcr.nju.edu.cn/alexxit/go2rtc
    network_mode: host       # important for WebRTC, HomeKit, UDP cameras
    privileged: true         # only for FFmpeg hardware transcoding
    restart: unless-stopped  # autorestart on fail or config change from WebUI
    environment:
      TZ: ${TZ:-Asia/Shanghai}
    volumes:
      - ./go2rtc:/config     # folder for go2rtc.yaml file (edit from WebUI)

  micam1: &micam
    image: ghcr.nju.edu.cn/miiot/micam:main
    depends_on: [miloco, go2rtc]
    environment: &micam_envs
      MILOCO_BASE_URL: ${MILOCO_BASE_URL:-https://miloco:8000}
      MILOCO_PASSWORD: ${MILOCO_PASSWORD}
      CAMERA_ID: ${CAMERA_ID}
      RTSP_URL: ${RTSP_URL}
      VIDEO_CODEC: ${VIDEO_CODEC:-hevc}
      STREAM_CHANNEL: ${STREAM_CHANNEL:-0}
      TZ: ${TZ:-Asia/Shanghai}
    restart: always
    extra_hosts:
      - "miloco:${MILOCO_HOST_IP:-host-gateway}"

  # More Cameras ...
  micam2:
    <<: *micam
    scale: 0 # Disabled by default, set 1 to enable
    environment:
      <<: *micam_envs
      CAMERA_ID: ${CAMERA_2_ID}
      RTSP_URL: ${CAMERA_2_RTSP_URL}

使用

配置Miloco

  1. 打开Miloco网页: https://192.168.1.xx:8000 🔐 Miloco使用了自签证书,请通过 https 访问,请通过 https 访问,请通过 https 访问,并忽略证书错误。
  2. 设置Miloco密码(6位数字)。
  3. 绑定小米账号,之后会提示授权成功,并给出一个授权码。返回,即可打开Miloco主页。
  4. 主页会自动显示米家关联的摄像头。如果显示设备离线,需要确保摄像头和miloco在同一局域网,再次刷线网页重试。连不上可查阅:[Xiaomi Miloco Q&A]
  5. 摄像头显示正常后,将网页打开开发者模式。例如Chrome浏览器,就按F12进入开发者模式,切换到网络选项卡,刷新网页,从文件列表中找到camera_list,双击点开,找到需要的摄像头的did,记下来。

配置Go2rtc

  1. 访问Go2rtc网页: http://192.168.1.xx:1984/config.html
  2. 配置空视频流:
streams:
  your_stream1:
  your_stream2:
  1. 点击按钮:保存并重启

配置miCam

  1. 设置环境变量,在控制台定位到/opt/micam文件夹,输入(一行一行的输入):
    cat << EOF > .env
    MILOCO_PASSWORD=your_miloco_password_md5
    CAMERA_ID=1234567890 # your camera did
    RTSP_URL=rtsp://192.168.1.xx:8554/your_stream1
    EOF

或者直接在文件夹内新建.env文件,打开文件,内容输入:

    MILOCO_PASSWORD=your_miloco_password_md5
    CAMERA_ID=1234567890 # your camera did
    RTSP_URL=rtsp://192.168.1.xx:8554/your_stream1
  • MILOCO_PASSWORD 是登录miloco时设置的6位数字密码的32位MD5值(在网上找个MD5在线转换工具就可以生成,例如[[https://www.jyshare.com/crypto/md5/]])。
  • CAMERA_ID 是摄像头的did
  • RTSP_URL 是要推流的地址,注意your_stream1替换成配置Go2rtc时填写的stream名称
  1. 重启转发服务: docker compose restart micam1
  2. 这样,在Go2rtc的主页,点击对应stream后边的stream连接,即可查看视频。