System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及web浏览器领域,具体提供一种rtsp流在web浏览器端的播放方法及装置。
技术介绍
1、目前在web浏览器端播放rtsp流的方案有:
2、(1)使用active插件或者npapi插件,出于安全性考虑,基本上主流浏览器不再考虑;
3、(2)服务器转封装成浏览器可以识别的格式,例如http-flv,然后采用flv.js进行播放。此方案不足在于转封装格式需要后端服务器进行开发支持。无法直接进行rtsp播放,使用场景会受到限制。
4、(3)wasm方式。虽然wasm方式可以通过解码的方式来实现浏览器端播放,但是由于是js的汇编格式,开发和维护成本较高,浏览器解码播放压力较大无法充分利用自身的硬解码能力。
5、如何在rtsp数据源无需任何适配的情况下,web浏览器端可以实现无延迟实时播放rtsp视频流是本领域亟待解决的问题。
技术实现思路
1、本专利技术是针对上述现有技术的不足,提供一种实用性强的rtsp流在web浏览器端的播放方法。
2、本专利技术进一步的技术任务是提供一种设计合理,安全适用的rtsp流在web浏览器端的播放装置。
3、本专利技术解决其技术问题所采用的技术方案是:
4、一种rtsp流在web浏览器端的播放方法,具有如下步骤:
5、s1、浏览器端检测是否安装本地代理小程序;
6、s2、启动本地代理小程序;
7、s3、web浏览器和rtsppr
8、s4、浏览器向代理小程序rtspproxy发起rtsp预览请求;
9、s5、本地代理小程序拉取和封装rtsp视频流;
10、s6、本地代理小程序将转封装之后的mp4文件推送给浏览器端,浏览器通过mse技术将mp4文件喂给video标签解码显示;
11、s7、浏览器和rtspproxy的维持定时心跳;
12、s8、播放结束。
13、进一步地,在步骤s1中,用户启动播放rtsp视频前,加载播放器时,先监测本地是否启动代理小程序rtspproxy,如果本地没有安装,提供下载地址给用户并提示安装;
14、如果监测到本地已经安装了代理小程序,获取用户许可以后,启动代理小程序进入到后台程序运行。
15、进一步地,在步骤s2中,本地代理小程序rtspproxy启动之后,监听在本地端口;
16、如遇到端口冲突,设定好端口段的选定范围,约定若干个备选端口,从起始端口开始往后选定进行监听的端口,直到监听成功。
17、进一步地,在步骤s3中,web浏览器开始播放时,首先和本地代理小程序建立连接,从端口开始,尝试建立连接,如果不成功,则从端口段中依次进行尝试创建websocket连接;
18、websocket层面的连接建立以后,双方需要建立应用层面的握手连接;
19、交互流程为:浏览器先发送一个身份标识以及播放器所支持的版本号信息,rtspproxy返回响应,并携带自身身份标识信息、版本号、支持的协议类型以及版本;
20、交互握手过程需要携带签名,验证通过之后,应用层面的握手连接建立完成,准备进入播放阶段交互信息。
21、进一步地,在步骤s4中,浏览器握手建立成功以后,向代理小程序发起直播请求,携带rtsp地址信息,请求唯一标识信息;
22、请求唯一标识和当前请求的rtsp地址进行一一绑定,rtspproxy根据rtsp地址和唯一标识进行流分发时的优化,同一个地址只拉取一份原始数据。
23、进一步地,在步骤s5中,本地代理小程序根据浏览器请求的rtsp地址,发起拉流请求,默认优先采用tcp模式拉流;
24、本地代理小程序rtspproxy将接收到的rtsp协议中的rtp流解封装成裸码流以及其他常见的原始裸码流帧,然后将裸码流再次进行封装成浏览器video标签所识别的mp4格式。
25、进一步地,在步骤s6中,代理小程序rtspproxy将封装好的mp4文件通过websocket协议推送给浏览器端播放器,相同rtsp地址的视频流,数据源端只拉取一份,然后复制分发给不同的播放端,不同的播放端通过唯一身份标识来进行区分;
26、浏览器接收到rstpproxy代理小程序推送的mp4文件,通过mse技术,将mp4文件放到video标签中进行播放,实现实时播放效果。
27、进一步地,在步骤s7中,播放器需要和rtspproxy维持定时心跳避免超时造成连接断开,建立应用层面的心跳连接。
28、进一步地,在步骤s8中,播放结束以后,播放器直接断开链接,或者,播放器发送goodbye的断开信号,rtspproxy接收到断开请求之后,断开数据源端连接拉流请求,同时关闭和播放器的链路,清理和本路预览相关的资源。
29、一种rtsp流在web浏览器端的播放装置,包括:至少一个存储器和至少一个处理器;
30、所述至少一个存储器,用于存储机器可读程序;
31、所述至少一个处理器,用于调用所述机器可读程序,执行一种rtsp流在web浏览器端的播放方法。
32、本专利技术的一种rtsp流在web浏览器端的播放方法及装置和现有技术相比,具有以下突出的有益效果:
33、本专利技术通过本地代理进行转换封装格式的方式,服务器无需做任何适配和修改,就可以做到实时播放,延迟在200ms以内。对接播放适配较为容易,只需要提供rtsp地址即可实现无缝对接播放。
34、浏览器端无插件播放,提高安全性,通过websocket协议进行通信。且通信协议经过合理设计,可以在安全性和实时性上得到保证。
35、播放器和rtspproxy的通信协议可以根据需要开启ssl加密通信,保证信息安全。
36、基于mse的video标签播放方式,充分利用浏览器的硬件解码能力,资源占用较少。同样机器性能下,此种播放方式可支持更多播放路数。
本文档来自技高网...【技术保护点】
1.一种rtsp流在web浏览器端的播放方法,其特征在于,具有如下步骤:
2.根据权利要求1所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤S1中,用户启动播放rtsp视频前,加载播放器时,先监测本地是否启动代理小程序RtspProxy,如果本地没有安装,提供下载地址给用户并提示安装;
3.根据权利要求2所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤S2中,本地代理小程序RtspProxy启动之后,监听在本地端口;
4.根据权利要求3所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤S3中,web浏览器开始播放时,首先和本地代理小程序建立连接,从端口开始,尝试建立连接,如果不成功,则从端口段中依次进行尝试创建websocket连接;
5.根据权利要求4所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤S4中,浏览器握手建立成功以后,向代理小程序发起直播请求,携带rtsp地址信息,请求唯一标识信息;
6.根据权利要求5所述的一种rtsp流在web浏览器端
7.根据权利要求6所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤S6中,代理小程序RtspProxy将封装好的mp4文件通过websocket协议推送给浏览器端播放器,相同rtsp地址的视频流,数据源端只拉取一份,然后复制分发给不同的播放端,不同的播放端通过唯一身份标识来进行区分;
8.根据权利要求7所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤S7中,播放器需要和RtspProxy维持定时心跳避免超时造成连接断开,建立应用层面的心跳连接。
9.根据权利要求7所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤S8中,播放结束以后,播放器直接断开链接,或者,播放器发送GoodBye的断开信号,RtspProxy接收到断开请求之后,断开数据源端连接拉流请求,同时关闭和播放器的链路,清理和本路预览相关的资源。
10.一种rtsp流在web浏览器端的播放装置,其特征在于,包括:至少一个存储器和至少一个处理器;
...【技术特征摘要】
1.一种rtsp流在web浏览器端的播放方法,其特征在于,具有如下步骤:
2.根据权利要求1所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤s1中,用户启动播放rtsp视频前,加载播放器时,先监测本地是否启动代理小程序rtspproxy,如果本地没有安装,提供下载地址给用户并提示安装;
3.根据权利要求2所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤s2中,本地代理小程序rtspproxy启动之后,监听在本地端口;
4.根据权利要求3所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤s3中,web浏览器开始播放时,首先和本地代理小程序建立连接,从端口开始,尝试建立连接,如果不成功,则从端口段中依次进行尝试创建websocket连接;
5.根据权利要求4所述的一种rtsp流在web浏览器端的播放方法,其特征在于,在步骤s4中,浏览器握手建立成功以后,向代理小程序发起直播请求,携带rtsp地址信息,请求唯一标识信息;
6.根据权利要求5所述的一种rtsp流在web浏览器端的播放方法,其特征在于,...
【专利技术属性】
技术研发人员:杨凯,田昌英,李建伟,苗亚囡,田广,
申请(专利权)人:浪潮云信息技术股份公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。