Open keehub opened 2 years ago
2022-04-13 17:19:23.037 [http-nio-18080-exec-9] INFO c.g.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander:357 - 34020000001320000003_34020000001320000003 分配的ZLM为: wvp-media-id [【公网IP】:43260]
2022-04-13 17:19:23.166 [http-nio-18080-exec-9] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20033} created. insert into log ( name, type, uri, address, result, timing, username, createTime) values ('开始点播', 'GET', '/api/play/start/34020000001320000003/34020000001320000003', '43.250.106.176', '200 OK', 1454, 'admin', '2022-04-13 17:19:23')
2022-04-13 17:19:23.167 [http-nio-18080-exec-9] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20033} Parameters : []
2022-04-13 17:19:23.167 [http-nio-18080-exec-9] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20033} Types : []
2022-04-13 17:19:23.169 [http-nio-18080-exec-9] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20033} executed. 2.146987 millis. insert into log ( name, type, uri, address, result, timing, username, createTime) values ('开始点播', 'GET', '/api/play/start/34020000001320000003/34020000001320000003', '43.250.106.176', '200 OK', 1454, 'admin', '2022-04-13 17:19:23')
2022-04-13 17:19:23.169 [http-nio-18080-exec-9] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20033} closed
2022-04-13 17:19:23.230 [wvp-5] INFO c.g.i.v.g.t.e.r.impl.InviteResponseProcessor:84 - [回复ack] sip:34020000001320000003@175.9.140.239:60735-> 175.9.140.239:60735
2022-04-13 17:19:23.714 [wvp-6] INFO c.g.i.v.g.t.event.request.impl.ByeRequestProcessor:89 - 收到bye, [34020000001320000003/34020000002000000001]
2022-04-13 17:19:23.716 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20034} created. SELECT * FROM device_channel WHERE channelId=?
2022-04-13 17:19:23.716 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20034} Parameters : [34020000001320000003]
2022-04-13 17:19:23.716 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20034} Types : [VARCHAR]
2022-04-13 17:19:23.718 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20034} executed. 1.238913 millis. SELECT * FROM device_channel WHERE channelId=?
2022-04-13 17:19:23.719 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20034} closed
2022-04-13 17:19:23.719 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20035} created. SELECT * FROM device WHERE deviceId = ?
2022-04-13 17:19:23.719 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20035} Parameters : [34020000001320000003]
2022-04-13 17:19:23.720 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20035} Types : [VARCHAR]
2022-04-13 17:19:23.720 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20035} executed. 0.911392 millis. SELECT * FROM device WHERE deviceId = ?
2022-04-13 17:19:23.721 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20035} closed
2022-04-13 17:19:23.722 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20036} created. UPDATE device_channel SET streamId=null WHERE deviceId=? AND channelId=?
2022-04-13 17:19:23.722 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20036} Parameters : [34020000001320000003, 34020000002000000001]
2022-04-13 17:19:23.722 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20036} Types : [VARCHAR, VARCHAR]
2022-04-13 17:19:23.723 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20036} executed. 0.839975 millis. UPDATE device_channel SET streamId=null WHERE deviceId=? AND channelId=?
2022-04-13 17:19:23.723 [wvp-6] DEBUG druid.sql.Statement:134 - {conn-10010, pstmt-20036} closed
2022-04-13 17:19:41.035 [Timer-1] WARN com.genersoft.iot.vmp.service.impl.PlayServiceImpl:244 - 设备点播超时,deviceId:34020000001320000003 ,channelId:34020000001320000003
javax.sip.SipException: Cannot find listening point for transport TCP
at gov.nist.javax.sip.stack.SIPDialog.createRequest(SIPDialog.java:2472)
at gov.nist.javax.sip.stack.SIPDialog.createRequest(SIPDialog.java:2403)
at com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander.streamByeCmd(SIPCommander.java:733)
at com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander.streamByeCmd(SIPCommander.java:677)
at com.genersoft.iot.vmp.service.impl.PlayServiceImpl$1.run(PlayServiceImpl.java:250)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
wvp的media的配置提供下
wvp-GB28181-pro 和 ZLMediaKit 部署在同一台云Linux下,ZLMediaKit运行在docker 容器下,wvp-GB28181-pro运行在Linux 环境下,海康的网络摄像头是在我本地。
wvp的media的配置在下面
spring:
# [可选]上传文件大小限制
servlet:
multipart:
max-file-size: 10MB
max-request-size: 100MB
# REDIS数据库配置
redis:
# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
host: ***
# [必须修改] 端口号
port: 6379
# [可选] 数据库 DB
database: 1
# [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
password:
# [可选] 超时时间
timeout: 10000
# [可选] 一个pool最多可分配多少个jedis实例
poolMaxTotal: 1000
# [可选] 一个pool最多有多少个状态为idle(空闲)的jedis实例
poolMaxIdle: 500
# [可选] 最大的等待时间(秒)
poolMaxWait: 5
# [可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://***/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false
username: root
password: 12345678
druid:
initialSize: 10 # 连接池初始化连接数
maxActive: 200 # 连接池最大连接数
minIdle: 5 # 连接池最小空闲连接数
maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
keepAlive: true # 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。
validationQuery: select 1 # 检测连接是否有效sql,要求是查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
testWhileIdle: true # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
testOnBorrow: false # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
testOnReturn: false # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
poolPreparedStatements: false # 是否開啟PSCache,並且指定每個連線上PSCache的大小
timeBetweenEvictionRunsMillis: 60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒
minEvictableIdleTimeMillis: 300000 # 配置一個連線在池中最小生存的時間,單位是毫秒
filters: stat,wall,slf4j # 配置监控统计拦截的filters,监控统计用的filter:sta, 日志用的filter:log4j, 防御sql注入的filter:wall
useGlobalDataSourceStat: true # 合并多个DruidDataSource的监控数据
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000
#stat-view-servlet.url-pattern: /admin/druid/*
# druid管理监控页面的一些配置
rj-druid-manage:
allow: # 访问druid监控页面的IP白名单
deny: # 访问druid监控页面IP黑名单
loginUsername: rjAdmin # 访问druid监控页面账号
loginPassword: rj@2022 # 访问druid监控页面密码
#mybatis:
# configuration:
# # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# # 返回类型为Map,显示null对应的字段
# call-setters-on-nulls: true
## [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
port: 18080
# [可选] HTTPS配置, 默认不开启
ssl:
# [可选] 是否开启HTTPS访问
enabled: false
# [可选] 证书文件路径,放置在resource/目录下即可,修改xxx为文件名
key-store: classpath:xxx.jks
# [可选] 证书密码
key-password: password
# [可选] 证书类型, 默认为jks,根据实际修改
key-store-type: JKS
# 作为28181服务器的配置
sip:
# [必须修改] 本机的IP, 必须是网卡上的IP,用于sip下协议栈监听ip,如果监听所有设置为0.0.0.0
monitor-ip: 0.0.0.0
# [必须修改] 本机的IP
ip: 【Linux公网IP】
# [可选] 28181服务监听的端口
port: 5060
# 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
# 后两位为行业编码,定义参照附录D.3
# 3701020049标识山东济南历下区 信息行业接入
# [可选]
domain: 3402000000
# [可选]
id: 34020000002000000001
# [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
password: 12345678
# [可选] 心跳超时时间, 建议设置为心跳周期的三倍
keepalive-timeout: 255
# [可选] 国标级联注册失败,再次发起注册的时间间隔。 默认60秒
register-time-interval: 60
# [可选] 云台控制速度
ptz-speed: 50
# TODO [可选] 收到心跳后自动上线, 重启服务后会将所有设备置为离线,默认false,等待注册后上线。设置为true则收到心跳设置为上线。
# keepalliveToOnline: false
# 是否存储alarm信息
alarm: false
#zlm 默认服务器配置
media:
# [必须修改] zlm服务器唯一id,用于触发hook时区别是哪台服务器,general.mediaServerId
id: wvp-media-id
# [必须修改] zlm服务器的内网IP
ip: 【Linux公网IP,docker流媒体 ip 都试过】
# [可选] 返回流地址时的ip,置空使用 media.ip
stream-ip: 【Linux公网IP】
# [可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip
sdp-ip: 【Linux公网IP】
# [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip
hook-ip:
# [必须修改] zlm服务器的http.port
http-port: 8001
# [可选] zlm服务器的http.sslport, 置空使用zlm配置文件配置
http-ssl-port:
# [可选] zlm服务器的rtmp.port, 置空使用zlm配置文件配置
rtmp-port:
# [可选] zlm服务器的rtmp.sslport, 置空使用zlm配置文件配置
rtmp-ssl-port:
# [可选] zlm服务器的 rtp_proxy.port, 置空使用zlm配置文件配置
rtp-proxy-port:
# [可选] zlm服务器的 rtsp.port, 置空使用zlm配置文件配置
rtsp-port:
# [可选] zlm服务器的 rtsp.sslport, 置空使用zlm配置文件配置
rtsp-ssl-port:
# [可选] 是否自动配置ZLM, 如果希望手动配置ZLM, 可以设为false, 不建议新接触的用户修改
auto-config: true
# [可选] zlm服务器的hook.admin_params=secret
secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
# [可选] zlm服务器的general.streamNoneReaderDelayMS
stream-none-reader-delay-ms: 18000 # 无人观看多久自动关闭流, -1表示永不自动关闭,即 关闭按需拉流
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
rtp:
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
enable: true
# [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
port-range: 30000,30500 # 端口范围
# [可选] 国标级联在此范围内选择端口发送媒体流,
send-port-range: 30000,30500 # 端口范围
# 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用
record-assist-port: 0
# [可选] 日志配置, 一般不需要改
logging:
config: classpath:logback-spring-local.xml
# [根据业务需求配置]
user-settings:
# [可选] 服务ID,不写则为000000
server-id:
# [可选] 自动点播, 使用固定流地址进行播放时,如果未点播则自动进行点播, 需要rtp.enable=true
auto-apply-play: false
# [可选] 部分设备需要扩展SDP,需要打开此设置
senior-sdp: false
# 保存移动位置历史轨迹:true:保留历史数据,false:仅保留最后的位置(默认)
save-position-history: false
# 点播等待超时时间,单位:毫秒
play-timeout: 3000
# 上级点播等待超时时间,单位:毫秒
platform-play-timeout: 60000
# 是否开启接口鉴权
interface-authentication: true
# 自动配置redis 可以过期事件
redis-config: true
# 接口鉴权例外的接口, 即不进行接口鉴权的接口,尽量详细书写,尽量不用/**,至少两级目录
interface-authentication-excludes:
- /api/v1/**
# 推流直播是否录制
record-push-live: true
# 国标是否录制
record-sip: true
# 是否将日志存储进数据库
logInDatebase: true
# 第三方匹配,用于从stream钟获取有效信息
thirdPartyGBIdReg: "[\\s\\S]*"
# 在线文档: swagger-ui(生产环境建议关闭)
swagger-ui:
enabled: true
# 版本信息, 不需修改
version:
version: "@project.version@"
description: "@project.description@"
artifact-id: "@project.artifactId@"
wvp的media的配置提供下
仔细看配置文件,按实际情况填写!
仔细看配置文件,按实际情况填写!
同样的问题,详细对比过wvp和zlm的配置都是一样的。很奇怪大家很容易遇到的问题,但是在这里没有明说,而是提示去看wiki
我也遇见同样的问题了,想问一下,最后怎么解决的?
同样的问题,这个最后怎么解决呢
这个问题,分析配置无果就是抓包,一般问题多数出现在配置或者网络上。
遇到同样问题,请问题主解决了么?
统一回复下,这个基本都是wvp配置不当或者网络端口为开放造成的。
auto-apply-play 设置为true试试!
我的理解:这里展示的设备地址中的端口号,应该是摄像头里面设置好的 5060。不知道为啥会是一个随机端口号?
另外,请问你的问题解决了吗?
我也遇到这个问题了
说一下我的解决办法:
经过几天的折腾目前无法解决收流超时的问题,根据zlm的日志是推流失败导致的,目前还没找到解决办法,望本项目贡献者给予解决方案,谢谢
我也遇到了这个问题!不知道咋解决!
我这边出现的情况是:一部分摄像头可以正常播放实时视频,一部分不行,后台显示点播失败。这种一般是啥情况呢?
中的端口号,应该是摄像头里面设置好的 5060。不知道为啥会是一个随机端口号?
另外,请问你的问题解决了吗? 您好,请问这个问题解决了吗?
查看文档关于此问题的说明https://doc.wvp-pro.cn/#/_content/qa/play_error
ZLM版本和WVP版本不同步的问题,这个我也遇到了,最新版本ZLM必须用最新版本wvp
docker启动ZLM时需要将RTP端口在宿主机映射出来:-p 30000-30500:30000-30500 -p 30000-30500:30000-30500/udp,注意:必须是tcp和udp的端口都打开,否则就可能出现【点播失败】收流超时
我修改了这几个后可以播放了 media:
id: wvp-media-id
ip: 127.0.0.1
stream-ip: 公网IP
sdp-ip: 公网IP
hook-ip: 127.0.0.1
我的已经解决了。media没有配置stream-ip和sdp-ip导致的。一定要配置为公网ip,如果不配置默认使用media.ip,你的media.ip是一个内网地址。wvp.pro对摄像头发起invite 请求中会把流媒体的ip返回去(就是这个stream-ip)。摄像头会像这个地址发起推流,但是现在你没有配置所以取的是media.ip,而这个ip是内网,所以推流超时。。。。。。
我现在遇到了播放黑屏,但是有快照;F12发现ws地址连不上;不确定是不是不兼容唠版本;硬盘录像机支持的国标版本是2011
@hejinenPrivate 阿里云ECS是没办法直接监听公网地址的,有解决办法没?
同样的问题,请问到底有解决方式没有?
我的已经解决了。media没有配置stream-ip和sdp-ip导致的。一定要配置为公网ip,如果不配置默认使用media.ip,你的media.ip是一个内网地址。wvp.pro对摄像头发起invite 请求中会把流媒体的ip返回去(就是这个stream-ip)。摄像头会像这个地址发起推流,但是现在你没有配置所以取的是media.ip,而这个ip是内网,所以推流超时。。。。。。
但是配置内网的话, 如果摄像头能访问这个内网ip的话, 理论上 也会通的啊
解决了吗 我也遇到了
请问下那个国标录像和云端录像有区别吗,为啥云端的有录像,从国标设备点进去没有录像信息呢。是跟摄像头本地的录像有关吗
这要咋解决啊,鼓捣了很久都弄不出来
最新的代码估计哪里有bug,和zlm的版本对不上,第一次点播是可以看到有去拉流,后面点播就一直不行了。
我的已经解决了。media没有配置stream-ip和sdp-ip导致的。一定要配置为公网ip,如果不配置默认使用media.ip,你的media.ip是一个内网地址。wvp.pro对摄像头发起invite 请求中会把流媒体的ip返回去(就是这个stream-ip)。摄像头会像这个地址发起推流,但是现在你没有配置所以取的是media.ip,而这个ip是内网,所以推流超时。。。。。。
我全部使用的是公网IP地址,也有收流超时的问题。怎么解??
统一回复下,这个基本都是wvp配置不当或者网络端口为开放造成的。
这个回复太笼统了。。看了官方几个回答都没到提示到重点。。
我的已经解决了。media没有配置stream-ip和sdp-ip导致的。一定要配置为公网ip,如果不配置默认使用media.ip,你的media.ip是一个内网地址。wvp.pro对摄像头发起invite 请求中会把流媒体的ip返回去(就是这个stream-ip)。摄像头会像这个地址发起推流,但是现在你没有配置所以取的是media.ip,而这个ip是内网,所以推流超时。。。。。。
我全部使用的是公网IP地址,也有收流超时的问题。怎么解??
ip和hook-ip需要是内网ip,stream-ip和sdp-ip为公网ip
我的摄像头上线一会就会自动下线,然后就陷入无限401注册中,只有重启后才能注册成功,过20S左右就丢心跳掉线了,不知道大家有没有遇到过,海康的4G带网口的枪机
我的已经解决了。media没有配置stream-ip和sdp-ip导致的。一定要配置为公网ip,如果不配置默认使用media.ip,你的media.ip是一个内网地址。wvp.pro对摄像头发起invite 请求中会把流媒体的ip返回去(就是这个stream-ip)。摄像头会像这个地址发起推流,但是现在你没有配置所以取的是media.ip,而这个ip是内网,所以推流超时。。。。。。
我全部使用的是公网IP地址,也有收流超时的问题。怎么解??
ip和hook-ip需要是内网ip,stream-ip和sdp-ip为公网ip
我把WVP迁移到本地启动,ZLM还是公网部署的,按照你这个配置改了本地的配置,直接报错了。
WVP和ZLM分开部署的时候,这几个IP地址应该都是ZLM的公网IP地址才对呀。。
大家遇到这个收流超时的问题,方便加个微信交流一下吗?我来建个群吧。。我的WeChat:Farrah_666
我目前通过抓包发现录像机跟WVP建立连接的时候发送者和接收者IP地址是一样的,不知道是不是这个问题??
黑屏无法播放,管理后台部署在https协议下,点播成功,网页浏览器播放黑屏,播放地址是wss://ip这种,ip如何配置成域名呢?
域名上ssl有免费方案,ip上ssl都是要收费的
我的摄像头上线一会就会自动下线,然后就陷入无限401注册中,只有重启后才能注册成功,过20S左右就丢心跳掉线了,不知道大家有没有遇到过,海康的4G带网口的枪机
请问你解决了吗? 我现在就说几个设备 轮流掉线。。。
收流超时一般有一下几个原因,按照常见程度排序,可以参考着排查下:
排除以上的情况后仍然收留超时,考虑一些其他的网络情况:
我是ZLM和WVP都部署在了云服务器上(windows版本)我的sip.ip绑定云服务器的公网IP绑不上去,启动不了wvp。绑定云服务器本地ip后,并且配置stream-ip和sdp-ip都配置成了公网ip,但是本地摄像头没法在wvvp显示(没有设备、空数据),我在本地摄像头上配置了云服务器的公网ip和端口,这是怎么回事儿呢?
我的原因设备找到了,华为路由器(WS7002),把它换了就行了。不知道它做了啥。
我的问题是ZLM收到了rtp的推流。但是没有产生hook给WVP。导致受流超时,这个问题怎么大家有遇到么
我的问题是ZLM收到了rtp的推流。但是没有产生hook给WVP。导致受流超时,这个问题怎么大家有遇到么
花了我两天时间看ZML和WVP的代码,一点一点调试,终于找到原因了了。只能说太坑了。 这个地方不知道为什么WVP的代码只接收rtsp类型的on_stream_changed事件。我注释掉之后,就可以接收到国标流RTP的事件了
我的问题是ZLM收到了rtp的推流。但是没有产生hook给WVP。导致受流超时,这个问题怎么大家有遇到么
花了我两天时间看ZML和WVP的代码,一点一点调试,终于找到原因了了。只能说太坑了。 这个地方不知道为什么WVP的代码只接收rtsp类型的on_stream_changed事件。我注释掉之后,就可以接收到国标流RTP的事件了
又来更新了一下,我之前在做别的项目把enable_rtsp=1 这个配置关了,ZLM在做通知的时候,流的schema都是默认的rtsp吧,所以wvp这个地方做了个判断。总之还是我自己配置的问题
统一回复下,这个基本都是wvp配置不当或者网络端口为开放造成的。
还有一种情况是,第一次点播无法播放,第二次才能播放,这个问题有其他人遇到过吗?
我遇到类似的问题,排查发现是wvp的media的id 和我zlm的id 不一致导致。
一. 部署环境
二. 部署方式
ZLMediaKit配置文件,点击查看 (/root/zlmediakit/config.ini)
```ini ; auto-generated by mINI class { [api] apiDebug=0 defaultSnap=./www/logo.png secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc snapRoot=./www/snap/ [cluster] origin_url= timeout_sec=15 [ffmpeg] bin=/usr/bin/ffmpeg cmd=%s -fflags nobuffer -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s log=./ffmpeg/ffmpeg.log restart_sec=0 snap=%s -i %s -y -f mjpeg -t 0.001 %s [general] addMuteAudio=1 continue_push_ms=3000 enableVhost=0 enable_audio=1 flowThreshold=1024 fmp4_demand=0 hls_demand=0 maxStreamWaitMS=15000 mediaServerId=wvp-media-id mergeWriteMS=0 modifyStamp=0 publishToHls=1 publishToMP4=0 resetWhenRePlay=1 rtmp_demand=0 rtsp_demand=0 streamNoneReaderDelayMS=10000 ts_demand=0 unready_frame_cache=100 wait_add_track_ms=3000 wait_track_ready_ms=3000 [hls] broadcastRecordTs=0 deleteDelaySec=0 fileBufSize=65536 filePath=./www segDur=2 segNum=3 segRetain=5 [hook] admin_params=secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc alive_interval=10.0 enable=1 on_flow_report= on_http_access= on_play=http://192.168.0.57:18080/index/hook/on_play on_publish=http://192.168.0.57:18080/index/hook/on_publish on_record_mp4=http://127.0.0.1:18081/api/record/on_record_mp4 on_record_ts= on_rtsp_auth= on_rtsp_realm= on_server_keepalive=http://192.168.0.57:18080/index/hook/on_server_keepalive on_server_started=http://192.168.0.57:18080/index/hook/on_server_started on_shell_login=http://192.168.0.57:18080/index/hook/on_shell_login on_stream_changed=http://192.168.0.57:18080/index/hook/on_stream_changed on_stream_none_reader=http://192.168.0.57:18080/index/hook/on_stream_none_reader on_stream_not_found=http://192.168.0.57:18080/index/hook/on_stream_not_found timeoutSec=20 [http] charSet=utf-8 dirMenu=1 forbidCacheSuffix= keepAliveSecond=30 maxReqSize=40960 notFound=您访问的资源不存在!
wvp-GB28181-pro 配置文件,点击查看 (application.yml,无关敏感配置用***代替了)
```yml spring: # [可选]上传文件大小限制 servlet: multipart: max-file-size: 10MB max-request-size: 100MB # REDIS数据库配置 redis: # [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1 host: *** # [必须修改] 端口号 port: *** # [可选] 数据库 DB database: *** # [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接 password: # [可选] 超时时间 timeout: 10000 # [可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置 # mysql数据源 datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://***/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false username: *** password: *** druid: initialSize: 10 # 连接池初始化连接数 maxActive: 200 # 连接池最大连接数 minIdle: 5 # 连接池最小空闲连接数 maxWait: 60000 # 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。 keepAlive: true # 连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作。 validationQuery: select 1 # 检测连接是否有效sql,要求是查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。 testWhileIdle: true # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 testOnBorrow: false # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 testOnReturn: false # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 poolPreparedStatements: false # 是否開啟PSCache,並且指定每個連線上PSCache的大小 timeBetweenEvictionRunsMillis: 60000 # 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 minEvictableIdleTimeMillis: 300000 # 配置一個連線在池中最小生存的時間,單位是毫秒 filters: stat,wall,slf4j # 配置监控统计拦截的filters,监控统计用的filter:sta, 日志用的filter:log4j, 防御sql注入的filter:wall useGlobalDataSourceStat: true # 合并多个DruidDataSource的监控数据 # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000 #stat-view-servlet.url-pattern: /admin/druid/* #[可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口 server: port: 18080 # 作为28181服务器的配置 sip: # [必须修改] 本机的IP ip: 192.168.0.57 # [可选] 28181服务监听的端口 port: 5060 # 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007) # 后两位为行业编码,定义参照附录D.3 # 3701020049标识山东济南历下区 信息行业接入 # [可选] domain: 3402000000 # [可选] id: 34020000002000000001 # [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验 password: 12345678 #zlm 默认服务器配置 media: id: wvp-media-id # [必须修改] zlm服务器的内网IP ip: 192.168.0.57 # [必须修改] zlm服务器的http.port http-port: 8001 # [可选] zlm服务器的hook.admin_params=secret secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试 rtp: # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输 enable: true # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功 port-range: 30000,30500 # 端口范围 # [可选] 国标级联在此范围内选择端口发送媒体流, send-port-range: 30000,30500 # 端口范围 # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用 record-assist-port: 18081 # [可选] 日志配置, 一般不需要改 logging: config: classpath:logback-spring-local.xml # 版本信息, 不需修改 version: version: "@project.version@" description: "@project.description@" artifact-id: "@project.artifactId@" ```配置图片 (https://user-images.githubusercontent.com/41461205/163112767-ca696c6e-dab3-4876-8a6c-5efbb846cc26.png)
三. 界面截图,日志截图
wvp-GB28181-pro日志截图 (https://user-images.githubusercontent.com/41461205/163119165-4462fbef-77b1-44de-ad43-26a3da7f05cc.png)
wvp-GB28181-pro媒体节点 (https://user-images.githubusercontent.com/41461205/163115450-4105bee5-3075-4c58-b9ae-d3baea7e2c13.png)
wvp-GB28181-pro点播收流,超时界面 (https://user-images.githubusercontent.com/41461205/163115957-9236ba52-afd2-4986-836d-1986ede6e3db.png)