From 1ef708f925eefce1a6342fa2015ac4b3e0186d9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E5=B0=8F=E4=BA=91?= Date: Mon, 2 Feb 2026 15:02:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/docker-compose.yml | 117 ++++++++++++++++++++++++++++++++++---- 1 file changed, 106 insertions(+), 11 deletions(-) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 9c94ac3..ebf7337 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -311,6 +311,14 @@ services: links: - ruoyi-redis - ruoyi-mysql + # ============================================================================ + # WVP-PRO 视频管理平台 + # ============================================================================ + # WVP是基于GB28181协议的视频管理平台,使用ZLMediaKit作为流媒体服务器 + # 端口说明: + # - 18080:18978 → WVP的HTTP API端口,外部通过18080访问 + # - 5060:5060/udp → SIP信令端口,用于GB28181设备注册和控制 + # ============================================================================ wvp-pro: container_name: wvp-pro image: wvp-pro-runtime @@ -333,18 +341,53 @@ services: - SIP_Domain=3502000000 - SIP_Id=35020000002000000001 - SIP_Password=wvp_sip_password - # ZLM 媒体服务器配置 + # ========== ZLM 媒体服务器配置 ========== + # ZLM_HOST: WVP调用ZLM API时使用的地址(容器内部服务名) + # 用途:wvp-pro通过 http://zlmediakit:80/index/api/xxx 调用ZLM的RESTful API - ZLM_HOST=zlmediakit + # ZLM_HOOK_HOST: ZLM回调WVP时使用的地址(容器内部服务名) + # 用途:zlmediakit通过 http://wvp-pro:18978/index/hook/on_publish 回调WVP - ZLM_HOOK_HOST=wvp-pro + # ZLM_SERCERT: ZLM的API密钥,必须与zlmediakit/config.ini中的api.secret一致 - ZLM_SERCERT=fgVdaI75GcSBPeSBvg8NL7aRrlkCtGPv - # 流媒体地址配置 + # ========== 流媒体地址配置 ========== + # Stream_IP: 生成播放地址时使用的IP(宿主机外网IP或域名) + # 用途:WVP生成的播放地址格式为 http://220.154.136.137:9090/live/123.live.flv + # 对应application.yml中的media.stream-ip配置 - Stream_IP=220.154.136.137 + # SDP_IP: WVP在国标信令中使用的IP + # 用途:GB28181设备通过此IP与WVP进行媒体流传输 + # 对应application.yml中的media.sdp-ip配置 - SDP_IP=220.154.136.137 - # 流媒体端口配置 + # ========== 流媒体端口配置(宿主机外部端口) ========== + # 以下端口用于生成客户端播放地址,必须与zlmediakit容器的端口映射一致 + # + # MediaHttp: HTTP播放端口(对应zlmediakit的9090:80映射) + # 用途:生成HTTP-FLV/HLS/TS/RTC播放地址 + # 示例:http://220.154.136.137:9090/live/123.live.flv + # 对应application.yml中的media.flv-port和media.ws-flv-port配置 - MediaHttp=9090 + # MediaHttps: HTTPS播放端口(对应zlmediakit的8443:443映射) + # 用途:生成HTTPS-FLV/HLS/TS播放地址 + # 示例:https://220.154.136.137:8443/live/123.live.flv + # 对应application.yml中的media.flv-ssl-port和media.ws-flv-ssl-port配置 - MediaHttps=8443 + # MediaRtp: RTP代理端口(对应zlmediakit的10000:10000映射) + # 用途:GB28181设备的RTP流传输 + # 对应application.yml中的media.rtp-proxy-port配置 + # 对应zlmediakit config.ini中的rtp_proxy.port=10000 - MediaRtp=10000 + # MediaRtmp: RTMP推流端口(对应zlmediakit的1935:1935映射) + # 用途:OBS等推流工具推流地址 + # 示例:rtmp://220.154.136.137:1935/live/123 + # 对应application.yml中的media.rtmp-port配置 + # 对应zlmediakit config.ini中的rtmp.port=1935 - MediaRtmp=1935 + # MediaRtsp: RTSP推流/拉流端口(对应zlmediakit的8554:554映射) + # 用途:RTSP协议的推流和拉流 + # 示例:rtsp://220.154.136.137:8554/live/123 + # 对应application.yml中的media.rtsp-port配置 + # 对应zlmediakit config.ini中的rtsp.port=554 - MediaRtsp=8554 # 录像配置 - RecordPushLive=false @@ -364,20 +407,72 @@ services: - ruoyi-mysql - zlmediakit restart: unless-stopped + # ============================================================================ + # ZLMediaKit 流媒体服务器 + # ============================================================================ + # ZLMediaKit是高性能的流媒体服务器,支持RTMP/RTSP/HLS/HTTP-FLV等多种协议 + # + # 端口映射说明(格式:宿主机端口:容器内部端口): + # 1. API访问端口: + # - 9090:80 → HTTP API端口,WVP通过容器内部的80端口访问ZLM API + # - 8443:443 → HTTPS API端口(通常不启用) + # + # 2. 客户端播放端口: + # - 9090:80 → HTTP-FLV/HLS/TS/RTC播放,客户端通过9090端口播放 + # - 8443:443 → HTTPS播放端口 + # + # 3. 推流/拉流协议端口: + # - 1935:1935 → RTMP推流端口,OBS推流地址:rtmp://IP:1935/live/stream + # - 8554:554 → RTSP推流/拉流端口 + # - 10000:10000 → RTP代理端口(TCP/UDP),用于GB28181设备 + # - 8000:8000/udp → WebRTC UDP端口 + # - 9900:9000/udp → WebRTC UDP端口(注意避免与minio 9000端口冲突) + # + # 配置文件映射: + # - ./zlmediakit/config.ini → /opt/media/conf/config.ini + # 重要配置项: + # * general.mediaServerId=polaris(必须与数据库wvp_media_server表的id字段一致) + # * api.secret=fgVdaI75GcSBPeSBvg8NL7aRrlkCtGPv(必须与ZLM_SERCERT一致) + # * http.port=80(容器内部HTTP端口) + # * rtmp.port=1935(RTMP端口) + # * rtsp.port=554(RTSP端口) + # * rtp_proxy.port=10000(RTP代理端口) + # ============================================================================ zlmediakit: container_name: zlmediakit image: registry.t-aaron.com/zlmediakit/zlmediakit:Release.latest environment: - TZ=Asia/Shanghai ports: - - "1935:1935" # RTMP - - "9090:80" # HTTP - - "8443:443" # HTTPS - - "8554:554" # RTSP - - "10000:10000" # RTP TCP - - "10000:10000/udp" # RTP UDP - - "8000:8000/udp" # WebRTC UDP - - "9900:9000/udp" # WebRTC UDP (注意:与 minio 9000 端口冲突,可能需要调整) + # RTMP推流端口(容器内部1935映射到宿主机1935) + # OBS推流地址:rtmp://220.154.136.137:1935/live/streamId + # 对应config.ini中的rtmp.port=1935 + - "1935:1935" + # HTTP端口(容器内部80映射到宿主机9090) + # 用途1:WVP通过http://zlmediakit:80访问ZLM API + # 用途2:客户端通过http://220.154.136.137:9090播放HTTP-FLV/HLS/TS + # 对应config.ini中的http.port=80 + - "9090:80" + # HTTPS端口(容器内部443映射到宿主机8443) + # 客户端通过https://220.154.136.137:8443播放 + # 对应config.ini中的http.sslport=443 + - "8443:443" + # RTSP端口(容器内部554映射到宿主机8554) + # RTSP地址:rtsp://220.154.136.137:8554/live/streamId + # 对应config.ini中的rtsp.port=554 + - "8554:554" + # RTP代理端口TCP(容器内部10000映射到宿主机10000) + # 用于GB28181设备的RTP流传输 + # 对应config.ini中的rtp_proxy.port=10000 + - "10000:10000" + # RTP代理端口UDP(容器内部10000映射到宿主机10000) + - "10000:10000/udp" + # WebRTC UDP端口(容器内部8000映射到宿主机8000) + # 对应config.ini中的rtc.port=8000 + - "8000:8000/udp" + # WebRTC UDP端口(容器内部9000映射到宿主机9900) + # 注意:宿主机使用9900避免与minio的9000端口冲突 + - "9900:9000/udp" volumes: - ./zlmediakit/config.ini:/opt/media/conf/config.ini restart: unless-stopped