Skip to content

🛠️ ZLMediaKit 媒体服务器 —— 企业级部署与配置指南

高性能 · 低延迟 · 企业级流媒体底座 基于 ZLMediaKit 的分布式流媒体服务配置指南,确保视频流的稳定接入与分发。


📥 第一步:环境获取与安装

请根据您的服务器环境,下载并安装对应的 ZLMediaKit 版本。

环境获取方式适用场景
Linux官方 Release 或 源码编译推荐:CentOS/Ubuntu 生产环境
Windows官方 Release仅推荐:开发与测试环境

官方源码仓库ZLMediaKit/ZLMediaKit


⚙️ 第二步:服务端核心配置 (config.ini)

进入 ZLMediaKit 安装目录,找到 config.ini 文件进行关键参数修改。

1. 基础服务配置

请务必修改以下核心字段,确保服务安全与唯一性。

ini
# 服务器唯一标识 (必须修改)
[general]
mediaServerId=ruoyi_nvr_zlm_01 

# API 安全密钥 (必须修改,用于Java后端Hook验证)
secret=your_secure_hook_secret_key 

# 网络端口配置
[http]
# HTTP 服务端口 (默认80,若被占用请修改)
port=80

2. 启动服务

  • Windows: 双击运行 MediaServer.exe。
  • Linux: 给予执行权限并运行 ./MediaServer。

3.验证:

启动成功后,访问 http://127.0.0.1:你配置的端口/。若无法访问,请检查进程是否启动或端口是否被占用。

🔗 第三步:Nacos 配置中心对接

在 application-dev.yml 中,配置 ZLM 客户端参数。

  1. 配置参数详解 (YAML)
YML
media:
  # [必填] 对应 config.ini 中的 mediaServerId
  id: ruoyi_nvr_zlm_01

  # [必填] ZLM 服务器内网 IP
  # 如果是本地测试填 127.0.0.1,生产环境填服务器内网IP
  ip: zlm服务ip

  # [必填] ZLM 服务器的 http.port
  http-port: 80

  # [可选] ZLM 服务器的 hook 所使用的 IP
  # 默认使用 sip.ip,若有多网卡需指定具体 IP
  hook-ip: java服务ip

  # [必填] 对应 config.ini 中的 secret
  # 用于后端验证 ZLM 的 Hook 请求合法性
  secret: your_secure_hook_secret_key

  # RTP 传输策略配置
  rtp:
    # [可选] 是否启用多端口模式
    # 建议设为 true,单端口模式 (false) 仅建议用于点播测试
    enable: true

    # [可选] 在此范围内选择端口用于媒体流传输
    # 必须与 config.ini 中的 portRange 保持一致
    port-range: 30000,30500

    # [可选] 国标级联在此范围内选择端口发送媒体流
    # 必须与 config.ini 中的 sendPortRange 保持一致
    send-port-range: 30000,30500
  1. 关键参数映射表
Java 配置项对应 ZLM 字段说明
media.idmediaServerId服务器唯一 ID,必须一致
media.secretsecretHook 回调密钥,必须一致
media.rtp.enablertp.enable传输模式开关

▶️ 第四步:服务启动与验证

  1. 启动 ZLM:确保流媒体服务已在后台运行。
  2. 启动 Java 模块:运行 RuoYiZlmApplication。
  3. 日志检查:
    1. 若控制台输出 zlm服务连接成功,则表示配置无误,连接已建立。
    2. 若报错,请检查 IP、端口及 Secret 是否一致。

💡 专家级运维建议 (Tips)

  1. 防火墙策略 (关键): 开启 enable: true (多端口模式) 后,ZLM 会随机使用 30000-40500 范围内的 UDP 端口传输视频流。务必在服务器防火墙及云服务商安全组中开放该 UDP 端口段,否则视频画面无法播放。

  2. 单端口 vs 多端口模式:

    • 多端口模式 (true):推荐生产环境使用。使用不同端口区分每一路流,兼容性好,不易丢包。
    • 单端口模式 (false):仅使用一个端口,通过 SSRC 区分流。对网络环境要求高,仅建议在端口受限的测试环境使用。
  3. Secret 一致性校验: Java 后端与 ZLM 服务端的 Secret 必须完全一致。若不一致,ZLM 的 Hook 回调将被 Java 拒绝,导致设备显示在线但无法拉流(无画面)。

基于 MIT 许可发布