feat:修改配置
This commit is contained in:
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"kiroAgent.configureMCP": "Disabled"
|
||||||
|
}
|
||||||
@@ -1,83 +1,5 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
polaris-redis:
|
|
||||||
image: redis:latest # 使用官方Redis镜像
|
|
||||||
restart: unless-stopped
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
|
|
||||||
interval: 15s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
start_period: 10s
|
|
||||||
networks:
|
|
||||||
- media-net
|
|
||||||
# ports:
|
|
||||||
# - 6379:6379
|
|
||||||
volumes:
|
|
||||||
- ./redis/conf/redis.conf:/opt/polaris/redis/redis.conf
|
|
||||||
- ./volumes/redis/data/:/data
|
|
||||||
environment:
|
|
||||||
TZ: "Asia/Shanghai"
|
|
||||||
command: redis-server /opt/polaris/redis/redis.conf --appendonly yes
|
|
||||||
|
|
||||||
polaris-mysql:
|
|
||||||
image: mysql:8 # 使用官方MySQL 8镜像
|
|
||||||
restart: unless-stopped
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306" ]
|
|
||||||
interval: 15s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
start_period: 10s
|
|
||||||
networks:
|
|
||||||
- media-net
|
|
||||||
environment:
|
|
||||||
MYSQL_DATABASE: wvp
|
|
||||||
MYSQL_ROOT_PASSWORD: root
|
|
||||||
MYSQL_USER: wvp_user
|
|
||||||
MYSQL_PASSWORD: wvp_password
|
|
||||||
TZ: Asia/Shanghai
|
|
||||||
# ports:
|
|
||||||
# - 3306:3306
|
|
||||||
volumes:
|
|
||||||
- ./mysql/conf:/etc/mysql/conf.d
|
|
||||||
- ./logs/mysql:/logs
|
|
||||||
- ./volumes/mysql/data:/var/lib/mysql
|
|
||||||
- ../数据库/2.7.4/初始化-mysql-2.7.4.sql:/docker-entrypoint-initdb.d/init.sql # 初始化SQL脚本目录
|
|
||||||
command: [
|
|
||||||
# '--default-authentication-plugin=mysql_native_password',
|
|
||||||
'--innodb-buffer-pool-size=80M',
|
|
||||||
'--character-set-server=utf8mb4',
|
|
||||||
'--collation-server=utf8mb4_general_ci',
|
|
||||||
'--default-time-zone=+8:00',
|
|
||||||
'--lower-case-table-names=1'
|
|
||||||
]
|
|
||||||
|
|
||||||
polaris-media:
|
|
||||||
image: zlmediakit/zlmediakit:master # 替换为官方镜像
|
|
||||||
restart: always
|
|
||||||
networks:
|
|
||||||
- media-net
|
|
||||||
ports:
|
|
||||||
#- "6080:80/tcp" # [播流]HTTP 安全考虑-非测试阶段需要注释掉,改为由nginx代理播流地址
|
|
||||||
#- "4443:443/tcp" # [播流]HTTPS 安全考虑-非测试阶段需要注释掉,改为由nginx代理播流地址
|
|
||||||
- "${MediaRtmp:-10935}:${MediaRtmp:-10935}/tcp" # [收流]RTMP
|
|
||||||
- "${MediaRtmp:-10935}:${MediaRtmp:-10935}/udp" # [收流]RTMP
|
|
||||||
#- "41935:41935/tcp" # [收流]RTMPS 无效
|
|
||||||
- "${MediaRtsp:-5540}:${MediaRtsp:-5540}/tcp" # [收流]RTSP
|
|
||||||
- "${MediaRtsp:-5540}:${MediaRtsp:-5540}/udp" # [收流]RTSP
|
|
||||||
#- "45540:45540/tcp" # [收流]RTSPS 无效
|
|
||||||
- "${MediaRtp:-10000}:${MediaRtp:-10000}/tcp" # [收流]RTP
|
|
||||||
- "${MediaRtp:-10000}:${MediaRtp:-10000}/udp" # [收流]RTP
|
|
||||||
volumes:
|
|
||||||
- ./volumes/video:/opt/media/bin/www/record/
|
|
||||||
- ./logs/media:/opt/media/log/
|
|
||||||
- ./media/config.ini:/conf/config.ini
|
|
||||||
command: [
|
|
||||||
'MediaServer',
|
|
||||||
'-c', '/conf/config.ini',
|
|
||||||
'-l', '0'
|
|
||||||
]
|
|
||||||
|
|
||||||
polaris-wvp:
|
polaris-wvp:
|
||||||
# 显式指定构建上下文和Dockerfile路径
|
# 显式指定构建上下文和Dockerfile路径
|
||||||
@@ -132,24 +54,8 @@ services:
|
|||||||
RecordSip: ${RecordSip}
|
RecordSip: ${RecordSip}
|
||||||
RecordPushLive: ${RecordPushLive}
|
RecordPushLive: ${RecordPushLive}
|
||||||
|
|
||||||
polaris-nginx:
|
|
||||||
# 显式指定构建上下文和Dockerfile路径
|
|
||||||
build:
|
|
||||||
context: .. # 构建上下文的根路径
|
|
||||||
dockerfile: ./docker/nginx/Dockerfile # 相对于上下文路径的Dockerfile位置
|
|
||||||
ports:
|
|
||||||
- "${WebHttp:-8080}:8080"
|
|
||||||
depends_on:
|
|
||||||
- polaris-wvp
|
|
||||||
volumes:
|
|
||||||
- ./nginx/templates/:/etc/nginx/templates
|
|
||||||
- ./logs/nginx:/var/log/nginx
|
|
||||||
environment:
|
|
||||||
# 流链接的IP
|
|
||||||
Stream_IP: ${Stream_IP}
|
|
||||||
networks:
|
|
||||||
- media-net
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
media-net:
|
1panel-network:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
155
docker/docker-compose1.yml
Normal file
155
docker/docker-compose1.yml
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
version: '3'
|
||||||
|
services:
|
||||||
|
polaris-redis:
|
||||||
|
image: redis:latest # 使用官方Redis镜像
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "redis-cli", "--raw", "incr", "ping" ]
|
||||||
|
interval: 15s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 10
|
||||||
|
start_period: 10s
|
||||||
|
networks:
|
||||||
|
- media-net
|
||||||
|
# ports:
|
||||||
|
# - 6379:6379
|
||||||
|
volumes:
|
||||||
|
- ./redis/conf/redis.conf:/opt/polaris/redis/redis.conf
|
||||||
|
- ./volumes/redis/data/:/data
|
||||||
|
environment:
|
||||||
|
TZ: "Asia/Shanghai"
|
||||||
|
command: redis-server /opt/polaris/redis/redis.conf --appendonly yes
|
||||||
|
|
||||||
|
polaris-mysql:
|
||||||
|
image: mysql:8 # 使用官方MySQL 8镜像
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "bash", "-c", "cat < /dev/null > /dev/tcp/127.0.0.1/3306" ]
|
||||||
|
interval: 15s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 10
|
||||||
|
start_period: 10s
|
||||||
|
networks:
|
||||||
|
- media-net
|
||||||
|
environment:
|
||||||
|
MYSQL_DATABASE: wvp
|
||||||
|
MYSQL_ROOT_PASSWORD: root
|
||||||
|
MYSQL_USER: wvp_user
|
||||||
|
MYSQL_PASSWORD: wvp_password
|
||||||
|
TZ: Asia/Shanghai
|
||||||
|
# ports:
|
||||||
|
# - 3306:3306
|
||||||
|
volumes:
|
||||||
|
- ./mysql/conf:/etc/mysql/conf.d
|
||||||
|
- ./logs/mysql:/logs
|
||||||
|
- ./volumes/mysql/data:/var/lib/mysql
|
||||||
|
- ../数据库/2.7.4/初始化-mysql-2.7.4.sql:/docker-entrypoint-initdb.d/init.sql # 初始化SQL脚本目录
|
||||||
|
command: [
|
||||||
|
# '--default-authentication-plugin=mysql_native_password',
|
||||||
|
'--innodb-buffer-pool-size=80M',
|
||||||
|
'--character-set-server=utf8mb4',
|
||||||
|
'--collation-server=utf8mb4_general_ci',
|
||||||
|
'--default-time-zone=+8:00',
|
||||||
|
'--lower-case-table-names=1'
|
||||||
|
]
|
||||||
|
|
||||||
|
polaris-media:
|
||||||
|
image: zlmediakit/zlmediakit:master # 替换为官方镜像
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- media-net
|
||||||
|
ports:
|
||||||
|
#- "6080:80/tcp" # [播流]HTTP 安全考虑-非测试阶段需要注释掉,改为由nginx代理播流地址
|
||||||
|
#- "4443:443/tcp" # [播流]HTTPS 安全考虑-非测试阶段需要注释掉,改为由nginx代理播流地址
|
||||||
|
- "${MediaRtmp:-10935}:${MediaRtmp:-10935}/tcp" # [收流]RTMP
|
||||||
|
- "${MediaRtmp:-10935}:${MediaRtmp:-10935}/udp" # [收流]RTMP
|
||||||
|
#- "41935:41935/tcp" # [收流]RTMPS 无效
|
||||||
|
- "${MediaRtsp:-5540}:${MediaRtsp:-5540}/tcp" # [收流]RTSP
|
||||||
|
- "${MediaRtsp:-5540}:${MediaRtsp:-5540}/udp" # [收流]RTSP
|
||||||
|
#- "45540:45540/tcp" # [收流]RTSPS 无效
|
||||||
|
- "${MediaRtp:-10000}:${MediaRtp:-10000}/tcp" # [收流]RTP
|
||||||
|
- "${MediaRtp:-10000}:${MediaRtp:-10000}/udp" # [收流]RTP
|
||||||
|
volumes:
|
||||||
|
- ./volumes/video:/opt/media/bin/www/record/
|
||||||
|
- ./logs/media:/opt/media/log/
|
||||||
|
- ./media/config.ini:/conf/config.ini
|
||||||
|
command: [
|
||||||
|
'MediaServer',
|
||||||
|
'-c', '/conf/config.ini',
|
||||||
|
'-l', '0'
|
||||||
|
]
|
||||||
|
|
||||||
|
polaris-wvp:
|
||||||
|
# 显式指定构建上下文和Dockerfile路径
|
||||||
|
build:
|
||||||
|
context: .. # 构建上下文的根路径
|
||||||
|
dockerfile: ./docker/wvp/Dockerfile # 相对于上下文路径的Dockerfile位置
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- media-net
|
||||||
|
ports:
|
||||||
|
- "18978:18978"
|
||||||
|
- "${SIP_Port:-8116}:${SIP_Port:-8116}/udp"
|
||||||
|
- "${SIP_Port:-8116}:${SIP_Port:-8116}/tcp"
|
||||||
|
depends_on:
|
||||||
|
- polaris-redis
|
||||||
|
- polaris-mysql
|
||||||
|
- polaris-media
|
||||||
|
volumes:
|
||||||
|
- ./wvp/wvp/:/opt/ylcx/wvp/
|
||||||
|
- ./logs/wvp:/opt/wvp/logs/
|
||||||
|
environment:
|
||||||
|
TZ: "Asia/Shanghai"
|
||||||
|
# 流链接的IP
|
||||||
|
Stream_IP: ${Stream_IP}
|
||||||
|
# SDP里的IP
|
||||||
|
SDP_IP: ${SDP_IP}
|
||||||
|
# [可选] zlm服务器访问WVP所使用的IP, 默认使用127.0.0.1,zlm和wvp没有部署在同一台服务器时必须配置
|
||||||
|
ZLM_HOOK_HOST: polaris-wvp
|
||||||
|
ZLM_HOST: polaris-media
|
||||||
|
ZLM_SERCERT: su6TiedN2rVAmBbIDX0aa0QTiBJLBdcf
|
||||||
|
|
||||||
|
MediaHttp: ${WebHttp:-8080}
|
||||||
|
#MediaHttps: ${WebHttps:-8081}
|
||||||
|
MediaRtmp: ${MediaRtmp:-10935}
|
||||||
|
MediaRtsp: ${MediaRtsp:-5540}
|
||||||
|
MediaRtp: ${MediaRtp:-10000}
|
||||||
|
|
||||||
|
REDIS_HOST: polaris-redis
|
||||||
|
REDIS_PORT: 6379
|
||||||
|
|
||||||
|
DATABASE_HOST: polaris-mysql
|
||||||
|
DATABASE_PORT: 3306
|
||||||
|
DATABASE_USER: wvp_user
|
||||||
|
DATABASE_PASSWORD: wvp_password
|
||||||
|
|
||||||
|
SIP_ShowIP: ${SIP_ShowIP}
|
||||||
|
SIP_Port: ${SIP_Port:-8116}
|
||||||
|
SIP_Domain: ${SIP_Domain}
|
||||||
|
SIP_Id: ${SIP_Id}
|
||||||
|
SIP_Password: ${SIP_Password}
|
||||||
|
|
||||||
|
RecordSip: ${RecordSip}
|
||||||
|
RecordPushLive: ${RecordPushLive}
|
||||||
|
|
||||||
|
polaris-nginx:
|
||||||
|
# 显式指定构建上下文和Dockerfile路径
|
||||||
|
build:
|
||||||
|
context: .. # 构建上下文的根路径
|
||||||
|
dockerfile: ./docker/nginx/Dockerfile # 相对于上下文路径的Dockerfile位置
|
||||||
|
ports:
|
||||||
|
- "${WebHttp:-8080}:8080"
|
||||||
|
depends_on:
|
||||||
|
- polaris-wvp
|
||||||
|
volumes:
|
||||||
|
- ./nginx/templates/:/etc/nginx/templates
|
||||||
|
- ./logs/nginx:/var/log/nginx
|
||||||
|
environment:
|
||||||
|
# 流链接的IP
|
||||||
|
Stream_IP: ${Stream_IP}
|
||||||
|
networks:
|
||||||
|
- media-net
|
||||||
|
|
||||||
|
networks:
|
||||||
|
media-net:
|
||||||
|
driver: bridge
|
||||||
BIN
snap/34020000001320000002_34020000001320000002.jpg
Normal file
BIN
snap/34020000001320000002_34020000001320000002.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 137 KiB |
@@ -94,8 +94,7 @@ public class PlayController {
|
|||||||
Assert.notNull(channel, "通道不存在");
|
Assert.notNull(channel, "通道不存在");
|
||||||
|
|
||||||
DeferredResult<WVPResult<StreamContent>> result = new DeferredResult<>(userSetting.getPlayTimeout().longValue());
|
DeferredResult<WVPResult<StreamContent>> result = new DeferredResult<>(userSetting.getPlayTimeout().longValue());
|
||||||
|
result.onTimeout(()->{
|
||||||
result.onTimeout(()->{
|
|
||||||
log.info("[点播等待超时] deviceId:{}, channelId:{}, ", deviceId, channelId);
|
log.info("[点播等待超时] deviceId:{}, channelId:{}, ", deviceId, channelId);
|
||||||
// 释放rtpserver
|
// 释放rtpserver
|
||||||
WVPResult<StreamContent> wvpResult = new WVPResult<>();
|
WVPResult<StreamContent> wvpResult = new WVPResult<>();
|
||||||
|
|||||||
@@ -73,18 +73,18 @@ public class ZLMHttpHookListener {
|
|||||||
*/
|
*/
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
@PostMapping(value = "/on_play", produces = "application/json;charset=UTF-8")
|
@PostMapping(value = "/on_play", produces = "application/json;charset=UTF-8")
|
||||||
public HookResult onPlay(@RequestBody OnPlayHookParam param) {
|
public HookResult onPlay(HttpServletRequest request, @RequestBody OnPlayHookParam param) {
|
||||||
|
System.out.println(request);
|
||||||
Map<String, String> paramMap = MediaServerUtils.urlParamToMap(param.getParams());
|
// Map<String, String> paramMap = MediaServerUtils.urlParamToMap(param.getParams());
|
||||||
// 对于播放流进行鉴权
|
// // 对于播放流进行鉴权
|
||||||
boolean authenticateResult = mediaService.authenticatePlay(param.getApp(), param.getStream(), paramMap.get("callId"));
|
// boolean authenticateResult = mediaService.authenticatePlay(param.getApp(), param.getStream(), paramMap.get("callId"));
|
||||||
if (!authenticateResult) {
|
// if (!authenticateResult) {
|
||||||
log.info("[ZLM HOOK] 播放鉴权 失败:{}->{}", param.getMediaServerId(), param);
|
// log.info("[ZLM HOOK] 播放鉴权 失败:{}->{}", param.getMediaServerId(), param);
|
||||||
return new HookResult(401, "Unauthorized");
|
// return new HookResult(401, "Unauthorized");
|
||||||
}
|
// }
|
||||||
if (log.isDebugEnabled()){
|
// if (log.isDebugEnabled()){
|
||||||
log.debug("[ZLM HOOK] 播放鉴权成功:{}->{}", param.getMediaServerId(), param);
|
// log.debug("[ZLM HOOK] 播放鉴权成功:{}->{}", param.getMediaServerId(), param);
|
||||||
}
|
// }
|
||||||
return HookResult.SUCCESS();
|
return HookResult.SUCCESS();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -63,13 +63,18 @@ sip:
|
|||||||
|
|
||||||
#zlm 默认服务器配置
|
#zlm 默认服务器配置
|
||||||
media:
|
media:
|
||||||
|
auto-config: false
|
||||||
id: zlmediakit-local
|
id: zlmediakit-local
|
||||||
# [必须修改] zlm服务器的内网IP
|
# [必须修改] zlm服务器的内网IP
|
||||||
|
# ip: 192.168.0.48
|
||||||
ip: 192.168.0.66
|
ip: 192.168.0.66
|
||||||
# [必须修改] zlm服务器的http.port
|
# [必须修改] zlm服务器的http.port
|
||||||
http-port: 85
|
http-port: 85
|
||||||
# [必选选] zlm服务器的hook.admin_params=secret
|
# [必选选] zlm服务器的hook.admin_params=secret
|
||||||
secret:
|
# http-port: 88
|
||||||
|
# secret: 123456
|
||||||
|
secret: TWSYFgYJOQWB4ftgeYut8DW4wbs7pQnj
|
||||||
|
# secret: sH1rr7GBl4a6eMjEAl8VM2hqj7Nr4E2H
|
||||||
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
|
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
|
||||||
rtp:
|
rtp:
|
||||||
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
|
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
|
||||||
|
|||||||
@@ -57,7 +57,8 @@ media:
|
|||||||
# [必须修改] zlm服务器的http.port
|
# [必须修改] zlm服务器的http.port
|
||||||
http-port: ${ZLM_PORT:80}
|
http-port: ${ZLM_PORT:80}
|
||||||
# [可选] zlm服务器的hook.admin_params=secret
|
# [可选] zlm服务器的hook.admin_params=secret
|
||||||
secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
|
secret: ${ZLM_SECRET:035c73f7-bb6b-4889-a715-d9eb2d1925cc}
|
||||||
|
# secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
|
||||||
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
|
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
|
||||||
rtp:
|
rtp:
|
||||||
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
|
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
|
||||||
|
|||||||
Reference in New Issue
Block a user