一种多屏视频共享方法及终端、服务器
技术领域:
本发明通信技术领域,特别涉及一种多屏视频共享方法及终端、服务器。
背景技术:
互联网技术的进步以及终端电子设备的多样化发展,极大便利了人们的工作生活。比如在我们的工作生活中,有时需要将一个设备上的正在播放的视频节目直接推送到其它设备上播放,有时候又需要将其它设备上正在播放的视频节目拉到回到本设备上播放。现有技术中,为实现多个这种设备之间的视频节目相互推拉,往往需要在各种形态的终端上安装指定的客户端软件,继而进行多屏互动的操作。如在DLNA(DIGITAL LIVINGNETWORK ALLIANCE)技术中,若通过多屏互动配件WiPlug实现手机与电视之间的视频推拉,需要在手机上下载WiPlug客户端,通过WiPlug客户端将手机的屏幕投射到电视上,并控制电视的视频播放。
但由于终端的操作***(Operating System,OS)、硬件等差异很大,客户端软件的开发者为适应终端的应用需要往往开发多种形态的客户端软件,用户面对多种形态的客户端软件往往无所适从,也会因客户端软件比较复杂而无法安装,进而无法实现各设备之间的视频共享。
发明内容:
本发明提供了一种多屏视频共享方法及终端、服务器,以提高各设备之间的视频共享效率。
第一方面,本发明提供了一种多屏视频共享方法的一个实施例。
在第一种可能的实现方式中,所述方法包括:第一终端与服务器建立网页套接字协议websocket数据传输通道,并获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;
所述第一终端通过所述websocket数据传输通道,接收所述至少一个第二终端经由所述服务器发送的视频地址信息;所述视频地址信息用于指示所述至少一个第二终端当前播放的视频在所述服务器上的位置;
所述第一终端根据所述视频地址信息,从所述服务器上获取所述视频。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一终端与服务器建立websocket数据传输通道具体为:
第一终端向服务器发送websocket握手请求;
所述第一终端接收所述服务器发送的握手响应;所述握手响应为所述服务器对所述第一终端发送的对所述websocket握手请求的响应;所述握手响应包含与所述服务器建立websocket连接的至少一个第二终端的地址信息。
结合第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,在所述第一终端接收所述至少一个第二终端经由所述服务器发送的视频地址信息之前,所述方法还包括:
所述第一终端根据所述地址信息,通过所述websocket数据传输通道,经由所述服务器向所述第二终端发送第一请求,以请求所述第二终端将当前播放的视频的地址信息发送到所述第一终端;
所述第一终端接收所述至少一个第二终端经由所述服务器发送的同意所述第一请求的响应消息。
结合第一方面第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述第一终端接收的视频地址信息为统一资源定位符(Uniform Resource Locator,URL);所述第一终端根据所述视频地址信息,从所述服务器获取所述视频具体为:
所述第一终端根据所述URL与所述服务器建立视频链路,接收所述服务器发送的所述视频的视频流。
结合第一方面第一种或第二种或第三种或第四种可能的实现方式,在第五种可能的实现方式中,在所述第一终端完成所述视频的播放后,所述方法还包括:
所述第一终端关闭与所述服务器建立的websocket数据传输通道。
第二方面,本发明提供了一种多屏视频共享方法的一个实施例。
在第一种可能的实现方式中,所述方法包括:第一终端与服务器建立websocket数据传输通道,并获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;
所述第一终端通过所述websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送视频地址信息;所述视频地址信息用于指示所述第一终端当前播放的视频在所述服务器的位置。
结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,所述第一终端与服务器建立websocket数据传输通道具体为:
第一终端向服务器发送websocket握手请求;
所述第一终端接收所述服务器发送的握手响应;所述握手响应为所述服务器对所述第一终端发送的对所述websocket握手请求的响应;所述握手响应包含与所述服务器连接的至少一个第二终端的地址信息。
结合第二方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,在所述第一终端通过所述websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送视频地址信息之前,所述方法还包括:
所述第一终端根据所述地址信息,通过所述websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送第二请求,以请求将所述第一终端将当前播放的视频的地址信息发送到所述至少一个第二终端;
所述第一终端接收所述至少一个第二终端发送的同意所述第二请求的响应消息。
结合第二方面第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,在所述第一终端完成所述视频地址信息的发送后,所述方法还包括:
所述第一终端关闭与所述服务器建立的websocket数据传输通道。
第三方面,本发明提供了一种多屏视频共享方法的一个实施例。
在第一种可能的实现方式中,所述方法包括:服务器与第一终端建立websocket数据传输通道,并向所述第一终端发送与所述服务器建立websocket连接的至少一个第二终端的地址信息;
所述服务器接收所述至少一个第二终端发送的视频地址信息,并向所述第一终端发送视频地址信息;所述视频地址信息用于指示所述至少一个第二终端当前播放的视频在所述服务器的位置;
所述服务器接收所述第一终端根据所述视频地址信息获取视频的请求,向所述第一终端发送所述视频。
结合第三方面第一种可能的实现方式,在第二种可能的实现方式中,所述服务器与第一终端建立websocket数据传输通道,并向所述第一终端发送与所述服务器建立websocket连接的至少一个第二终端的地址信息具体为:
所述服务器接收所述第一终端发送的websocket握手请求;
所述服务器向所述第一终端发送握手响应;所述握手响应为所述服务器对所述第一终端发送的对所述websocket握手请求的响应;所述握手响应包含与所述服务器建立websocket连接的至少一个第二终端的地址信息。
结合第三方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,在所述服务器接收所述至少一个第二终端发送的视频地址信息之前,所述方法还包括:
所述服务器接收所述第一终端通过所述websocket数据传输通道发送的第三请求,并向所述至少一个第二终端发送所述第三请求;所述第三请求用于请求所述至少一个第二终端将当前播放的视频的地址信息发送到所述第一终端;
所述服务器接收所述至少一个第二终端发送的同意所述第三请求的响应消息,并向所述第一终端发送所述响应消息。
结合第三方面第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,
所述视频地址信息为URL;所述服务器接收所述第一终端根据所述视频地址信息获取视频的请求,向所述第一终端发送所述视频具体为:
所述服务器接收所述第一终端根据所述视频地址信息获取视频的请求,与所述第一终端建立与所述URL对应的视频链路,向所述第一终端发送所述视频的视频流。
第四方面,本发明提供了一种多屏视频共享方法的一个实施例。
在第一种可能的实现方式中,所述方法包括:服务器与第一终端建立websocket数据传输通道,并向所述第一终端发送与所述服务器建立websocket连接的至少一个第二终端的地址信息;
所述服务器接收所述第一终端发送的视频地址信息,并向所述至少一个第二终端发送所述视频地址信息;所述视频地址信息用于指示所述第一终端当前播放的视频在所述服务器的位置;
所述服务器接收所述至少一个第二终端根据所述视频地址信息获取视频的请求,向所述至少一个第二终端发送所述视频。
结合第四方面第一种可能的实现方式,在第二种可能的实现方式中,所述服务器与第一终端建立websocket数据传输通道,并向所述第一终端发送与所述服务器建立websocket连接的至少一个第二终端的地址信息具体为:
所述服务器接收所述第一终端发送的websocket握手请求;
所述服务器向所述第一终端发送握手响应;所述握手响应为所述服务器对所述第一终端发送的对所述websocket握手请求的响应;所述握手响应包含与所述服务器建立websocket连接的至少一个第二终端的地址信息。
结合第四方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,在所述服务器接收所述第一终端发送的视频地址信息之前,所述方法还包括:
所述服务器接收所述第一终端通过所述websocket数据传输通道发送的第四请求,并向所述至少一个第二终端发送所述第四请求;所述第四请求用于请求将所述所述第一终端当前播放的视频的地址信息发送至所述至少一个第二终端;
所述服务器接收所述至少一个第二终端发送的同意所述第四请求的响应消息,并向所述第一终端发送所述响应消息。
结合第四方面第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述视频地址信息为URL;所述服务器接收所述至少一个第二终端根据所述视频地址信息获取视频的请求,向所述至少一个第二终端发送所述视频具体为:
所述服务器接收所述至少一个第二终端根据所述视频地址信息获取视频的请求,与所述至少一个第二终端建立与所述URL对应的视频链路,向所述至少一个第二终端发送所述视频的视频流。
第五方面,本发明提供了一种终端的一个实施例。
在第一种可能的实现方式中,所述终端包括:连接单元,用于与服务器建立websocket数据传输通道;
获取单元,用于获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;根据视频地址信息,从所述服务器上获取视频;
接收单元,用于通过所述websocket数据传输通道,接收所述至少一个第二终端经由所述服务器发送的视频地址信息;所述视频地址信息用于指示所述至少一个第二终端当前播放的视频在所述服务器上的位置。
结合第五方面第一种可能的实现方式,在第二种可能的实现方式中,所述终端还包括:
发送单元,用于在所述接收单元接收视频地址信息之前,根据所述地址信息,通过所述websocket数据传输通道,经由所述服务器向所述第二终端发送第五请求,以请求所述第二终端将当前播放的视频的地址信息发送到所述第一终端;
所述接收单元还用于,接收所述至少一个第二终端发送的同意所述第五请求的响应消息。
结合第五方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述接收单元接收的视频地址信息为URL;
所述连接单元还用于,根据所述URL与所述服务器建立视频链路;
所述获取单元根据视频地址信息,从所述服务器获取视频具体为:
所述获取单元根据所述视频链路,获取所述服务器发送的所述视频的视频流。
结合第五方面第一种或第二种或第三种可能的实现方式,在第四种可能的实现方式中,所述连接单元还用于,在所述获取单元获取视频后,关闭与所述服务器建立的websocket数据传输通道。
第六方面,本发明提供了一种终端的一个实施例。
在第一种可能的实现方式中,所述终端包括:连接单元,用于与服务器
建立websocket数据传输通道;
获取单元,用于获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;
发送单元,用于通过所述websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送视频地址信息;所述视频地址信息用于指示所述第一终端当前播放的视频在所述服务器的位置
结合第六方面第一种可能的实现方式,在第二种可能的实现方式中,所述发送单元还用于,在发送视频地址信息之前,根据所述地址信息,通过所述websocket数据传输通道,经由所述服务器向所述第二终端发送第六请求,以请求将所述第一终端将当前播放的视频的地址信息发送到所述至少一个第二终端;
所述终端还包括:
接收单元,用于接收所述至少一个第二终端发送的同意所述第六请求的响应消息。
结合第六方面第一种可能的实现方式,在第三种可能的实现方式中,所述连接单元还用于,在所述发送单元完成所述视频地址信息的发送后,关闭与所述服务器的websocket数据传输通道。
第七方面,本发明提供了一种服务器的一个实施例。
在第一种可能的实现方式中,所述服务器包括:连接单元,用于与第一
终端建立websocket数据传输通道;
获取单元,用于获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;
发送单元,用于向所述第一终端发送与服务器建立websocket连接的至少一个第二终端的地址信息;向所述第一终端发送所述视频地址信息;所述视频地址信息用于指示所述至少一个第二终端当前播放的视频在所述服务器的位置;向所述第一终端发送视频;
接收单元,接收所述至少一个第二终端发送的视频地址信息;接收所述第一终端根据所述视频地址信息获取视频的请求。
结合第七方面第一种可能的实现方式,在第二种可能的实现方式中,所述接收单元还用于,接收所述第一终端通过所述websocket数据传输通道发送的第七请求,所述第七请求用于请求所述至少一个第二终端将当前播放的视频的地址信息发送到所述第一终端;接收所述至少一个第二终端发送的同意所述第七请求的响应消息;
所述发送单元还用于,向所述至少一个第二终端发送所述第七请求;向所述第一终端发送所述响应消息。
结合第七方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述发送单元发送的视频地址信息为URL;
所述连接单元还用于,与所述第一终端建立与所述URL对应的视频链路;
所述发送单元向所述第一终端发送所述视频具体为:
所述发送单元通过所述视频链路,向所述第一终端发送所述视频的视频流。
第八方面,本发明提供了一种服务器的一个实施例。
在第一种可能的实现方式中,所述服务器包括:连接单元,用于与第一终端建立websocket数据传输通道;
获取单元,用于获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;
发送单元,用于向所述第一终端发送所述与服务器建立websocket连接的至少一个第二终端的地址信息;向所述至少一个第二终端发送所述视频地址信息;所述视频地址信息用于指示所述第一终端当前播放的视频在所述服务器的位置;向所述至少一个第二终端发送所述视频。
接收单元,接收所述第一终端发送的视频地址信息;接收所述至少一个第二终端根据所述视频地址信息获取视频的请求。
结合第八方面第一种可能的实现方式,在第二种可能的实现方式中,所述接收单元还用于,在接收所述第一终端发送的视频地址信息之前,接收所述第一终端通过所述websocket数据传输通道发送的第八请求,所述第八请求用于请求将所述所述第一终端当前播放的视频的地址信息发送至所述至少一个第二终端;接收所述至少一个第二终端发送的同意所述第四请求的响应消息;
所述发送单元还用于,向所述至少一个第二终端发送所述第八请求;向所述第一终端发送所述响应消息。
结合第八方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述发送单元发送的视频地址信息为URL;
所述连接单元还用于,与所述至少一个第二终端建立与所述URL对应的视频链路;
所述发送单元向所述至少一个第二终端发送所述视频具体为:
所述发送单元通过所述视频链路,向所述至少一个第二终端发送所述视频的视频流。
在本发明提供的实施例中,终端通过与服务器建立websocket数据传输通道获取视频地址信息,所述终端通过浏览器接收媒体流、播放视频,使得终端不再需要安装客户端软件,提高了各设备之间的视频共享效率。
附图说明:
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种多屏视频共享方法一个实施例的流程示意图;
图2是本发明提供的一种多屏视频共享方法一个实施例的流程示意图;
图3是本发明提供的一种多屏视频共享方法一个实施例的流程示意图;
图4是本发明提供的一种多屏视频共享方法一个实施例的流程示意图;
图5是本发明提供的一种终端的实施例的结构示意图;
图6是本发明提供的一种终端的实施例的结构示意图;
图7是本发明提供的一种服务器的实施例的结构示意图;
图8是本发明提供的一种服务器的实施例的结构示意图。
具体实施方式:
实施例一
本发明实施例提供了一种多屏视频共享方法,如图1所示,所述方法包括:
S101,第一终端与服务器建立网页套接字协议websocket数据传输通道,并获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;
所述第一终端运行浏览器,所述浏览器为支持HTML5的浏览器,如chrome浏览器等。所述第一终端通过浏览器与服务器建立websocket连接,建立websocket数据传输通道。所述第一终端通过所述与服务器建立的websocket数据传输通道从所述服务器处获取至少一个第二终端的地址信息。所述至少一个第二终端同样与所述服务器建立websocket连接,建立websocket数据传输通道。所述至少一个第二终端的地址信息可以为所述至少一个第二终端的IP地址、主机名等。所述服务器获取所述第一终端的IP地址、主机名等信息。
S102,所述第一终端通过所述websocket数据传输通道,接收所述至少一个第二终端经由所述服务器发送的视频地址信息;所述视频地址信息用于指示所述至少一个第二终端当前播放的视频在所述服务器上的位置;
具体地,所述至少一个第二终端获取所述第一终端的地址信息。所述至少一个第二终端将当前播放的视频在所述服务器上的地址信息经由所述服务器发送给所述第一终端。所述至少一个第二终端与所述服务器建立websocket数据传输通道,所述至少一个第二终端可通过与服务器建立的websocket数据传输通道将所述视频信息发送至服务器,由服务器通过该服务器与所述第一终端建立的websocket数据传输通道将所述视频信息发送至第一终端。所述视频地址信息可以为所述至少一个第二终端当前直播视频的统一资源定位符(Uniform Resource Locator,URL)或者频道号信息;或者,所述视频信息也可以为所述至少一个第二终端将当前点播视频的URL;还可以包括当前视频的播放时间等参数。
S103,所述第一终端根据所述视频地址信息,从所述服务器上获取所述视频。
所述第一终端获取所述视频地址信息后,从所述服务器上获取所述视频的数据,并播放所述视频。所述视频数据可根据HTTP协议传输。
在本发明提供的实施例中,终端通过与服务器建立websocket数据传输通道获取视频地址信息,所述终端通过浏览器接收媒体流、播放视频,使得终端不再需要安装客户端软件,提高了各设备之间的视频共享效率。尤其在家庭网络中,终端与服务器建立websocket连接,降低了网络流量,节约了网络资源。
在本发明实施例的一种实现方式中,所述第一终端与服务器建立websocket数据传输通道通过第一终端发送握手请求与服务器响应所述握手请求实现。具体地,所述第一终端通过浏览器向所述服务器发送websocket握手请求,所述websocket握手请求可以包括所述第一终端的IP地址、主机名等。所述服务器接收所述第一终端发送的websocket握手请求,获取所述第一终端的IP地址、主机名等。所述服务器解析所述websocket握手请求并产生握手响应。所述服务器将所述握手响应发送至所述第一终端,实现成功握手,建立websocket数据传输通道。所述服务器发送的握手响应可包含所述服务器获取的与该服务器连接的至少一个第二终端的地址信息,如IP地址、主机名等。所述至少一个第二终端与所述服务器建立websocket数据传输通道。具体地,第一终端向服务器端发送握手请求,所述握手请求可为特定数据格式。所述数据格式可以按照“协议头、字段一、字段分隔符、字段二、字段分隔符…”的格式排列。所述协议头、字段、字段分隔符均为可以显示的ASCII字符。所述协议头用于区分各个不同数据包。所述字段由字段关键字与数据两个部分组成。所述握手请求的数据格式的协议头可以是“start”,也可以是“begin”,用于表明本数据格式为握手请求。本发明实施例中的字段可以有两种形式:其一为第一终端的设备名称“name”,若所述终端设备没有名称,则没有此字段。其二为设备类型“device”,如“PC”,“Pad”,“Phone”,“IPClient”“MediaServer”等。所述握手请求的数据格式的字段用字段分隔符加以区分。所述第一终端将包含所述协议头和所述字段的握手请求发送至服务器,请求与服务器建立websocket连接。所述服务器接收所述第一终端的握手请求,解析所述握手请求的数据格式后,向所述终端发送针对所述握手请求的响应消息。所述响应消息为特定数据格式,所述数据格式可以按照“协议头、字段一、字段分隔符、字段二、字段分隔符…”的格式排列。所述响应消息数据格式的协议头可以是“list”,标明登录到服务器端的所有设备名称列表。所述响应消息数据格式的协议头可以是“NtDm”,标明登录到服务器端的所有设备名、IP、hostname。所述“list”或“NtDm”协议头用于表示本数据格式的消息是对所述第一终端握手请求的响应消息。所述第一终端接收服务器发送的响应消息,与所述服务器建立websocket连接。通过所述websocket数据传输通道传输相关数据,节约了网络资源。
在本发明实施例的一种实现方式中,在所述第一终端接收所述至少一个第二终端经由所述服务器发送的视频地址信息之前,所述第一终端可根据所述至少一个第二终端的地址信息,通过所述websocket数据传输通道,经由所述服务器向所述第二终端发送第一请求,以请求所述第二终端将当前播放的视频的地址信息发送到所述第一终端;所述第一终端接收所述至少一个第二终端经由所述服务器发送的同意所述第一请求的响应消息。
具体地,所述第一终端通过与所述服务器建立的websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送将所述至少一个第二终端当前播放的视频推送到所述第一终端的请求,即所述第一终端向所述至少一个第二终端拉取所述至少一个第二终端当前播放视频的请求。所述第一终端将所述第一请求先通过websocket数据传输通道发送至服务器,由服务器通过该服务器与所述至少一个第二终端建立的websocket数据传输通道将第一请求发送至至少一个第二终端。所述请求的数据格式的协议头可以是“push”,用于表明本数据格式的第一请求是请求所述至少一个第二终端将当前播放的视频推送到所述第一终端。所述第一请求的字段可以包括四部分,其一,字段“dest”,表示目标设备名称,即第一终端;其二,字段“data”,用于表示视频信息,例如视频流id或者视频的URL;其三,字段“type”,用于表示所述视频是直播还是录播;其四,字段“device”,用于表示设备类型,例如“device”,如“PC”,“Pad”,“Phone”,“IP Client”“MediaServer”等。具体地,所述至少一个第二终端对所述第一终端发送的第一请求的回应消息的数据格式的协议头可以是“recv”,用于表示本数据格式的消息是对所述第一请求的回应。所述回应消息的数据格式的字段可包括两部分,其一,字段“data”,用于表示视频流的id或者所述视频的URL;其二,字段“type”,用于表示所述视频是直播还是录播。
所述至少一个第二终端接收所述第一请求后,经由所述服务器向所述第一终端发送同意所述第一请求的响应消息。
在本发明实施例的一种实现方式中,所述第一终端接收的视频地址信息为统一资源定位符(Uniform Resource Locator,URL),所述第一终端根据所述URL与所述服务器建立视频链路,接收所述服务器发送的所述视频的视频流。具体地,所述第一终端获取所述URL后,根据所述URL向所述服务器发送视频数据请求。所述第一终端与服务器建立视频链路,所述服务器将所述URL对应的视频的视频流发送至所述第一终端,所述第一终端接收所述服务器发送的所述视频的视频流。所述视频流可以为传输流(Transport Stream,TS)。所述视频流可以通过HTTP协议发送。所述第一终端接收所述视频流后,播放所述视频流对应的视频。
在本发明实施例的上述实现方式中,在所述第一终端完成所述视频的播放后,所述方法还包括:所述第一终端关闭与所述服务器的websocket数据传输通道。
实施例二
本发明实施例提供了一种多屏视频共享方法,如图2所示,所述方法包括:
S201,第一终端通过浏览器与服务器建立websocket数据传输通道,获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;
S202,所述第一终端通过所述websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送视频地址信息;所述视频地址信息用于指示所述第一终端当前播放的视频在所述服务器的位置。
具体地,所述第一终端获取所述至少一个第二终端的地址信息。所述第一终端可通过与服务器建立的websocket数据传输通道将所述视频地址信息发送至服务器,由服务器通过该服务器与所述至少一个第二终端建立的websocket数据传输通道将所述视频信息发送至至少一个第二终端。所述视频地址信息可以为所述至少一个第二终端当前直播视频的URL或者频道号信息;或者,所述视频信息也可以为所述至少一个第二终端将当前点播视频的URL;还可以包括当前视频的播放时间等参数。
在本发明提供的实施例中,终端通过与服务器建立websocket数据传输通道获取视频地址信息,所述终端通过浏览器接收媒体流、播放视频,使得终端不再需要安装客户端软件,提高了各设备之间的视频共享效率。尤其在家庭网络中,终端与服务器建立websocket连接,降低了网络流量,节约了网络资源。
在本发明实施例的一种实现方式中,所述第一终端与服务器建立websocket数据传输通道通过第一终端发送握手请求与服务器响应所述握手请求实现。具体地,所述第一终端通过浏览器向所述服务器发送websocket握手请求,所述websocket握手请求可以包括所述第一终端的IP地址、主机名等。所述服务器接收所述第一终端发送的websocket握手请求,获取所述第一终端的IP地址、主机名等。所述服务器解析所述websocket握手请求并产生握手响应。所述服务器将所述握手响应发送至所述第一终端,实现成功握手,建立websocket数据传输通道。所述服务器发送的握手响应可包含所述服务器获取的与该服务器连接的至少一个第二终端的地址信息,如IP地址、主机名等。所述至少一个第二终端与所述服务器建立websocket数据传输通道。
在本发明实施例的一种实现方式中,在所述第一终端通过所述websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送视频地址信息之前,所述第一终端根据所述至少一个第二终端的地址信息,通过所述websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送第二请求,以请求将所述第一终端将当前播放的视频的地址信息发送到所述至少一个第二终端;所述第一终端接收所述至少一个第二终端发送的同意所述第二请求的响应消息。具体地,所述第一终端通过与所述服务器建立的websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送将所述第一终端当前播放的视频推送到所述至少一个第二终端的请求,即所述第一终端向所述至少一个第二终端推送所述第一终端当前播放视频的请求。所述第一终端通过websocket数据传输通道将所述请求发送至服务器,由服务器通过该服务器与所述至少一个第二终端建立的websocket数据传输通道将所述请求发送所述至至少一个第二终端。所述请求的数据格式的协议头可以是“pull”,用于表明本数据格式的第一请求是请求将所述第一终端将当前播放的视频推送到所述至少一个第二终端。所述视频拉请求的字段可以包括两部分:其一,字段“souce”,表示第一终端名称;其二,字段“device”,用于表示设备类型,例如“device”,如“PC”,“Pad”,“Phone”,“IP Client”“MediaServer”等。所述至少一个第二终端对所述第一请求的响应消息的数据格式的协议头可以是“send”,用于表示本数据格式的消息是对所述第一请求的响应消息。所述响应消息的数据隔格式的字段包括两部分,其一,字段“souce”,表示源设备名称,即所述第一终端的相关信息;其二,字段“device”,用于表示设备类型,例如“device”,如“PC”,“Pad”,“Phone”,“IP Client”“MediaServer”。
在本发明实施例的上述实现方式中,在所述第一终端完成所述视频信息的发送后,所述方法还包括:所述第一终端关闭与所述服务器建立的websocket数据传输通道。
实施例三
本发明实施例提供了一种多屏视频共享方法,如图3所示,所述方法包括:
S301,服务器与第一终端建立websocket数据传输通道,并向所述第一终端发送与所述服务器建立websocket连接的至少一个第二终端的地址信息;
具体地,所述服务器与所述第一终端建立websocket连接,建立websocket数据传输通道。所述服务器与所述至少一个第二终端建立websocket连接,建立websocket数据传输通道。所述服务器将所述至少一个第二终端的地址信息通过所述与第一终端建立的websocket数据传输通道发送至所述第一终端。所述至少一个第二终端的地址信息可以为所述至少一个第二终端的IP地址、主机名等。
S302,所述服务器接收所述至少一个第二终端发送的视频地址信息,并向所述第一终端发送视频地址信息;所述视频地址信息用于指示所述至少一个第二终端当前播放的视频在所述服务器的位置;
具体地,所述服务器接收所述至少一个第二终端通过所述websocket数据传输通道发送的视频地址信息,并将所述视频地址信息通过该服务器与所述第一终端建立的websocket数据传输通道发送至所述第一终端。所述第一终端获取所述视频地址信息。所述视频地址信息可以为所述至少一个第二终端当前直播视频的URL或者频道号信息;或者,所述视频信息也可以为所述至少一个第二终端将当前点播视频的URL;还可以包括当前视频的播放时间等参数。
S303,所述服务器接收所述第一终端根据所述视频地址信息获取视频的请求,向所述第一终端发送所述视频。
所述第一终端获取所述视频地址信息后,根据所述视频地址信息向服务器发送数据请求,请求获取所述视频地址信息对应的视频数据。所述服务器接收所述请求后,可向所述第一终端发送数据流。所述视频流可以为传输流。所述视频流可以通过HTTP协议发送。
在本发明提供的实施例中,终端通过与服务器建立websocket数据传输通道获取视频地址信息,所述终端通过浏览器接收媒体流、播放视频,使得终端不再需要安装客户端软件,提高了各设备之间的视频共享效率。尤其在家庭网络中,终端与服务器建立websocket连接,降低了网络流量,节约了网络资源。
在本发明实施例的一种实现方式中,所述服务器与所述第一终端建立websocket数据传输通道通过第一终端发送握手请求与服务器响应所述握手请求实现。所述服务器接收所述第一终端发送的websocket握手请求;所述服务器向所述第一终端发送握手响应;所述握手响应为所述服务器对所述第一终端发送的对所述websocket握手请求的响应。所述第一终端接收所述握手响应,实现成功握手,建立websocket数据传输通道。
在本发明实施例的一种实现方式中,在所述服务器接收所述至少一个第二终端发送的视频地址信息之前,所述服务器接收所述第一终端通过所述websocket数据传输通道发送的第三请求,并向所述至少一个第二终端发送所述第三请求;所述第三请求用于请求所述至少一个第二终端将当前播放的视频的地址信息发送到所述第一终端;所述服务器接收所述至少一个第二终端发送的同意所述第三请求的响应消息,并向所述第一终端发送所述响应消息。具体地,所述第一终端获取与所述服务器连接的至少一个第二终端的地址信息后,所述第一终端通过与所述服务器建立的websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送将所述第一终端当前播放的视频推送到所述至少一个第二终端的请求,即所述第一终端向所述至少一个第二终端推送所述第一终端当前播放视频的请求。所述服务器接收所述第一终端通过第一终端与服务器建立的websocket数据传输通道发送的请求,并将所述请求通过所述至少一个第二终端与服务器建立的websocket数据传输通道发送至所述至少一个第二终端。所述至少一个第二终端获取所述请求后,向所述第一终端发送对所述请求的响应消息。所述服务器接收所述至少一个第二终端通过该终端与服务器建立的websocket数据传输通道发送的响应消息,并将所述响应消息通过所述第一终端与服务器建立的websocket数据传输通道发送至所述第一终端。
在本发明实施例的一种实现方式中,所述视频地址信息为统一资源定位符(URL);所述服务器接收所述第一终端根据所述视频地址信息获取视频的请求,与所述第一终端建立与所述URL对应的视频链路,向所述第一终端发送所述视频的视频流。
实施例四
本发明实施例提供了一种多屏视频共享方法,如图4所示,所述方法包括:
S401,服务器与第一终端建立websocket数据传输通道,并向所述第一终端发送与所述服务器建立websocket连接的至少一个第二终端的地址信息;
S402,所述服务器接收所述第一终端发送的视频地址信息,并向所述至少一个第二终端发送所述视频地址信息;所述视频地址信息用于指示所述第一终端当前播放的视频在所述服务器的位置;
具体地,所述服务器接收所述第一终端通过所述websocket数据传输通道发送的视频地址信息,并将所述视频地址信息通过该服务器与所述至少一个第二终端建立的websocket数据传输通道发送至所述至少一个第二终端。所述至少一个第二终端获取所述视频地址信息。所述视频地址信息可以为所述第一终端当前直播视频的URL或者频道号信息;或者,所述视频信息也可以为所述第一终端将当前点播视频的URL;还可以包括当前视频的播放时间等参数。
S403,所述服务器接收所述至少一个第二终端根据所述视频地址信息获取视频的请求,向所述至少一个第二终端发送所述视频。
所述至少一个第二终端获取所述视频地址信息后,根据所述视频地址信息向服务器发送数据请求,请求获取所述视频地址信息对应的视频数据。所述服务器接收所述请求后,可向所述至少一个第二终端发送数据流。所述视频流可以为传输流。所述视频流可以通过HTTP协议发送。
在本发明提供的实施例中,终端通过与服务器建立websocket数据传输通道获取视频地址信息,所述终端通过浏览器接收媒体流、播放视频,使得终端不再需要安装客户端软件,提高了各设备之间的视频共享效率。尤其在家庭网络中,终端与服务器建立websocket连接,降低了网络流量,节约了网络资源。
在本发明实施例的一种实现方式中,所述服务器与所述第一终端建立websocket数据传输通道通过第一终端发送握手请求与服务器响应所述握手请求实现。所述服务器接收所述第一终端发送的websocket握手请求;所述服务器向所述第一终端发送握手响应;所述握手响应为所述服务器对所述第一终端发送的对所述websocket握手请求的响应。所述第一终端接收所述握手响应,实现成功握手,建立websocket数据传输通道。
在本发明实施例的一种实现方式中,在所述服务器接收所述第一终端发送的视频地址信息之前,所述服务器接收所述第一终端通过所述websocket数据传输通道发送的第四请求,并向所述至少一个第二终端发送所述第四请求;所述第四请求用于请求将所述所述第一终端当前播放的视频的地址信息发送至所述至少一个第二终端;所述服务器接收所述至少一个第二终端发送的同意所述第四请求的响应消息,并向所述第一终端发送所述响应消息。具体地,所述第一终端获取与所述服务器连接的至少一个第二终端的地址信息后,所述第一终端通过与所述服务器建立的websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送将所述至少一个第二终端当前播放的视频推送到所述第一终端的请求,即所述第一终端向所述至少一个第二终端拉取所述至少一个第二终端当前播放视频的请求。所述服务器接收所述第一终端通过第一终端与服务器建立的websocket数据传输通道发送的第一请求,并将所述第一请求通过所述至少一个第二终端与服务器建立的websocket数据传输通道发送至所述至少一个第二终端。所述至少一个第二终端获取所述请求后,向所述第一终端发送对所述请求的响应消息。所述服务器接收所述至少一个第二终端通过该终端与服务器建立的websocket数据传输通道发送的响应消息,并将所述响应消息通过所述第一终端与服务器建立的websocket数据传输通道发送至所述第一终端。
在本发明实施例的一种实现方式中,所述视频地址信息为统一资源定位符(URL);所述服务器接收所述至少一个第二终端根据所述视频地址信息获取视频的请求,与所述至少一个第二终端建立与所述URL对应的视频链路,向所述至少一个第二终端发送所述视频的视频流。
实施例五
如图5所示,本发明实施例提供了一种终端,所述终端包括:
连接单元502,用于与服务器建立websocket数据传输通道;所述连接单元通过浏览器与服务器建立websocket连接,建立websocket数据传输通道。
获取单元503,用于获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;根据视频地址信息,从所述服务器上获取视频;
在所述连接单元与所述服务器建立websocket数据传输通道后,所述获取单元通过所述websocket数据传输通道,从所述服务器获取与所述服务器建立websocket连接的至少一个第二终端的地址信息。所述至少一个第二终端与所述服务器建立websocket连接。所述至少一个第二终端的地址信息可以为所述至少一个第二终端的IP地址、主机名等。
接收单元505,用于通过所述websocket数据传输通道,接收所述至少一个第二终端经由所述服务器发送的视频地址信息;所述视频地址信息用于指示所述至少一个第二终端当前播放的视频在所述服务器上的位置。在所述至少一个第二终端获取所述第一终端的地址信息后,所述至少一个第二终端将当前播放的视频的视频地址信息经由所述服务器推送给所述第一终端,所述接收单元接收所述至少一个第二终端经由所述服务器推送的所述视频地址信息。所述至少一个第二终端可通过与所述服务器建立的websocket数据传输通道,经由所述服务器向所述第一终端推送所述视频的信息。
在所述接收单元505接收所述视频地址信息后,所述获取单元503还用于,根据视频地址信息,从所述服务器获取视频。
所述终端还包括通信总线501,用于连接所述连接单元502、信息获取单元503、接收单元505。
在本发明提供的实施例中,终端通过与服务器建立websocket数据传输通道获取视频地址信息,所述终端通过浏览器接收媒体流、播放视频,使得终端不再需要安装客户端软件,提高了各设备之间的视频共享效率。尤其在家庭网络中,终端与服务器建立websocket连接,降低了网络流量,节约了网络资源。
在本发明实施例的一种实现方式中,所述终端还包括发送单元504,用于在所述接收单元接收视频地址信息之前,根据所述地址信息,通过所述websocket数据传输通道,经由所述服务器向所述第二终端发送第五请求,以请求所述第二终端将当前播放的视频的地址信息发送到所述第一终端;所述接收单元505还用于,接收所述至少一个第二终端发送的同意所述第五请求的响应消息。在所述获取单元获取与所述服务器连接的至少一个第二终端的地址信息后,所述发送单元通过与所述服务器建立的websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送将所述至少一个第二终端当前播放的视频拉取到所述第一终端的请求。所述至少一个第二终端接收所述请求后,可通过与所述服务器建立的websocket数据传输通道经由所述服务器向所述第一终端发送同意所述请求的响应消息。
在本发明实施例的一种实现方式中,所述接收单元接收的视频地址信息为URL;所述连接单元还用于,根据所述URL与所述服务器建立视频链路;所述获取单元根据视频地址信息,从所述服务器获取视频具体为:所述获取单元根据所述视频链路,获取所述服务器发送的所述视频的视频流。所述视频流可以为传输流(Transport Stream,TS)。所述视频流可以通过HTTP协议发送。所述接收单元接收所述视频流后,所述第一终端播放所述视频流对应的视频。
在本发明实施例的一种实现方式中,所述连接单元还用于,在所述获取单元获取视频后,关闭与所述服务器建立的websocket数据传输通道。
实施例六
如图6所示,本发明实施例提供了一种终端,所述终端包括:
连接单元602,用于与服务器建立websocket数据传输通道;
获取单元603,用于获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;
发送单元604,用于通过所述websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送视频地址信息;所述视频地址信息用于指示所述第一终端当前播放的视频在所述服务器上的位置。
在所述获取单元获取与所述服务器连接的至少一个第二终端的地址信息后,所述发送单元通过与所述服务器建立的websocket数据传输通道,经由所述服务器向所述至少一个第二终端发送所述第一终端当前播放的视频的视频地址信息。
所述终端还包括通信总线601,用于连接所述连接单元602、信息获取单元603、发送单元604。
在本发明提供的实施例中,终端通过与服务器建立websocket数据传输通道获取视频地址信息,所述终端通过浏览器接收媒体流、播放视频,使得终端不再需要安装客户端软件,提高了各设备之间的视频共享效率。尤其在家庭网络中,终端与服务器建立websocket连接,降低了网络流量,节约了网络资源。
在本发明实施例的一种实现方式中,所述发送单元还用于,在发送视频地址信息之前,根据所述地址信息,通过所述websocket数据传输通道,经由所述服务器向所述第二终端发送第六请求,以请求将所述第一终端将当前播放的视频的地址信息发送到所述至少一个第二终端;所述终端还包括接收单元,用于接收所述至少一个第二终端发送的同意所述第六请求的响应消息。
在本发明实施例的一种实现方式中所述连接单元还用于,在所述发送单元完成所述视频信息的发送后,关闭与所述服务器的websocket数据传输通道。
实施例七
如图7所示,本发明实施例提供了一种服务器,所述服务器包括:
连接单元702,用于与第一终端建立websocket数据传输通道;所述连接单元与所述第一终端建立websocket连接,建立websocket数据传输通道。
获取单元703,用于获取与所述服务器建立websocket连接的至少一个第二终端的地址信息。所述至少一个第二终端与所述服务器建立websocket连接,所述至少一个第二终端的地址信息可以为所述至少一个第二终端的IP地址、主机名等。
发送单元704,用于向所述第一终端发送与服务器建立websocket连接的至少一个第二终端的地址信息;
在所述获取单元获取所述至少一个第二终端的地址信息后,所述发送单元将所述至少一个第二终端的地址信息发送至所述第一终端。
接收单元705,接收所述至少一个第二终端发送的视频地址信息;所述视频地址信息用于指示所述至少一个第二终端当前播放的视频在所述服务器的位置;
所述发送单元704还用于,在所述接收单元705接收所述视频地址信息后,向所述第一终端发送所述视频地址信息。
所述接收单元705还用于,在发送单元向所述第一终端发送所述视频地址信息后,接收所述第一终端根据所述视频地址信息获取视频的请求。
所述发送单元704还用于,向所述第一终端发送与所述视频地址信息对应的视频。
所述服务器还包括通信总线701,用于连接所述连接单元702、获取单元703、发送单元704和接收单元705。
在本发明提供的实施例中,终端通过与服务器建立websocket数据传输通道获取视频地址信息,所述终端通过浏览器接收媒体流、播放视频,使得终端不再需要安装客户端软件,提高了各设备之间的视频共享效率。尤其在家庭网络中,终端与服务器建立websocket连接,降低了网络流量,节约了网络资源。
在本发明实施例的一种实现方式中,所述接收单元还用于,接收所述第一终端通过所述websocket数据传输通道发送的第七请求,所述第七请求用于请求所述至少一个第二终端将当前播放的视频的地址信息发送到所述第一终端;所述发送单元还用于,在所述接收单元接收所述第七请求后,向所述至少一个第二终端发送所述第七请求;所述接收单元还用于,接收所述至少一个第二终端发送的同意所述第七请求的响应消息;所述发送单元还用于,在所述接收单元接收所述响应消息后向所述第一终端发送所述响应消息。
在本发明实施例的一种实现方式中,所述发送单元发送的视频地址信息为统一资源定位符(URL);所述连接单元还用于,与所述第一终端建立与所述URL对应的视频链路;所述发送单元向所述第一终端发送所述视频具体为:所述发送单元通过所述视频链路,向所述第一终端发送所述视频的视频流。
实施例八
如图8所示,本发明实施例提供了一种服务器,所述服务器包括:
连接单元802,用于与第一终端建立websocket数据传输通道;所述连接单元与所述第一终端建立websocket连接,建立websocket数据传输通道。
获取单元803,用于获取与所述服务器建立websocket连接的至少一个第二终端的地址信息;所述至少一个第二终端与所述服务器建立websocket连接,所述至少一个第二终端的地址信息可以为所述至少一个第二终端的IP地址、主机名等。
发送单元804,用于向所述第一终端发送所述与服务器建立websocket连接的至少一个第二终端的地址信息;
接收单元805,接收所述第一终端发送的视频地址信息;所述视频地址信息用于指示所述第一终端当前播放的视频在所述服务器的位置;
所述发送单元804还用于,在所述接收单元接收所述视频地址信息后,向所述至少一个第二终端发送所述视频地址信息;
所述接收单元805还用于,在所述发送单元向所述至少一个第二终端发送所述视频地址信息后,接收所述至少一个第二终端根据所述视频地址信息获取视频的请求。
所述发送单元804还用于,向所述至少一个第二终端发送所述视频。
所述服务器还包括通信总线801,用于连接所述连接单元802、获取单元803、发送单元804和接收单元805。
在本发明提供的实施例中,终端通过与服务器建立websocket数据传输通道获取视频地址信息,所述终端通过浏览器接收媒体流、播放视频,使得终端不再需要安装客户端软件,提高了各设备之间的视频共享效率。尤其在家庭网络中,终端与服务器建立websocket连接,降低了网络流量,节约了网络资源。
在本发明实施例的一种实现方式中,所述接收单元还用于,在接收所述第一终端发送的视频地址信息前,接收所述第一终端通过所述websocket数据传输通道发送的第八请求,所述第八请求用于请求将所述所述第一终端当前播放的视频的地址信息发送至所述至少一个第二终端;接收所述至少一个第二终端发送的同意所述第四请求的响应消息;所述发送单元还用于向所述至少一个第二终端发送所述第八请求;向所述第一终端发送所述响应消息。
在本发明实施例的一种实现方式中,所述发送单元发送的视频地址信息为统一资源定位符(URL);所述连接单元还用于,与所述至少一个第二终端建立与所述URL对应的视频链路;所述发送单元向所述至少一个第二终端发送所述视频具体为:所述发送单元通过所述视频链路,向所述至少一个第二终端发送所述视频的视频流。
所述终端还包括处理器单元,所述服务器还包括处理器单元。所述处理器单元为电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储单元内的软件程序和/或模块,以及调用存储在存储单元内的数据,以执行电子设备的各种功能和/或处理数据。所述处理器单元可以由集成电路(IntegratedCircuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器单元可以仅包括中央处理器(CentralProcessing Unit,简称CPU),也可以是GPU、数字信号处理器(Digital Signal Processor,简称DSP)、及通信单元中的控制芯片(例如基带芯片)的组合。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
本发明提供的一个实施例中,终端可实现对服务器视频提供设备的控制。例如在家庭网络中,通过所述终端实现对机顶盒的远程控制。具体地,终端向服务器发送远程控制请求。所述远程控制请求用于所述终端请求实现对所述服务器MediaServer设备的远程控制。所述远程控制请求的数据格式的协议头可以是“RemoteIPKey”,用于表明本数据格式的请求是远程控制请求。所述远程控制请求的字段包括字段“key”,用于表示遥控器键值。所述终端接收所述服务器对所述远程控制请求的响应。所述服务器解析所述终端发送的远程控制请求,并向所述终端发送针对搜书远程控制请求的响应消息。所述远程控制请求的响应消息的数据格式的协议头可以是“RIRK”,用于表示本数据格式的消息是对所述远程控制请求的回应消息。所述远程控制请求的响应消息的字段包括“key”,用于表示远程遥控器键值。本发明实施例实现了在家庭网络中,终端通过浏览器实现了对视频提供设备的控制,提高了终端操控效率。
在本发明的一个实施例中,终端可获取与服务器连接的其它终端的信息。具体地,所述终端向所述服务器发送获取与所述服务器连接的其它终端信息的请求。所述获取终端信息请求的数据格式的协议头可以是“NetworkDiagram”,用于表示本数据格式的请求是获取与所述服务器端连接的其它终端信息的请求。所述服务器解析所述请求,刷新与服务器端连接所有终端的网络拓扑图,获取与所述服务器连接的所有终端的信息。所述信息可以包括所述终端的IP地址、主机名等。所述终端接收所述服务器对所述请求的响应。所述响应消息的数据格式的协议头可以是“NtDm”,所述“NtDm”标明登录到MediaServer的所有设备名、IP、hostname等,用于表示本数据格式的消息是对所述获取终端信息请求的响应消息。所述服务器将包含所述“NtDm”协议头的针对所述获取终端信息请求的回应消息发送至与所述终端。所述终端获取与所述服务器连接的其它终端的信息。
需要说明的是,上述实施例中的相应技术特征可以相互参考。
需要说明的是,在本发明的上述实施例中,本发明所揭示的媒体数据播放装置可以实作成单独一台装置,或整合于各种不同的媒体数据播放装置中,诸如机顶盒、移动电话、平板电脑(Tablet Personal Computer)、膝上型电脑(Laptop Computer)、多媒体播放器、数字摄影机、个人数字助理(personal digital assistant,简称PDA)、导航装置、移动上网装置(Mobile Internet Device,MID)或可穿戴式设备(Wearable Device)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。