Closed moyidaren closed 2 years ago
我也遇到这个问题了,新版有这个问题,以前的旧版没有。
我不会去对比前后版本的差异,只在当前版本解决问题。如果你遇到新版本有问题,旧版本没问题的情况:
@648540858 谢谢潘工回复 以后我会注意提issue的规范 详细的日志、流程、抓包 这个问题我已经差不多定位了 现在心跳正常的情况下 设备不会掉线了 你等我一下 我看看代码 再做一个定位前定位后的完整抓包分析实验
@648540858 谢谢潘工回复 以后我会注意提issue的规范 详细的日志、流程、抓包 这个问题我已经差不多定位了 现在心跳正常的情况下 设备不会掉线了 你等我一下 我看看代码 再做一个定位前定位后的完整抓包分析实验
我也遇到类似问题,播放一会直接后台报日志设备离线,其实设备好好的,感觉和你一样就是心跳问题导致的。
@648540858 谢谢潘工回复 以后我会注意提issue的规范 详细的日志、流程、抓包 这个问题我已经差不多定位了 现在心跳正常的情况下 设备不会掉线了 你等我一下 我看看代码 再做一个定位前定位后的完整抓包分析实验
我也遇到类似问题,播放一会直接后台报日志设备离线,其实设备好好的,感觉和你一样就是心跳问题导致的。
目前版本测试还是依旧有这个问题,我在本地测试没问题,发布到云上就会播放一会主动断开,过一会重新点播的时候 获取ZLM服务获取接收流的端口时,是IP:0,没有获取接收流的端口。
@648540858 谢谢潘工回复 以后我会注意提issue的规范 详细的日志、流程、抓包 这个问题我已经差不多定位了 现在心跳正常的情况下 设备不会掉线了 你等我一下 我看看代码 再做一个定位前定位后的完整抓包分析实验
我也遇到类似问题,播放一会直接后台报日志设备离线,其实设备好好的,感觉和你一样就是心跳问题导致的。
目前版本测试还是依旧有这个问题,我在本地测试没问题,发布到云上就会播放一会主动断开,过一会重新点播的时候 获取ZLM服务获取接收流的端口时,是IP:0,没有获取接收流的端口。
可以测试了,优化在线的流程。
我先关闭了,仍有问题再打开
可以测试了,优化在线的流程。
经过测试确实修复了,但是这个版本和zlm webrtc后,一开始有掉线现象,启动的时候zlm在线列表也都有,但是过一会就说这无可用zlm服务,然后反复重启几次过后立马播放后就变正常了。
可以测试了,优化在线的流程。
经过测试确实修复了,但是这个版本和zlm webrtc后,一开始有掉线现象,启动的时候zlm在线列表也都有,但是过一会就说这无可用zlm服务,然后反复重启几次过后立马播放后就变正常了。
请问你是设备在线了,然后又离线了吗? 我安装的设备最近一次心跳是3号, 不知道从哪看起,很多设备都离线了。。
一、描述错误 设备一段时间后自动离线,停止视频流的时候发现事务已丢失 二、如何复现 一段时间后使用[http://192.168.0.118:18080/api/play/stop/34020000113000000001/43010120001320000018 直接返回success 但未执行实际的视频流关闭sip信令,查看日志发现提示“停止视频流的时候发现事务已丢失” 三、预期行为 1、需要能够保证设备稳定在线,能否将事务和发起实际的停止视频流解绑,这样事务被删除了也可以发指令 2、或者能否说明一下,什么情况下设备会自动离线,keeplive超时设置成3600s依然一段时间后就自己离线了,提示sip订阅消息定期清理,然后接着就开始离线,删事务,前面的版本好像没有这个问题 四、环境信息 1、部署方式 (1)编译wvp-pro(https://github.com/648540858/wvp-GB28181-pro/commit/c286ecb455444af7b4d27683853cb1295ffc3c49) (2)编译zlm-server(5e08e43e9a1fb7dcdcb5b94231f61d9e86d108ba) (3)application-dev.yml spring:
[可选]上传文件大小限制
servlet: multipart: max-file-size: 10MB max-request-size: 100MB
REDIS数据库配置
redis:
[必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
host: 127.0.0.1
[必须修改] 端口号
port: 6379
[可选] 数据库 DB
database: 6
[可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
password: 123456
[可选] 超时时间
timeout: 10000
[可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置
mysql数据源
datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/wvp?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true&serverTimezone=PRC&useSSL=false username: root password: 123456 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.118
[可选] 28181服务监听的端口
port: 15060
根据国标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: FQ3TF8yT83wh5Wvz
[必须修改] zlm服务器的内网IP
ip: 192.168.0.118
[可选] 返回流地址时的ip,置空使用 media.ip
stream-ip:
[可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip
sdp-ip:
[可选] zlm服务器的hook所使用的IP, 默认使用sip.ip
hook-ip:
[必须修改] zlm服务器的http.port
http-port: 8080
[可选] 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: -1 # 无人观看多久自动关闭流, -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:
推流直播是否录制
record-push-live: false
国标是否录制
record-sip: false
版本信息, 不需修改
version: version: "@project.version@" description: "@project.description@" artifact-id: "@project.artifactId@"
(4)config.ini ; auto-generated by mINI class {
[api] apiDebug=1 defaultSnap=./www/logo.png secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc snapRoot=./www/snap/
[cluster] origin_url= timeout_sec=15
[ffmpeg] bin=./ffmpeg.exe cmd=%s -fflags nobuffer -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s log=./ffmpeg_log/ffmpeg.log restart_sec=0 snap=%s -i %s -y -f mjpeg -t 0.001 %s
[general] addMuteAudio=0 continue_push_ms=3000 enableVhost=0 enable_audio=1 flowThreshold=1024 fmp4_demand=0 hls_demand=0 maxStreamWaitMS=15000 mediaServerId=FQ3TF8yT83wh5Wvz mergeWriteMS=0 modifyStamp=0 publishToHls=0 publishToMP4=0 resetWhenRePlay=1 rtmp_demand=0 rtsp_demand=0 streamNoneReaderDelayMS=3600000 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.118:18080/index/hook/on_play on_publish=http://192.168.0.118:18080/index/hook/on_publish on_record_mp4= on_record_ts= on_rtsp_auth= on_rtsp_realm= on_server_keepalive=http://192.168.0.118:18080/index/hook/on_server_keepalive on_server_started=http://192.168.0.118:18080/index/hook/on_server_started on_shell_login=http://192.168.0.118:18080/index/hook/on_shell_login on_stream_changed=http://192.168.0.118:18080/index/hook/on_stream_changed on_stream_none_reader=http://192.168.0.118:18080/index/hook/on_stream_none_reader on_stream_not_found=http://192.168.0.118:18080/index/hook/on_stream_not_found timeoutSec=20
[http] charSet=utf-8 dirMenu=1 forbidCacheSuffix= keepAliveSecond=30 maxReqSize=40960 notFound= port=8080 rootPath=./www sendBufSize=65536 sslport=8090 virtualPath=
[multicast] addrMax=239.255.255.255 addrMin=239.0.0.0 udpTTL=64
[record] appName=record fastStart=0 fileBufSize=65536 filePath=./www fileRepeat=0 fileSecond=3600 sampleMS=500
[rtc] externIP= port=8000 preferredCodecA=PCMA,PCMU,opus,mpeg4-generic preferredCodecV=H264,H265,AV1X,VP9,VP8 rembBitRate=0 timeoutSec=15
[rtmp] handshakeSecond=15 keepAliveSecond=15 modifyStamp=0 port=1935 sslport=0
[rtp] audioMtuSize=600 rtpMaxSize=10 videoMtuSize=1400
[rtp_proxy] dumpDir= port=10000 port_range=30000-30500 timeoutSec=15
[rtsp] authBasic=0 directProxy=1 handshakeSecond=15 keepAliveSecond=15 port=554 sslport=0
[shell] maxReqSize=1024 port=0
; } ---
2、部署环境 windows 环境 3、端口开放情况 全通 4、是否是公网部署 否,本地局域网部署 5、是否使用https 否,http 6、方便的话提供下使用的设备品牌或平台 海康IPC 7、你做过哪些尝试 使用其他型号28181设备