发明内容
本发明提供一种远程监控方法及装置、系统,用以解决现有的小范围场所监控技术中存在获取媒体流数据不方便的问题。
第一方面,提供一种远程监控方法,包括:
用户设备通过基于浏览器的实时通信WebRTC平台获取所述WebRTC平台分配给网关设备的标识;
通过所述WebRTC平台向所述网关设备发送获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
通过所述建立的WebRTC通信连接,接收所述网关设备发送的与所述需要获取的媒体流标识对应的媒体流。
基于第一方面,在第一种可能的实现方式中,所述用户设备通过基于浏览器的实时通信WebRTC平台获取所述WebRTC平台分配给网关设备的标识之前,包括:
所述用户设备向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;以使所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
基于第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收所述网关设备发送的与所述需要获取的媒体流标识对应的媒体流之后,包括:
所述用户设备将接收的媒体流保存到与所述媒体流标识对应的存储空间。
基于第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述用户设备将接收的媒体流保存到与所述媒体流标识对应的存储空间之后,包括:
所述用户设备接收用户指令,所述用户指令中包括需要播放的媒体流的存储地址,所述需要播放的媒体流的存储地址包括所述用户设备中保存所述需要播放的媒体流的存储空间对应的统一资源定位符;
根据所述存储地址,将所述存储地址对应的存储空间中的媒体流进行播放。
基于第一方面的第一种可能的实现方式,在第四种可能的实现方式中,所述用户设备向所述WebRTC平台发送认证请求之后,包括:
所述用户设备接收所述WebRTC平台在对所述用户设备认证成功的基础上发送的媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;
接收用户指令,所述用户指令中包括用户选择的媒体流的标识;
向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识,以使所述WebRTC平台根据所述用户选择的媒体流的标识,获取与所述用户选择的媒体流的标识对应的存储地址,将所述存储地址指向的存储空间中保存的媒体流发送给所述用户设备。
第二方面,提供一种远程监控方法,包括:
网关设备通过基于浏览器的实时通信WebRTC平台,接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;
所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
所述网关设备通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
基于第二方面,在第一种可能的实现方式中,所述网关设备通过基于浏览器的实时通信WebRTC平台,接收用户设备发送的获取媒体流的请求消息之前,包括:
所述网关设备向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;以使所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
基于第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述网关设备向所述WebRTC平台发送认证请求之后,包括:
所述网关设备向所述WebRTC平台发送多个媒体流以及所述多个媒体流对应的标识;以使所述WebRTC平台将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中,建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
第三方面,提供一种远程监控方法,包括:
基于浏览器的实时通信WebRTC平台接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和网关设备的标识;
将所述获取媒体流的请求消息发送所述网关设备的标识对应的网关设备,以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接,并通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
基于第三方面,在第一种可能的实现方式中,所述WebRTC平台接收用户设备发送的获取媒体流的请求消息之前,包括:
所述WebRTC平台接收所述用户设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;
所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
基于第三方面的第一种可能的实现方式,在第二种可能的实现方式中,所述向所述用户设备发送与所述认证信息对应的网关设备的标识之前,包括:
所述WebRTC平台接收所述网关设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;
所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
基于第三方面的第二种可能的实现方式,在第三种可能的实现方式中,所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识之后,包括:
所述WebRTC平台接收所述网关设备发送的多个媒体流以及所述多个媒体流对应的标识;
所述WebRTC平台将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中;
建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
基于第三方面的第一至第三种任一可能的实现方式,在第四种可能的实现方式中,所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识之后,包括:
所述WebRTC平台向所述用户设备发送媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;以使所述用户设备根据用户指令选择媒体流的标识,向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识;
所述WebRTC平台根据所述用户选择的媒体流的标识,以及建立的所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系,获取与所述用户选择的媒体流的标识对应的存储地址;
将所述存储地址指向的存储空间中保存的媒体流发送给所述用户设备。
第四方面,提供一种用户设备,包括:
获取模块,用于通过基于浏览器的实时通信WebRTC平台获取所述WebRTC平台分配给网关设备的标识;
发送模块,用于通过所述WebRTC平台向所述网关设备发送获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
接收模块,用于通过所述建立的WebRTC通信连接,接收所述网关设备发送的与所述需要获取的媒体流标识对应的媒体流。
基于第四方面,在第一种可能的实现方式中,所述获取模块通过基于浏览器的实时通信WebRTC平台获取所述WebRTC平台分配给网关设备的标识之前;
所述发送模块,还用于向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;以使所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
基于第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
存储模块,用于将接收的媒体流保存到与所述媒体流标识对应的存储空间。
基于第四方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收模块,还用于接收用户指令,所述用户指令中包括需要播放的媒体流的存储地址,所述需要播放的媒体流的存储地址包括所述用户设备中保存所述需要播放的媒体流的存储空间对应的统一资源定位符;
播放模块,用于根据所述存储地址,将所述存储地址对应的存储空间中的媒体流进行播放。
基于第四方面的第一种可能的实现方式,在第四种可能的实现方式中,所述接收模块,还用于接收所述WebRTC平台在对所述用户设备认证成功的基础上发送的媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;
所述接收模块,还用于接收用户指令,所述用户指令中包括用户选择的媒体流的标识;
所述发送模块,还用于向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识,以使所述WebRTC平台根据所述用户选择的媒体流的标识,获取与所述用户选择的媒体流的标识对应的存储地址,将所述存储地址指向的存储空间中保存的媒体流发送给所述用户设备。
第五方面,提供一种网关设备,包括:
接收模块,用于通过基于浏览器的实时通信WebRTC平台,接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;
发送模块,用于通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
所述发送模块,还用于通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
基于第五方面,在第一种可能的实现方式中,所述发送模块,还用于向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;以使所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
基于第五方面的第一种可能的实现方式,在第二种可能的实现方式中,所述发送模块,还用于向所述WebRTC平台发送多个媒体流以及所述多个媒体流对应的标识;以使所述WebRTC平台将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中,建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
第六方面,提供一种基于浏览器的实时通信WebRTC平台,包括:
接收模块,用于接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和网关设备的标识;
发送模块,用于将所述获取媒体流的请求消息发送所述网关设备的标识对应的网关设备,以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接,并通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
基于第六方面,在第一种可能的实现方式中,所述接收模块,还用于接收所述用户设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;
所述发送模块,还用于根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
基于第六方面的第一种可能的实现方式,在第二种可能的实现方式中,所述接收模块,还用于接收所述网关设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;
所述发送模块,还用于根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
基于第六方面的第二种可能的实现方式,在第三种可能的实现方式中,所述接收模块,还用于接收所述网关设备发送的多个媒体流以及所述多个媒体流对应的标识;
所述WebRTC平台还包括:
存储模块,用于将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中;
建立模块,用于建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
基于第六方面的第三种可能的实现方式,在第四种可能的实现方式中,所述发送模块,还用于向所述用户设备发送媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;以使所述用户设备根据用户指令选择媒体流的标识,向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识;
所述WebRTC平台还包括:
获取模块,用于根据所述用户选择的媒体流的标识,以及建立的所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系,获取与所述用户选择的媒体流的标识对应的存储地址;
所述发送模块,还用于将所述存储地址指向的存储空间中保存的媒体流发送给所述用户设备。
第七方面,提供一种远程监控系统,包括:用户设备、网关设备和基于浏览器的实时通信WebRTC平台;
所述用户设备为第三方面所述的用户设备;
所述网关设备为第四方面所述的网关设备;
所述WebRTC平台为第五方面所述的WebRTC平台。
本发明的用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流的安全性和私密性。同时不需要考虑动态IP造成的需要重新进行摄像头参数设置的问题,能够解决获取媒体流数据不方便的问题。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的远程监控方法的流程示意图,如图1所示,本实施例的远程监控方法可以包括:
101、用户设备通过基于浏览器的实时通信WebRTC平台获取所述WebRTC平台分配给网关设备的标识。
在步骤101之前,包括:
用户设备向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;
WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
在本发明的一个可选实施方式中,为了能够让用户设备播放可能错过的媒体流,用户设备可以通过WebRTC平台播放保存在WebRTC平台中的媒体流,具体实现时:
网关设备在经过WebRTC平台认证成功的基础上,可以向WebRTC平台发送多个媒体流以及多个媒体流对应的标识,使得WebRTC平台将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中;建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
WebRTC平台根据用户设备发送的所述认证请求,对所述认证信息进行认证,在认证成功的基础上,WebRTC平台可以向用户设备发送媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;所述多个媒体流为网关设备向WebRTC平台发送多个媒体流。
之后,用户设备接收用户指令,所述用户指令中包括用户选择的媒体流的标识;用户设备向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识;
WebRTC平台根据所述用户选择的媒体流的标识,获取与所述用户选择的媒体流的标识对应的存储地址,将所述存储地址指向的存储空间中保存的媒体流发送给用户设备进行播放。
102、用户设备通过所述WebRTC平台向所述网关设备发送获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
本实施例中,WebRTC平台使用信息和内容交换(Information andContent Exchange,ICE)协议可以穿越网络地址转换(Network AddressTranslation,NAT),从而使得用户设备和网关设备分别与WebRTC平台建立websocket连接,实现用户设备和网关设备之间直接建立WebRTC通信的点对点通信连接。
步骤102具体实现时,例如,用户设备调用函数createOffer(),将会话信息封装进会话描述协议(Session Description Protocol,SDP)中,之后,用户设备调用函数setLocalDescription(“offer”,offer)将SDP,以及获取的媒体流标识和所述网关设备的标识封装进会话发起协议(Session Initiation Protocol,SIP)中作为一个获取媒体流的请求消息(offer),并通过webocket通道将SIP发送给网关设备;
网关设备接收到用户设备发送的SIP之后,解析出封装在SIP中的SDP以及媒体流标识和网关设备的标识,在判断网关设备的标识正确之后,调用函数getUsermedia(),获取媒体流标识对应的媒体流;之后,网关设备调用函数createAnswer(),将获取的媒体流信息(例如媒体流的编码格式等信息)封装进SDP;调用函数setLocalDescription(“answer”,answer)将SDP作为获取媒体流的响应消息(answer),通过webocket通道发送给用户设备;
用户设备接收到获取媒体流的响应消息之后,可以通过websocket通道向网关设备发送确认消息(ACK)。
此时,在用户设备和网关设备之间可以直接建立WebRTC通信的点对点通信连接。之后,网关设备可以通过websocket通道向用户设备发送用户设备需要获取的媒体流标识对应的媒体流,由于媒体流不需要经过WebRTC平台,可以保证媒体流传输的安全性和私密性。
需要说明的是,本实施例中,假设用户需要获取全部媒体流时,所述获取媒体流的请求消息中包括的需要获取的媒体流标识可以为全部(all);或者当所述获取媒体流的请求消息中不包括需要获取的媒体流标识时,也可以默认为用户需要获取全部媒体流;
假设用户不需要获取的全部媒体流时,例如,用户想要获取其中的一个或几个房间的媒体流时,此时,所述获取媒体流的请求消息中包括的需要获取的媒体流的标识可以分别是需要获取的媒体流对应的房间号,例如,1表示需要获取1号房间的媒体流。
103、用户设备通过所述建立的WebRTC通信连接,接收所述网关设备发送的与所述需要获取的媒体流标识对应的媒体流。
假设用户设备接收到多个媒体流时,为了切换或者播放方便,在步骤103之后,用户设备将接收的媒体流保存到与所述媒体流标识对应的存储空间;之后,用户设备可以建立所述媒体流标识与保存有对应的媒体流的存储空间的存储地址之间的对应关系,其中,保存有对应的媒体流的存储空间的存储地址可以是保存对应的媒体流的存储空间的统一资源定位符;为了方便用户通过用户设备的界面切换媒体流,本实施例中,还可以将建立的所述媒体流标识与保存有对应的媒体流的存储空间的存储地址之间的对应关系通过用户设备的界面进行显示,例如,表1为本实施例应用的媒体流标识与保存对应的媒体流的存储空间的统一资源定位符之间的对应关系表;
表1:
Room1/URL1 |
Room2/URL2 |
Room2/URL3 |
如表1所示,Room1、Room2和Room2分别表示对应房间媒体流的媒体流标识;URL是统一资源定位符(Universal Resource Locator),其中,URL1表示保存有Room1对应的媒体流的存储空间对应的统一资源定位符,URL2表示保存有Room2对应的媒体流的存储空间对应的统一资源定位符,URL3表示保存有Room3对应的媒体流的存储空间对应的统一资源定位符。
之后,用户设备可以通过用户设备的界面切换媒体流,具体实现时:
用户设备通过用户设备的界面接收用户指令,所述用户指令中包括需要播放的媒体流的存储地址,所述需要播放的媒体流的存储地址包括所述用户设备中保存所述需要播放的媒体流的存储空间对应的统一资源定位符;
用户设备根据所述存储地址,将所述存储地址对应的存储空间中的媒体流进行播放。
例如,用户可以通过用户设备的界面点击Room1,即可触发包括Room1对应的URL1的用户指令,使得用户设备根据用户指令,将URL1对应的存储空间中存储的Room对应的媒体流进行播放显示。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
进一步地,本实施例的WebRTC平台可以保存网关设备发送的媒体流,从而实施户设备可以通过WebRTC平台播放保存在WebRTC平台中的媒体流,让用户设备播放可能错过的媒体流,可以提高用户体验度。
图2为本发明另一实施例提供的远程监控方法的流程示意图,如图2所示,本实施例的远程监控方法可以包括:
201、网关设备通过基于浏览器的实时通信WebRTC平台,接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;
在步骤201之前,包括:
网关设备向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;以使所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
步骤201的具体实现可以参考图1所示实施例中步骤102中的相关描述。
202、网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
网关设备接收到获取媒体流的请求消息之后,若确定获取媒体流的请求消息中包括的网关设备的标识与WebRTC平台向所述网关设备发送与所述认证信息对应的网关设备的标识是一致的,则向通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息。
步骤202的具体实现可以参考图1所示实施例中步骤102中的相关描述。
203、网关设备通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
在本发明的一个可选实施方式中,为了能够让用户设备播放可能错过的媒体流,用户设备可以通过WebRTC平台播放保存在WebRTC平台中的媒体流,具体实现时:
网关设备在经过WebRTC平台认证成功的基础上,可以向WebRTC平台发送多个媒体流以及多个媒体流对应的标识,使得WebRTC平台将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中;建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
WebRTC平台根据用户设备发送的所述认证请求,对所述认证信息进行认证,在认证成功的基础上,WebRTC平台可以向用户设备发送媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;所述多个媒体流为网关设备向WebRTC平台发送多个媒体流。
之后,用户设备接收用户指令,所述用户指令中包括用户选择的媒体流的标识;用户设备向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识;
WebRTC平台根据所述用户选择的媒体流的标识,获取与所述用户选择的媒体流的标识对应的存储地址,将所述存储地址指向的存储空间中保存的媒体流发送给用户设备进行播放。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
进一步地,本实施例的WebRTC平台可以保存网关设备发送的媒体流,从而实施户设备可以通过WebRTC平台播放保存在WebRTC平台中的媒体流,让用户设备播放可能错过的媒体流,可以提高用户体验度。
图3为本发明一实施例提供的远程监控方法的流程示意图,如图3所示,本实施例的远程监控方法可以包括:
301、WebRTC平台接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和网关设备的标识;
在步骤301之前,包括:
WebRTC平台接收所述用户设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;
WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
在步骤301之前,还包括:
WebRTC平台接收所述网关设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;
WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
302、WebRTC平台将所述获取媒体流的请求消息发送所述网关设备的标识对应的网关设备,以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接,并通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
在本发明的一个可选实施方式中,为了能够让用户设备播放可能错过的媒体流,WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识之后,包括:
WebRTC平台接收所述网关设备发送的多个媒体流以及所述多个媒体流对应的标识;
WebRTC平台将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中;
WebRTC平台建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
在WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识之后,包括:
WebRTC平台向所述用户设备发送媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;以使所述用户设备根据用户指令选择媒体流的标识,向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识;
WebRTC平台根据所述用户选择的媒体流的标识,以及建立的所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系,获取与所述用户选择的媒体流的标识对应的存储地址;
WebRTC平台将所述存储地址指向的存储空间中保存的媒体流发送给用户设备进行播放。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
进一步地,本实施例的WebRTC平台可以保存网关设备发送的媒体流,从而实施户设备可以通过WebRTC平台播放保存在WebRTC平台中的媒体流,让用户设备播放可能错过的媒体流,可以提高用户体验度。
图4为本发明另一实施例提供的远程监控方法的信令图;假设在家庭远程监控系统中,与网关设备连接的摄像头包括多个,每个摄像头分别安装在对应的房间,此时,每个摄像头获取的媒体流是对应房间的媒体流;如图4所示,本实施的远程监控方法具体包括:
401、网关设备向WebRTC平台发送认证请求。
假设网关设备已经在WebRTC平台中进行注册,并且WebRTC平台在对网关设备的注册过程中,分配给网关设备认证信息,其中,认证信息包括账号和/或密码等信息。之后,网关设备可以使用WebRTC平台分配的认证信息向WebRTC平台发送认证请求,在WebRTC平台对认证信息认证成功的基础上,网关设备可以登录WebRTC平台。
402、WebRTC平台向网关设备发送该网关设备的标识。
当WebRTC平台根据认证请求,对网关设备发送的认证信息认证成功的基础上,可以给网关设备分配一个peerID,其中,peerID为网关设备的标识。
403、用户设备向WebRTC平台发送认证请求。
假设用户设备已经在WebRTC平台中进行注册,并且WebRTC平台在对用户设备的注册过程中,分配给用户设备认证信息,其中,认证信息包括账号和/或密码等信息。需要说明的是,WebRTC平台分配给用户设备的认证信息可以和分配给网关设备的认证信息是相同的。
之后,用户设备可以使用WebRTC平台分配的认证信息向WebRTC平台发送认证请求,在WebRTC平台对认证信息认证成功的基础上,用户设备可以登录WebRTC平台。
需要说明的是,假设用户设备和网关设备分别位于不同的私网中时,用户设备和网关设备需要分别创建peerConnection(),分别通过各自的通过Relay方式穿越NAT(Traversal Using Relay NAT,TURN)服务器分配的IP地址和端口实现私网的穿越。
404、WebRTC平台向用户设备发送网关设备的标识。
WebRTC平台可以将分配给网关设备的peerID发送给用户设备。
405、用户设备根据网关设备的标识,通过WebRTC平台向对应的网关设备发送获取媒体流的请求消息。
其中,获取媒体流的请求消息中包括网关设备的标识和需要获取的媒体流的标识;
假设根据用户指令,用户需要获取的媒体流是全部房间的媒体流时,此时,需要获取的媒体流的标识可以为全部(all),假设用户需要获取的媒体流是其中的一个或几个房间的媒体流时,需要获取的媒体流的标识可以分别是需要获取的媒体流对应的房间号,例如,1表示需要获取1号房间的媒体流。
需要说明的是,用户设备与WebRTC平台之间通过websocket连接。步骤405具体实现时,用户设备调用函数createOffer(),将会话信息封装进会话描述协议(Session Description Protocol,SDP)中,之后,用户设备调用函数setLocalDescription(“offer”,offer)将SDP,以及获取的媒体流标识和所述网关设备的标识封装进会话发起协议(Session Initiation Protocol,SIP)中作为一个获取媒体流的请求消息(offer),之后,通过webocket通道将SIP发送给网关设备。其中,SDP的会话信息中包括参数a=recvonly,表示只接受媒体流。
406、网关设备根据获取媒体流的请求消息,通过WebRTC平台向用户设备发送获取媒体流的响应消息。
需要说明的是,网关设备与WebRTC平台之间通过websocket连接。
步骤406具体实现时:网络设备接收到封装有获取媒体流的请求消息(offer)的SIP之后,解析出SIP中包括的网关设备的标识和需要获取的媒体流的标识。
假设获取媒体流的请求消息中包括的网关设备的标识与WebRTC平台分配给网关设备的标识是相同的,则调用函数getUsermedia(),获取需要获取的媒体流的标识对应的媒体流;假设需要获取的媒体流的标识为all时,网关设备获取每个房间的媒体流,假设需要获取的媒体流的标识为1时,则获取1号房间对应的媒体流。
之后,网关设备调用函数createAnswer(),将获取的媒体流信息(例如媒体流的编码格式等信息)封装到SDP中,调用函数setLocalDescription(“answer”,answer)将SDP作为获取媒体流的响应消息(answer),通过websocket连接发送给用户设备。
可选地,用户设备接收到获取媒体流的响应消息之后,可以通过WebRTC平台向网关设备发送确认消息(ACK)。
此时,在用户设备和网关设备之间直接建立了WebRTC通信连接,即用户设备和网关设备之间的点对点的通信连接)。
407、网关设备通过建立的WebRTC通信连接,向用户设备发送需要获取的媒体流标识对应的媒体流。
可选地,用户设备可以将接收到的媒体流保存到与所述媒体流标识对应的存储空间。
之后,用户设备通过用户设备的用户界面,接收用户指令,所述用户指令中包括需要播放的媒体流的存储地址,所述需要播放的媒体流的存储地址包括所述用户设备中保存所述需要播放的媒体流的存储空间对应的统一资源定位符;
用户设备根据所述存储地址,调用函数onaddstream(),将所述存储地址对应的存储空间中的媒体流进行播放,即显示在用户设备的视频窗口。
需要说明的是,当用户设备从WebRTC平台中退出时,通过WebRTC平台可以向网关设备发送退出消息(BYE),其中,退出消息可以封装在SIP中通过websocket连接发送给网关设备,使得网关设备可以释放传输媒体流占用的网络连接。
网关设备接收到退出消息(例如BYE消息)之后,可以通过WebRTC平台向用户设备发送退出响应消息(例如200 OK消息),使得用户设备释放接收媒体流占用的网络连接。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
图5为本发明另一实施例提供的远程监控方法的信令图;假设在家庭远程监控系统中,与网关设备连接的摄像头包括多个,每个摄像头分别安装在对应的房间,此时,每个摄像头获取的媒体流是对应房间的媒体流;本实施例中,当用户设备不能实时从网关设备中接收媒体流时,为了避免用户设备错过媒体流,网关设备可以将媒体流先保存到WebRTC平台,以使用户设备可以登录WebRTC平台中播放错过的媒体流。如图5所示,本实施的远程监控方法具体包括:
501、网关设备向WebRTC平台发送认证请求。
假设网关设备已经在WebRTC平台中进行注册,并且WebRTC平台在对网关设备的注册过程中,分配给网关设备认证信息,其中,认证信息包括账号和/或密码等信息。之后,网关设备可以使用WebRTC平台分配的认证信息向WebRTC平台发送认证请求,在WebRTC平台对认证信息认证成功的基础上,网关设备可以登录WebRTC平台。
502、WebRTC平台向网关设备发送该网关设备的标识。
当WebRTC平台根据认证请求,对网关设备发送的认证信息认证成功的基础上,可以给网关设备分配一个peerID,其中,peerID为网关设备的标识。
503、网关设备将多个媒体流以及所述多个媒体流对应的标识发送给WebRTC平台。
假设在家庭远程监控系统中,与网关设备连接的摄像头包括多个,每个摄像头分别安装在对应的房间,此时,每个摄像头获取的媒体流是对应房间的媒体流;具体地,网关设备可以调用函数getUserMedia(),获取每个房间对应的媒体流;
之后,将获取的每一个房间对应的媒体流以及该媒体流的标识分别发送给WebRTC平台;具体地,网关设备例如可以每20分钟调用一次mediaSave(),将获取的每一个房间对应的媒体流以及该媒体流的标识分别发送WebRTC平台。
504、WebRTC平台将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到与所述网关设备的标识对应的媒体流列表中。
之后,WebRTC平台建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
505、用户设备向WebRTC平台发送认证请求。
假设用户设备已经在WebRTC平台中进行注册,并且WebRTC平台在对用户设备的注册过程中,分配给用户设备认证信息,其中,认证信息包括账号和/或密码等信息。需要说明的是,WebRTC平台分配给用户设备的认证信息可以和分配给网关设备的认证信息是相同的。
之后,用户设备可以使用WebRTC平台分配的认证信息向WebRTC平台发送认证请求,在WebRTC平台对认证信息认证成功的基础上,用户设备可以登录WebRTC平台。
需要说明的是,假设用户设备和网关设备分别位于不同的私网中时,用户设备和网关设备需要分别创建peerConnection(),分别通过各自的TURN服务器分配的IP地址和端口实现私网的穿越。
506、WebRTC平台向用户设备发送网关设备的标识,以及与所述网关设备的标识对应的媒体流列表。
其中,与所述网关设备的标识对应的媒体流列表中包括所述网关设备获取的、并保存在WebRTC平台中的多个媒体流对应的标识;其中,多个媒体流对应的标识可以为所述多个媒体流对应的房间号。
507、用户设备根据用户指令在所述媒体流列表中选择媒体流的标识,向所述WebRTC平台发送播放请求消息。
其中,所述播放请求消息中包括所述用户选择的媒体流的标识;
508、WebRTC平台根据所述用户选择的媒体流的标识,以及建立的所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系,获取与所述用户选择的媒体流的标识对应的存储地址。
509、WebRTC平台将所述存储地址指向的存储空间中保存的媒体流发送给用户设备进行播放。
对应地,用户设备接收到WebRTC平台发送的媒体流之后,可以调用函数mediaPlay(),将媒体流进行播放。
本实施例的WebRTC平台可以保存网关设备发送的媒体流,从而实施户设备可以通过WebRTC平台播放保存在WebRTC平台中的媒体流,让用户设备播放可能错过的媒体流,提高用户远程监控的体验度。
图6为本发明另一实施例提供的用户设备的结构示意图;如图6所示,包括:
获取模块61,用于通过基于浏览器的实时通信WebRTC平台获取所述WebRTC平台分配给网关设备的标识;
发送模块62,用于通过所述WebRTC平台向所述网关设备发送获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
接收模块63,用于通过所述建立的WebRTC通信连接,接收所述网关设备发送的与所述需要获取的媒体流标识对应的媒体流。
举例来说,所述获取模块61通过基于浏览器的实时通信WebRTC平台获取所述WebRTC平台分配给网关设备的标识之前;
所述发送模块62,还用于向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;以使所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
举例来说,用户设备还包括:
存储模块64,用于将接收模块63接收的媒体流保存到与所述媒体流标识对应的存储空间。
举例来说,接收模块63,还用于接收用户指令,所述用户指令中包括需要播放的媒体流的存储地址,所述需要播放的媒体流的存储地址包括所述用户设备中保存所述需要播放的媒体流的存储空间对应的统一资源定位符;
用户设备还包括:播放模块65,用于根据所述存储地址,将所述存储地址对应的存储空间中的媒体流进行播放。
举例来说,接收模块63,还用于接收所述WebRTC平台在对所述用户设备认证成功的基础上发送的媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;
所述接收模块63,还用于接收用户指令,所述用户指令中包括用户选择的媒体流的标识;
所述发送模块62,还用于向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识,以使所述WebRTC平台根据所述用户选择的媒体流的标识,获取与所述用户选择的媒体流的标识对应的存储地址,将所述存储地址指向的存储空间中保存的媒体流发送给所述用户设备。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
图7为本发明另一实施例提供的网关设备的结构示意图;如图7所示,包括:
接收模块71,用于通过基于浏览器的实时通信WebRTC平台,接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;
发送模块72,用于通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
所述发送模块72,还用于通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
举例来说,所述发送模块72,还用于向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;以使所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
举例来说,所述发送模块72,还用于向所述WebRTC平台发送多个媒体流以及所述多个媒体流对应的标识;以使所述WebRTC平台将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中,建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
图8为本发明另一实施例提供的WebRTC平台的结构示意图;如图8所示,包括:
接收模块81,用于接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和网关设备的标识;
发送模块82,用于将所述获取媒体流的请求消息发送所述网关设备的标识对应的网关设备,以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接,并通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
举例来说,所述接收模块81,还用于接收所述用户设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;
所述发送模块82,还用于根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
举例来说,所述接收模块81,还用于接收所述网关设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;
所述发送模块82,还用于根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
举例来说,所述接收模块81,还用于接收所述网关设备发送的多个媒体流以及所述多个媒体流对应的标识;
所述WebRTC平台还包括:
存储模块83,用于将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中;
建立模块84,用于建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
举例来说,所述发送模块82,还用于向所述用户设备发送媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;以使所述用户设备根据用户指令选择媒体流的标识,向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识;
所述WebRTC平台还包括:
获取模块85,用于根据所述用户选择的媒体流的标识,以及建立的所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系,获取与所述用户选择的媒体流的标识对应的存储地址;
所述发送模块82,还用于将所述存储地址指向的存储空间中保存的媒体流发送给所述用户设备。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
图9为本发明另一实施例提供的用户设备的结构示意图;如图9所示,包括:
处理器91,用于通过基于浏览器的实时通信WebRTC平台获取所述WebRTC平台分配给网关设备的标识;
发送器92,用于通过所述WebRTC平台向所述网关设备发送获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
接收器93,用于通过所述建立的WebRTC通信连接,接收所述网关设备发送的与所述需要获取的媒体流标识对应的媒体流。
举例来说,所述处理器91通过基于浏览器的实时通信WebRTC平台获取所述WebRTC平台分配给网关设备的标识之前;
所述发送器92,还用于向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;以使所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
举例来说,用户设备还包括:
存储器94,用于将接收器93接收的媒体流保存到与所述媒体流标识对应的存储空间。
举例来说,接收器93,还用于接收用户指令,所述用户指令中包括需要播放的媒体流的存储地址,所述需要播放的媒体流的存储地址包括所述用户设备中保存所述需要播放的媒体流的存储空间对应的统一资源定位符;
用户设备还包括:显示器95,用于根据所述存储地址,将所述存储地址对应的存储空间中的媒体流进行播放。
举例来说,接收器93,还用于接收所述WebRTC平台在对所述用户设备认证成功的基础上发送的媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;
所述接收器93,还用于接收用户指令,所述用户指令中包括用户选择的媒体流的标识;
所述发送器92,还用于向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识,以使所述WebRTC平台根据所述用户选择的媒体流的标识,获取与所述用户选择的媒体流的标识对应的存储地址,将所述存储地址指向的存储空间中保存的媒体流发送给所述用户设备。
进一步地,所述用户设备还包括通信总线,处理器91、发送器92、接收器93、存储器94和显示器95可以通过通信总线连接。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
图10为本发明另一实施例提供的网关设备的结构示意图;如图10所示,包括:
接收器11,用于通过基于浏览器的实时通信WebRTC平台,接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和所述网关设备的标识;
发送器12,用于通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接;
所述发送器12,还用于通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
举例来说,所述发送器12,还用于向所述WebRTC平台发送认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;以使所述WebRTC平台根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
举例来说,所述发送器12,还用于向所述WebRTC平台发送多个媒体流以及所述多个媒体流对应的标识;以使所述WebRTC平台将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中,建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
图11为本发明另一实施例提供的WebRTC平台的结构示意图,如图11所示,包括:
接收器21,用于接收用户设备发送的获取媒体流的请求消息,所述获取媒体流的请求消息中包括需要获取的媒体流标识和网关设备的标识;
发送器22,用于将所述获取媒体流的请求消息发送所述网关设备的标识对应的网关设备,以使所述网关设备通过所述WebRTC平台向所述用户设备发送获取媒体流的响应消息,在所述用户设备和所述网关设备之间建立WebRTC通信连接,并通过所述建立的WebRTC通信连接,向所述用户设备发送的与所述需要获取的媒体流标识对应的媒体流。
举例来说,所述接收器21,还用于接收所述用户设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述用户设备的认证信息;
所述发送器22,还用于根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述用户设备发送与所述认证信息对应的网关设备的标识。
举例来说,所述接收器21,还用于接收所述网关设备发送的认证请求,所述认证请求中包括所述WebRTC平台分配给所述网关设备的认证信息;
所述发送器22,还用于根据所述认证请求,对所述认证信息进行认证,在认证成功的基础上,向所述网关设备发送与所述认证信息对应的网关设备的标识。
举例来说,所述接收器21,还用于接收所述网关设备发送的多个媒体流以及所述多个媒体流对应的标识;
所述WebRTC平台还包括:
存储器23,用于将所述多个媒体流分别存储到对应的存储空间,将所述多个媒体流对应的标识保存到媒体流列表中;
处理器24,用于建立所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系。
举例来说,所述发送器22,还用于向所述用户设备发送媒体流列表,所述媒体流列表中包括多个媒体流对应的标识;以使所述用户设备根据用户指令选择媒体流的标识,向所述WebRTC平台发送播放请求消息,所述播放请求消息中包括所述用户选择的媒体流的标识;
处理器24,还用于根据所述用户选择的媒体流的标识,以及建立的所述多个媒体流对应的标识与所述多个媒体流对应的存储空间指向的存储地址之间的对应关系,获取与所述用户选择的媒体流的标识对应的存储地址;
所述发送器22,还用于将所述存储地址指向的存储空间中保存的媒体流发送给所述用户设备。
进一步地,所述WebRTC平台还包括通信总线,接收器21、发送器22、存储器23和处理器24通过通信总线连接。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
图12为本发明另一实施例提供的远程监控系统的结构示意图,如图12所示,所述系统包括用户设备31、网关设备32和WebRTC平台33。
其中,用户设备31为图6或图9所示实施例中所述的用户设备,不再赘述;
网关设备32为图7或图10所示实施例中所述的网关设备,不再赘述;
WebRTC平台33为图8或图11所示实施例中所述的WebRTC平台23,不再赘述。
其中,用户设备31和网关设备32分别与WebRTC平台33之间通过websocket连接。
用户设备31和网关设备32分别中分别安装有支持WebRTC的浏览器。
在本发明的一个可选实施方式中,本实施例的用户设备31可以采用移动终端实现,网关设备32可以采用家庭网关来实现,WebRTC平台33可以采用WebRTC服务器来实现,本实施例所述的系统是一个基于WebRTC服务器的家庭网关远程监控系统。
举例来说,每个房间布置有一个摄像头,每个摄像头连接家庭网关,每个摄像头录制的媒体流的标识设置为对应房间的房间号,假设家庭网关和移动终端已经在WebRTC服务器上进行注册认证,并且家庭网关已经将每个房间对应的媒体流标识列表上传WebRTC服务器。
图13为本实施例所述远程监控系统的工作信令图,如图13所示,本实施例所述的基于WebRTC服务器的家庭网关远程监控系统的工作过程为:
1、开启家庭网关,家庭网关会自动打开浏览器并访问安装在家庭网关侧的远程监控应用程序(Application,APP)1;
2、家庭网关侧的APP自动登录到WebRTC服务器,WebRTC服务器分配给家庭网关一个网关标识(例如,peerID);
3、移动终端访问安装在移动终端侧的远程监控应用程序(Application,APP)2;
4、通过移动终端的用户界面,输入用户名和密码,移动终端登录WebRTC服务器,获取家庭设备的peerID以及家庭设备上传到WebRTC服务器中的每个房间对应的媒体流标识列表;
5、移动终端创建peerConnection(),需要说明的是,当移动终端位于私网中时,移动终端需要进行(Network Address Translation,NAT)网络地址转换,此时,移动终端对应的TURN服务器需要给移动终端分配IP和端口;
6、移动终端利用家庭网关的peerID,呼叫家庭网关;
7、家庭网关和移动终端都与WebRTC服务器建立websocket连接;
8、移动终端调用函数createOffer(),将本地的会话信息封装进SDP,其中SDP参数a=recvonly,表示只接收媒体流;
9、移动终端调用函数setLocalDescription(“offer”,offer)将本地的会话信息作为一个请求(offer);
10、移动终端将offer信息封装进SIP发送给WebRTC服务器,发起会话请求,其中,SIP中包含有家庭网关的peerID;
11、WebRTC服务器将移动终端发起的SIP通过websocket通道发到家庭网关;
12、家庭网关接收到SIP并解析之后,收到移动终端发起的会话请求,调用函数getUsermedia(),打开所有摄像头;
13、家庭网关创建peerconnection(),需要说明的是,当家庭网关位于私网中时,家庭网关需要进行NAT时,家庭网关对应的TURN服务器给家庭网关分配IP和端口;
14、家庭网关调用函数setRemoteDescription(“offer”,offer),收到移动终端的offer,并获取移动终端的本地会话信息SDP;
15、家庭网关调用函数addstream(),将摄像头录制的媒体流添加进peerConnection()中;
16、家庭网关调用函数createAnswer(),回应移动终端的请求,并将摄像头录制的媒体流封装进本地会话信息SDP;
17、家庭网关调用函数setLocalDescription(“answer”,answer),将封装有媒体流的本地会话信息SDP作为answer回应移动终端;
18、家庭网关调用SIP=CreatResponse(200,answer),通过SIP消息(例如200 OK消息),将封装有媒体流的本地会话信息SDP利用websocket连接发送给移动终端;
19、移动终端接收并解析SIP消息,调用函数setRemoteDescription(),获取家庭网关的本地会话信息SDP;
20、当家庭网关的媒体流传输过来时,移动终端调用函数onaddstream(),将媒体流显示在移动设备的视频窗口;
21、移动终端发送确认消息(ACK消息)给家庭网关,然后开始传输媒体流;
22、移动终端切换媒体流、保存、播放时,只需要通过移动终端的浏览器中点击相应按钮或链接即可,例如通过浏览器调用函数meidaswitch()实现移动终端切换媒体流,调用函数mediasave()实现移动终端保存媒体流,调用函数mediaplay()实现移动终端播放媒体流。
之后,当移动终端挂断或退出APP时,会发送SIP消息(例如BYE消息)给家庭网关,使得家庭网关释放peerConnection();家庭网关发送200 OK消息给移动终端,使得移动终端释放peerConnection()。
本发明实施例通过用户设备通过WebRTC平台向网关设备发送获取媒体流的请求消息,使得网关设备通过WebRTC平台向用户设备发送获取媒体流的响应消息,从而实现在用户设备和网关设备之间直接建立WebRTC连接的点对点通信连接,使得网关设备直接通过WebRTC连接的websocket通道向用户设备发送用户设备需要获取的媒体流。由于网关设备直接通过WebRTC连接的点对点通信连接将媒体流发送给用户设备,不需要通过WebRTC平台传输媒体流,不仅可以减少媒体流传输时间,提高媒体流传输效率,而且保证了媒体流传输的安全性和私密性。同时,本发明实施例不需要考虑动态IP造成的、需要重新进行摄像头参数设置的问题,可以解决获取媒体流数据不方便的问题。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以以代码的形式存储在一个计算机可读取存储介质中。上述代码存储在一个计算机可读存储介质中,包括若干指令用以使处理器或硬件电路执行本发明各个实施例所述方法的部分或全部步骤。而前述的存储介质包括:通用串行总线接口的无需物理驱动器的微型高容量移动存储盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称ROM)、随机存取存储器(英文:Random AccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。