首页 / 专利库 / 计算机网络 / 服务器 / 视频投屏方法、装置、计算机设备及存储介质

视频投屏方法、装置、计算机设备及存储介质

阅读:76发布:2021-06-08

专利汇可以提供视频投屏方法、装置、计算机设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种视频投屏方法、装置、计算机设备及存储介质,属于视频技术领域。该方法包括:代理 服务器 接收第二终端的投屏代理 请求 消息,该投屏代理请求消息至少携带该第一终端正在播放的第一 视频流 的流信息;从已接收到的视频流中匹配视频服务器向该第一终端发送的数据流;当匹配到该第一视频流时,对该第一视频流进行复制;将复制的视频流发送至第二终端。本发明通过代理服务器从已接收到的视频流中匹配到该第一终端正在播放的视频流,并将与第一终端正在播放的视频对应的视频流发送至第二终端,使得第一终端与第二终端同步播放,避免了第一终端向第二终端发送视频流,降低了第一终端的网络压 力 及功耗,避免了卡顿,从而提高了投屏 质量 。,下面是视频投屏方法、装置、计算机设备及存储介质专利的具体信息内容。

1.一种视频投屏方法,其特征在于,应用于代理服务器,所述代理服务器与第一终端和第二终端处于同一个局域网中,所述方法包括:
接收第二终端的投屏代理请求消息,所述投屏代理请求消息至少携带所述第一终端正在播放的第一视频流的流信息;
根据所述第一视频流的流信息,匹配视频服务器向所述第一终端发送的数据流,所述视频服务器用于提供所述第一视频流;
当匹配到所述第一视频流时,对所述第一视频流进行复制,以获取第二视频流;
将所述第二视频流发送至所述第二终端,所述第二视频流用于在所述第二终端进行视频播放。
2.根据权利要求1所述的方法,其特征在于,所述第一视频流为实时流媒体传输协议RTP流,所述第一视频流的流信息包括五元组。
3.根据权利要求1所述的方法,其特征在于,所述第一视频流的流信息包括视频统一资源定位符URL信息。
4.根据权利要求3所述的方法,其特征在于,所述投屏代理请求消息还包括所述视频服务器的网络协议地址,所述方法还包括:
当未匹配到所述第一视频流时,根据所述第二终端的投屏代理请求消息,向视频服务器发送视频流请求消息,所述视频流请求消息携带视频URL信息;
接收第三视频流,所述第三视频流为所述视频URL信息对应的视频流;
将所述第三视频流发送至所述第二终端。
5.根据权利要求3或4所述的方法,其特征在于,所述第一视频流的流信息还包括所述第一终端的网络协议地址。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述第一视频流的流信息,匹配视频服务器向所述第一终端发送的数据流之前,所述方法还包括:
根据所述投屏代理请求消息中的协议类型字段,确定目标流媒体传输协议,所述目标流媒体传输协议为所述第一终端所采用的流媒体传输协议,所述协议类型字段的不同取值对应于不同的流媒体传输协议;
基于所述目标流媒体传输协议,执行根据所述第一视频流的流信息,匹配视频服务器向所述第一终端发送的数据流的步骤。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
接收所述第一终端周期性发送的视频同步消息,将所述视频同步消息转发至所述第二终端,所述视频同步消息包括所述第一视频流的流信息,所述视频同步消息还包括播放进度和所述第一终端的头部转动信息中至少一项。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述方法还包括:
接收所述第二终端的投屏代理结束请求消息,所述投屏代理结束请求消息用于请求所述代理服务器结束对所述第一视频流的匹配过程;
停止对所述视频服务器向所述第一终端发送的数据流进行匹配。
9.一种视频投屏方法,其特征在于,应用于第二终端,所述第二终端与代理服务器以及第一终端处于同一个局域网中,所述方法包括:
接收所述第一终端的投屏请求消息,所述投屏请求消息至少携带所述第一终端正在播放的第一视频流的流信息;
向所述代理服务器发送投屏代理请求消息,所述投屏代理请求消息至少携带所述第一终端正在播放的第一视频流的流信息;
接收所述代理服务器发送的第二视频流,所述第二视频流为对所述代理服务器所接收到的所述第一视频流复制得到;
接收所述第一终端发送的视频同步消息,所述视频同步消息包括所述第一视频流的流信息,所述视频同步消息还包括播放进度和所述第一终端的头部转动信息中的任一项;
基于所述视频同步消息和所述第二视频流进行视频播放。
10.根据权利要求9所述的方法,其特征在于,所述第一视频流为RTP流,所述第一视频流的流信息包括五元组。
11.根据权利要求9所述的方法,其特征在于,所述第一视频流的流信息包括视频URL信息。
12.根据权利要求11所述的方法,其特征在于,所述第一视频流的流信息还包括所述第一终端的网络协议地址。
13.根据权利要求9至12任一项所述的方法,其特征在于,所述投屏代理请求消息的协议类型字段用于指示所述第一终端所采用的流媒体传输协议。
14.根据权利要求9至13任一项所述的方法,其特征在于,所述方法还包括:
接收所述第一终端的投屏结束请求消息;
向所述代理服务器发送投屏代理结束请求消息,所述投屏代理结束请求消息用于请求所述代理服务器结束对所述第一视频流的匹配过程。
15.一种视频投屏装置,其特征在于,应用于代理服务器,所述代理服务器与第一终端和第二终端处于同一个局域网中,所述装置包括:
第一接收模,用于接收第二终端的投屏代理请求消息,所述投屏代理请求消息至少携带所述第一终端正在播放的第一视频流的流信息;
匹配模块,用于根据所述第一视频流的流信息,匹配视频服务器向所述第一终端发送的数据流,所述视频服务器用于提供所述第一视频流;
获取模块,用于当匹配到所述第一视频流时,对所述第一视频流进行复制,以获取所述第二视频流;
第一发送模块,用于将所述第二视频流发送至所述第二终端,所述第二视频流用于在所述第二终端进行视频播放。
16.根据权利要求15所述的装置,其特征在于,所述第一视频流为RTP流,所述第一视频流的流信息包括五元组。
17.根据权利要求15所述的装置,其特征在于,所述第一视频流的流信息包括视频URL信息。
18.根据权利要求17所述的装置,其特征在于,所述投屏代理请求消息还包括所述视频服务器的网络协议地址,所述装置还包括:
第二发送模块,用于当未匹配到所述第一视频流时,根据所述第二终端的投屏代理请求消息,向视频服务器发送视频流请求消息,所述视频流请求消息携带视频URL信息;
第二接收模块,用于接收第三视频流,所述第三视频流为视频URL信息对应的视频流;
第三发送模块,用于将所述第三视频流发送至所述第二终端。
19.根据权利要求17或18所述的装置,其特征在于,所述第一视频流的流信息还包括所述第一终端的网络协议地址。
20.根据权利要求15至19任一项所述的装置,其特征在于,所述装置还包括:
确定模块,用于根据所述投屏代理请求消息中的协议类型字段,确定目标流媒体传输协议,所述目标流媒体传输协议为所述第一终端所采用的流媒体传输协议,所述协议类型字段的不同取值对应于不同的流媒体传输协议;
执行模块,用于基于所述目标流媒体传输协议,执行根据所述第一视频流的流信息,匹配视频服务器向所述第一终端发送的数据流的步骤。
21.根据权利要求15至20任一项所述的装置,其特征在于,所述装置还包括:
第三接收模块,用于接收所述第一终端周期性发送的视频同步消息,将所述视频同步消息转发至所述第二终端,所述视频同步消息包括所述第一视频流的流信息,所述视频同步消息还包括播放进度和所述第一终端的头部转动信息中至少一项。
22.根据权利要求15至21任一项所述的装置,其特征在于,所述装置还包括:
第四接收模块,用于接收所述第二终端的投屏代理结束请求消息,所述投屏代理结束请求消息携带所述第一终端的网络协议地址,所述投屏代理结束请求消息用于请求所述代理服务器结束对所述第一视频流的匹配过程;
停止模块,用于停止对所述视频服务器向所述第一终端发送的数据流进行匹配。
23.一种视频投屏装置,其特征在于,应用于第二终端,所述第二终端与代理服务器以及第一终端处于同一个局域网中,所述装置包括:
第一接收模块,用于接收所述第一终端的投屏请求消息,所述投屏请求消息至少携带所述第一终端正在播放的第一视频流的流信息;
第一发送模块,用于向所述代理服务器发送投屏代理请求消息,所述投屏代理请求消息至少携带所述第一终端正在播放的第一视频流的流信息;
第二接收模块,用于接收所述代理服务器发送的第二视频流,所述第二视频流为对所述代理服务器所接收到的所述第一视频流复制得到;
第三接收模块,用于接收所述第一终端发送的视频同步消息,所述视频同步消息包括所述第一视频流的流信息,所述视频同步消息还包括播放进度和所述第一终端的头部转动信息中任一项;
播放模块,用于基于所述视频同步消息和所述第二视频流进行视频播放。
24.根据权利要求23所述的装置,其特征在于,所述第一视频流为RTP流,所述第一视频流的流信息包括五元组。
25.根据权利要求23所述的装置,其特征在于,所述第一视频流的流信息包括视频URL信息。
26.根据权利要求25所述的装置,其特征在于,所述第一视频流的流信息还包括所述第一终端的网络协议地址。
27.根据权利要求23至26任一项所述的装置,其特征在于,所述投屏代理请求消息的协议类型字段用于指示所述第一终端所采用的流媒体传输协议。
28.根据权利要求23至27任一项所述的装置,其特征在于,所述装置还包括:
第四接收模块,用于接收所述第一终端的投屏结束请求消息;
第二发送模块,用于向所述代理服务器发送投屏代理结束请求消息,所述投屏代理结束请求消息用于请求所述代理服务器结束对所述第一视频流的匹配过程。
29.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求14任一项所述的视频投屏方法所执行的操作。
30.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求14任一项所述的视频投屏方法所执行的操作。

说明书全文

视频投屏方法、装置、计算机设备及存储介质

技术领域

[0001] 本发明涉及视频技术领域,特别涉及一种视频投屏方法、设备、计算机设备及存储介质。

背景技术

[0002] 随着科技的进步,虚拟现实(vi rtua l rea l ity,VR)终端作为一种个人佩戴设备,被广泛应用在生活中,由于体积的限制,VR终端无法满足多人同时观看视频的需求,因此需要投屏技术,将VR终端的视频影像投放至其他能够实现多人同时观看视频的屏幕上。
[0003] 现在的投屏技术可以是以机顶盒作为视频投放方来进行投屏的,其投屏过程可以是如下过程:VR终端向视频服务器发送视频数据请求,该视频请求携带VR终端的网络协议地址、视频统一资源定位符(un iform resource locator,URL)信息、视频服务器的网络协议地址;视频服务器根据视频请求携带的信息,向该VR终端发送视频流;该VR终端接收该视频流后,播放该视频流指示的视频;该VR终端向机顶盒发送投屏请求,该投屏请求携带视频流、播放进度以及头部转动信息;该机顶盒根据接收的投屏请求携带的信息,播放该VR终端正在播放的视频。
[0004] 但是在上述投屏过程中,该VR终端不仅需要接收视频流,还需要向机顶盒发送视频流,增加了该VR终端的网络压以及功耗,当该VR终端的网络压力过高时,VR终端播放的视频会出现卡顿的情况,那么在机顶盒上播放的视频也会出现卡顿的情况,从而降低了投屏质量

发明内容

[0005] 本发明实施例提供了一种视频投屏方法、设备、计算机设备及存储介质,能够解决第一终端投屏卡顿以及第一终端的网络压力和功耗过大的问题。该技术方案如下:
[0006] 第一方面,提供了一种视频投屏方法,应用于代理服务器,该代理服务器与第一终端和第二终端处于同一个局域网中,该方法包括:
[0007] 接收第二终端的投屏代理请求消息,该投屏代理请求消息至少携带该第一终端正在播放的第一视频流的流信息;
[0008] 根据该第一视频流的流信息,匹配视频服务器向该第一终端发送的数据流,该视频服务器用于提供该第一视频流;
[0009] 当匹配到该第一视频流时,对该第一视频流进行复制,以获取该第二视频流;
[0010] 将该第二视频流发送至该第二终端,该第二视频流用于在该第二终端进行视频播放。
[0011] 在一种可能实现方式中,该第一视频流为实时传输协议(rea l-t ime transport protoco l,RTP)流,该第一视频流的流信息包括五元组。
[0012] 在一种可能实现方式中,该第一视频流的URL信息。
[0013] 基于以上两种可能实现方式,说明该第一终端可以支持多种流媒体传输协议,提高了第一终端的适用性能,该第一终端具有普适性。
[0014] 在一种可能实现方式中,该投屏代理请求消息还包括该视频服务器的网络协议地址,该方法还包括:
[0015] 当未匹配到该第一视频流时,根据该第二终端的投屏代理请求消息,向视频服务器发送视频流请求消息,该视频流请求消息携带视频URL信息;
[0016] 接收第三视频流,该第三视频流为该视频URL信息对应的视频流;
[0017] 将该第三视频流发送至该第二终端。
[0018] 基于上述可能的实现方式,可以避免代理服务器因为无法匹配到第一终端正在播放的视频流,而造成在投屏不同步现象,提高了同步效果。
[0019] 在一种可能实现方式中,该第一视频流的流信息还包括该第一终端的网络协议地址。
[0020] 基于上述可能实现方式,代理服务器可以同时为多个第一终端提供代理投屏服务,提高了代理服务器的使用效率。
[0021] 在一种可能实现方式中,该根据该第一视频流的流信息,匹配视频服务器向该第一终端发送的数据流之前,该方法还包括:
[0022] 根据该投屏代理请求消息中的协议类型字段,确定目标流媒体传输协议,该目标流媒体传输协议为该第一终端所采用的流媒体传输协议,该协议类型字段的不同取值对应于不同的流媒体传输协议;
[0023] 基于该目标流媒体传输协议,执行根据该第一视频流的流信息,匹配视频服务器向该第一终端发送的数据流的步骤。
[0024] 基于上述可能的实现方式,代理服务器可以根据投屏代理请求信息中的协议类型字段,来实现针对不同流媒体传输协议视频的自适应、差异化处理。
[0025] 在一种可能实现方式中,该方法还包括:
[0026] 接收该第一终端周期性发送的视频同步消息,将该视频同步消息转发至该第二终端,该视频同步消息包括该第一视频流的流信息,该视频同步消息还包括播放进度和该第一终端的头部转动信息中至少一项。
[0027] 基于上述可能实现方式,周期性发送视频同步信息,使得第二终端可以根据该视频同步信息,实时调整播放的视频画面,以便第二终端播放的视频画面与第一终端播放的视频画面同步,从而提高了同步效果。
[0028] 在一种可能实现方式中,该方法还包括:
[0029] 接收该第二终端的投屏代理结束请求消息,该投屏代理结束请求消息用于请求该代理服务器结束对该第一视频流的匹配过程;
[0030] 停止对该视频服务器向该第一终端发送的数据流进行匹配。
[0031] 基于上述可能实现方式,以便该投屏过程可以随时结束,从而避免不必要的持续投屏,例如,在无人观看投屏画面时。
[0032] 第二方面,提供了一种视频投屏方法,应用于第二终端,该第二终端与代理服务器以及第一终端处于同一个局域网中,该方法包括:
[0033] 接收该第一终端的投屏请求消息,该投屏请求消息至少携带该第一终端正在播放的第一视频流的流信息;
[0034] 向该代理服务器发送投屏代理请求消息,该投屏代理请求消息至少携带该第一终端正在播放的第一视频流的流信息;
[0035] 接收该代理服务器发送的第二视频流,该第二视频流为对该代理服务器所接收到的该第一视频流复制得到;
[0036] 接收该第一终端发送的视频同步消息,该视频同步消息包括该第一视频流的流信息,该视频同步消息还包括播放进度和该第一终端的头部转动信息中任一项;
[0037] 基于该视频同步消息和该第二视频流进行视频播放。
[0038] 在一种可能实现方式中,该方法还包括:
[0039] 接收该第一终端的投屏结束请求消息;
[0040] 向该代理服务器发送投屏代理结束请求消息,该投屏代理结束请求消息用于请求该代理服务器结束对该第一视频流的匹配过程。
[0041] 基于上述可能实现方式,以便该投屏过程可以随时结束,从而避免不必要的持续投屏,例如,在无人观看投屏画面时。
[0042] 第三方面,提供了一种视频投屏装置,用于执行上述视频投屏方法。具体地,该视频投屏装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的视频投屏方法的功能模,其中,该上述方面为应用于代理服务器的一种视频投屏方法所对应的方面。
[0043] 第四方面,提供了一种视频投屏装置,用于执行上述视频投屏方法。具体地,该视频投屏装置包括用于执行上述第二方面或上述第二方面的任一种可选方式提供的视频投屏方法的功能模块,其中,该上述方面为应用于第二终端的一种视频投屏方法所对应的方面。
[0044] 一方面,提供一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述视频投屏方法所执行的操作。
[0045] 一方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现如上述视频投屏方法所执行的操作。
[0046] 本发明实施例提供的技术方案带来的有益效果是:
[0047] 通过代理服务器根据第一终端的网络协议地址以及视频流的流信息,从已接收到的视频流中匹配到该第一终端正在播放的视频流,并将与第一终端正在播放的视频对应的视频流发送至第二终端,以便第二终端可以播放该视频流指示的视频,达到第一终端与第二终端同步播放的目的,避免了第一终端向第二终端发送视频流,降低了第一终端的网络压力以及功耗,避免了卡顿,从而提高了投屏质量。附图说明
[0048] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0049] 图1是本发明实施例提供的一种视频投屏实施环境的示意图;
[0050] 图2是本发明实施例提供的第一终端的结构示意图;
[0051] 图3是本发明实施例提供的一种第二终端的结构示意图;
[0052] 图4是本发明实施例提供的一种代理服务器的装置结构示意图;
[0053] 图5是本发明实施例提供的一种视频投屏方法流程图
[0054] 图6是本发明实施例提供的一种视频投屏方法流程图;
[0055] 图7是本发明实施例提供的一种视频投屏方法流程图;
[0056] 图8是本发明实施例提供的一种视频投屏方法流程图;
[0057] 图9是本发明实施例提供的一种视频投屏装置的结构示意图;
[0058] 图10是本发明实施例提供的一种视频投屏装置的结构示意图。

具体实施方式

[0059] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0060] 图1是本发明实施例提供的一种视频投屏实施环境的示意图。参见图1,该实施环境中包括:第一终端101、第二终端102、代理服务器103以及视频服务器104。其中,第一终端101、第二终端102以及代理服务器103在同一个局域网内,第一终端101通过无线网连接第二终端102、代理服务器103以及视频服务器104,代理服务器103可以通过网线连接第二终端。
[0061] 第一终端101,是用于播放视频的终端,可以播放运营商的视频服务器所提供的视频,该视频可以是电影、电视剧、游戏视频或者实时聊天视频等。在本发明实施例中,第一终端可以作为投屏的发起者,其播放的视频可以作为投屏目标。该第一终端可以是VR终端,用于播放VR视频,而VR视频主要提供以人眼为中心点,围绕上下180度、平360度无缝衔接的全景影像,视频服务器104向第一终端101传输视频流时,视频服务器104会将360度环绕画面全部都推送给第一终端101,再由第一终端101负责跟踪用户视的变化、即时完成画面投影和显示工作,所以VR视频观看过程中会随时变换视角,也就需要第一终端101向代理服务器103周期性发送视频同步消息,以便第二终端102根据代理服务器103转发的该视频同步消息,来播放第一终端101正在播放的视频画面,以达到同步的目的。当然,第一终端也可以是其他可以播放视频的终端,对此本发明实施例不做具体限定。该第一终端101可以为一体机,可以是运营商VR业务的用户终端,可选地,该第一终端101可以为VR眼镜。
[0062] 第二终端102,是具有视频播放能力的终端,可以根据接收的视频流,播放该视频流指示的视频。在本发明实施例中,第二终端102可以用于投屏显示。第二终端102可以向代理服务器103发送投屏代理请求,并根据代理服务器103周期性转发的视频同步消息,以及代理服务器103发送的视频流,播放第一终端101正在播放的视频画面,完成投屏显示。当然,该第二终端也可以是其他用于播放视频的终端,只要能完成投屏显示即可,本发明实施例不做具体限定。该第二终端102可以是运营商宽带电视业务的用户终端,例如机顶盒。
[0063] 代理服务器103,是局域网的统一网络出口,可以作为第二终端102的代理服务器,负责向第二终端102转发第一终端101发送的信息,以及将匹配到的第一终端101正在播放的视频流,发送至第二终端102,以便第二终端102可以根据其发送的信息,播放第一终端101正在播放的视频画面。
[0064] 视频服务器104,可以存储视频文件,用于向第一终端101发送视频流,以便第一终端101可以播放该视频流指示的视频。视频服务器104可以是运营商的视频服务器集群中,与第一终端进行视频流交互的视频服务器。运营商的视频服务器集群,由一个或多个调度视频服务器以及多个非调度服务器组成,并且多个非调度服务器可以存储同一份视频文件。当调度服务器接收到第一终端101的视频流请求消息时,根据视频流请求消息中携带的信息,调度出存储目标视频文件且较为空闲的非调度视频服务器,由该非调度视频服务器向第一终端101发送视频流。当然,接收视频流请求消息的视频服务器也可以是非调度服务器,由该非调度服务器向第一终端101发送视频流。本发明实施对哪个视频服务器接收视频流请求消息,不作具体限定。
[0065] 需要说明的是,当第一终端101与视频服务器104进行信息交互时,需要通过代理服务器的网络出口来完成。也即是,局域网内的设备与外网中的服务器或者设备,进行信息交互时,需要借助代理服务器103的网络出口来完成,例如,视频服务器104向第一终端101推送视频流时,需要通过代理服务器103的网络连接来传输。
[0066] 另外,第一终端101与视频服务器104支持流媒体传输协议,该流媒体传输协议可以是超文本流媒体传输协议(hypertext transfer protoco l l ive streaming,HLS),也可以是实时流媒体传输协议RTP,也可以是其他流媒体传输协议,本发明实施例对此不进行具体限定。
[0067] 本发明实施例所提供的实施环境中,上述第一终端、第二终端以及代理服务器配置在同一个局域网内,代理服务器作为第一终端与第二终端之间的信息传递媒介,可以向第二终端周期性转发第一终端的视频同步消息,以便第二终端可以与第一终端,同步播放同一个视频画面。
[0068] 以上是对本发明提出的视频投屏方法的实施环境和各个参与设备的简单描述,对于图1中所涉及的终端以及代理服务器的硬件实现,做如下描述:
[0069] 图2是本发明实施例提供的一种第一终端的结构示意图,该第一终端200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的视频编解码器201,一个或一个以上处理器(centra l process ing un its,CPU)202,一个或一个以上的存储器203、一个或一个以上的传感器204以及收发器205,其中,该视频编码解码器201可以对存储器203存储的数字视频,进行解码,该存储器203中存储有至少一条指令,该至少一条指令由该处理器202加载并执行以实现下述各个方法实施例第一终端侧所执行的方法,该传感器204可以获取用户的头部转动信息。该收发器可以为有线或无线网络接口键盘以及输入输出接口等部件,以便进行输入输出,该第一终端还可以包括其他用于实现设备功能的部件,在此不做赘述。当然,该第一终端具有显示部件,例如显示屏等,用以对视频编解码器201所输出的画面进行显示。
[0070] 在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由第一终端中的处理器执行以完成下述实施例中视频投屏方法。例如,该计算机可读存储介质可以是只读存储器镜像(read on ly memory image,ROM)、随机存取存储器(random access memory,RAM)、只读光盘(compact d i sc read-on ly memory,CD-ROM)、磁带、软盘和光数据存储设备等。
[0071] 图3是本发明实施例提供的一种第二终端的结构示意图,该第二终端300可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的视频编解码器301,一个或一个以上处理器302,以及一个或一个以上的存储器303,其中,该视频编码解码器301,可以对存储器303存储的数字视频,进行压缩或者解压缩,该存储器303中存储有至少一条指令,该至少一条指令由该处理器302加载并执行以实现上述各个方法实施例提供的方法。当然,该第二终端还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该第二终端还可以包括其他用于实现设备功能的部件,在此不做赘述。当然,该第一终端具有显示部件,例如显示屏等,用以对视频编解码器301所输出的画面进行显示。
[0072] 在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由该第二终端中的处理器执行以完成下述实施例中视频投屏方法。例如,该计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0073] 图4是本发明实施例提供的一种代理服务器的结构示意图,该服务器400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器401和一个或一个以上的存储器402,其中,该存储器402中存储有至少一条指令,该至少一条指令由该处理器401加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
[0074] 在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由代理服务器中的处理器执行以完成下述实施例中视频投屏方法。例如,该计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0075] 第一终端、代理服务器可以默认支持同一种流媒体传输协议,例如,当第一终端、代理服务器均支持HLS协议时,则代理服务器在接收到视频服务器的视频流时,在解析过程中可以直接采用HLS协议对视频流进行解析和匹配,下面就以第一终端、代理服务器均支持HLS协议为例,对本发明实施例提供的视频投屏方法进行介绍,图5是本发明实施例提供的一种视频投屏方法流程图,该实施例可以基于图1所示的实施环境进行。参见图5,该实施例包括:
[0076] 501、当第一终端接收到视频播放指令时,向代理服务器发送视频流请求消息,该视频流请求消息携带视频URL信息。
[0077] 该视频播放指令可以由用户在该第一终端上对视频的播放操作触发,该播放操作可以是指对游戏的启动操作以及对视频的开始播放操作,本发明实施例对此不做限定。该视频流请求消息用于向视频服务器请求该视频URL信息对应的视频流,并将该视频流返回给第一终端。
[0078] 其中,该视频流请求消息的消息类型字段的取值可以为第一字符串,该第一字符串用于指示该消息为视频流请求消息。需要说明的是,本发明实施例所涉及的“第一”“第二”等定语均不用于对具体字段或是字符串的内容进行区分,而仅仅是区分不同请求的字段或字符串。
[0079] 502、当该代理服务器接收到该视频流请求消息后,向视频服务器发送该视频流请求消息。
[0080] 需要说明的是,在当前阶段,该代理服务器仅用于转发接收的消息,该接收的消息可以是第一终端发送的消息,也可以是视频服务器发送的消息。
[0081] 503、该视频服务器基于该视频流请求消息,向该代理服务器发送视频流。
[0082] 在本发明实施例中,该视频服务器可以根据视频流请求消息中的视频URL信息,获取该视频URL信息对应的视频流。
[0083] 504、当该代理服务器接收到该视频流后,向该第一终端发送该视频流。
[0084] 505、该第一终端根据接收的视频流,基于该视频流进行播放。
[0085] 上述步骤501-505是对第一终端和视频服务器之间的报文交互的描述,在该过程中,第一终端和代理服务器所交互的报文均通过代理服务器进行转发。而在第一终端基于该视频流播放视频时,用户可以在第一终端上发起投屏操作,以便将当前播放视频同步到另一终端上进行播放,实现投屏。
[0086] 506、当该第一终端接收到投屏指令时,向该代理服务器发送投屏请求消息,该投屏请求消息至少携带视频URL信息。
[0087] 当然,该投屏请求消息中还可以携带第二终端的信息,例如第二终端的网络协议地址或第二终端的标识,以便确定投屏的目标设备。
[0088] 其中,该投屏请求消息的消息类型字段的取值可以为第二字符串,该第二字符串用于指示该消息为投屏请求消息,该投屏请求消息用于请求将第一终端正在播放的视频流投屏至第二终端。
[0089] 需要注意的是,本发明实施例以第一终端是VR终端为例进行说明,那么该投屏请求消息还可以携带头部转动信息。该头部转动信息用于表示当前第一终端用户的头部转动情况,以便第二终端根据该头部转动信息,播放与第一终端同步的视频画面,见步骤512与515。当然,该第一终端也可以不必携带头部转动信息。
[0090] 507、该代理服务器在接收到投屏请求消息后,向第二终端发送该投屏请求消息。
[0091] 上述步骤505和步骤507均为代理服务器为局域网内的设备所提供的本地转发功能来实现,本发明实施例对此不做赘述。
[0092] 需要说明的是,在当前阶段,该代理服务器仅用于转发接收的消息,该接收的消息可以是第一终端发送的消息,也可以是视频服务器发送的消息。
[0093] 508、第二终端根据接收的投屏请求消息,向代理服务器发送投屏代理请求消息,该投屏代理请求消息至少携带视频URL信息。
[0094] 对于视频流的流信息来说,该流信息可以包括视频URL信息,当然,该流信息还可以包括第一终端的网络协议地址,以使得代理服务器根据视频URL信息以及第一终端的网络协议地址来进行匹配。
[0095] 其中,该投屏代理请求消息的消息类型字段的取值可以为第三字符串,该第三字符串用于指示该消息为投屏代理请求消息,该投屏代理请求消息用于请求代理服务器将第一终端正在播放的视频流投屏至第二终端。
[0096] 由步骤505至508,可以知道,在本次投屏过程中第一终端不需要向第二终端发送视频流,而是将视频流获取的过程转移到代理服务器上来进行,降低了第一终端的网络压力以及功耗。
[0097] 509、该代理服务器根据该第一终端的网络协议地址以及该第一视频流的视频URL信息,对视频服务器发送的视频流进行匹配,该视频服务器用于提供该第一视频流。
[0098] 由于代理服务器能够接收到视频服务器所发送的视频流,因此,当该代理服务器接收到投屏代理请求消息后,代理服务器可以对所接收到的视频流进行解析,得到该视频流的目标设备的网络协议地址以及视频URL信息,将第一终端的网络协议地址以及该第一视频流的视频URL信息与解析得到的网络协议地址和视频URL信息进行比对,当第一终端的网络协议地址以及该第一视频流的视频URL信息与解析得到的网络协议地址和视频URL信息相同时,则说明匹配到了第一视频流。
[0099] 510、当该代理服务器匹配到该第一视频流时,对该第一视频流进行复制,以获取第二视频流。
[0100] 需要说明的是,当代理服务器开始监控第一终端与视频服务器之间的数据交互时,该代理服务器可以存储视频服务器向第一终端发送的视频流,由于该视频流的视频URL信息与该视频流的数据包存在映射关系,因此,代理服务器可以根据该视频URL信息,获取该视频URL信息指示的视频流。
[0101] 所以该代理服务器对该第一视频流进行复制,也即是,代理服务器根据上述映射关系,对该视频URL信息所指示的视频流进行复制。
[0102] 需要注意的是,该第二视频流为代理服务器复制得到的视频流,本发明实施例所涉及的“第一”“第二”等定语均不用于对视频流的内容进行区分,而仅仅是区分原视频流和复制得到的视频流。
[0103] 511、该代理服务器将该第二视频流发送至该第二终端。
[0104] 其中,该第二视频流用于在该第二终端进行视频播放。
[0105] 上述步骤510和步骤511的复制和转发可以是实时复制实时转发,以保证较小的延时,使得整个投屏过程能够顺畅进行。
[0106] 512、当该第二终端接收到该第二视频流后,基于该第二视频流进行播放。
[0107] 需要注意的是,对于本发明实施例而言,第二终端基于第二视频流播放视频时,还需要考虑头部转动信息,以保证该第二终端播放的视频画面,与第一终端正在播放的视频画面一致。因此,第一终端在发起投屏后,可以将第一终端的视频同步消息发送给第二终端,从而在第二终端开始播放时,可以直接基于该视频同步消息进行同步播放。该视频同步消息包括该第一视频流的流信息、播放进度以及该第一终端的头部转动信息。
[0108] 513、该第一终端向该代理服务器周期性发送视频同步消息,该视频同步消息包括该第一视频流的流信息,该视频同步消息还包括播放进度和该第一终端的头部转动信息中至少一项。
[0109] 其中,该视频同步消息除了流信息以外,还可以包括的信息内容有以下几种:(1)播放进度和该第一终端的头部转动信息,(2)仅包括播放进度,(3)仅包括第一终端的头部转动信息。对于上述任一种信息内容,本发明实施例对此不做限定。
[0110] 由于VR视频在播放过程头部转动消息会随时发生变化,以及第一终端播放视频时可能会出现暂停、快进、快退等情况,所以第一终端可以周期性发送视频同步消息,以便第二终端根据代理服务转发的同步信息中的内容,可以基于接收到的视频流来随时调节播放画面,进而使第二终端播放的视频与第一终端播放的视频同步。为了达到视频同步播放的效果,第一终端向代理服务器发送同步消息的周期可以非常短,该周期可以是ms级。
[0111] 514、当该代理服务器接收到该视频同步消息后,向第二终端发送该视频同步消息。
[0112] 515、第二终端基于该视频同步消息和接收到的视频流进行视频播放。
[0113] 第二终端可以根据视频同步消息中所携带的信息(例如头部转动信息和播放进度)以及接收的视频流,来确定第一终端正在播放的画面,使第二终端同步播放第一终端正在播放的视频,进而实现第二终端与第一终端的同步播放,达到投屏的目的。
[0114] 需要注意的是,当第二终端周期性接收到该的视频同步消息后,第二终端根据接收的该视频同步消息,周期性调整播放视频画面,以保持与第一终端播放的视频画面同步。
[0115] 当第一终端的播放状态切换至快进、快退或者暂停时,可以在视频同步消息携带改变后的播放状态,例如,可以在播放进度字段中携带改变后的播放状态,当第二终端根据该视频同步消息,获知第一终端的播放状态改变时,该第二终端可以再次向代理服务器发送投屏代理请求消息,以便代理服务器可以重新匹配到该第一终端正在播放的视频流,对该匹配到的视频流进行复制,将复制的视频流发送至该第二终端,以便第二终端播放的视频与该第一终端播放的视频同步,也即是,再次进行步骤508至步骤515的过程。
[0116] 516、当该第一终端接收到投屏结束指令时,向代理服务器发送投屏结束请求消息。
[0117] 该投屏结束指令可以由用户的结束操作触发,例如,当用户退出视频播放或者游戏应用时触发,本发明实施例对具体如何触发不做限定。其中,该投屏结束请求消息用于指示第二终端停止投屏。
[0118] 其中,该投屏结束请求消息的消息类型字段的取值可以为第四字符串,该第四字符串用于指示该消息为投屏结束请求消息,该投屏结束请求消息用于请求代理服务器结束投屏。
[0119] 517、该代理服务器接收到该投屏结束请求消息后,向该第二终端发送该投屏结束请求消息。
[0120] 上述步骤516至517为代理服务器为局域网内的设备进行消息转发的过程,在此对该过程不做赘述。
[0121] 518、该第二终端基于该投屏结束请求消息,向该代理服务器发送投屏代理结束请求消息,该投屏代理结束请求消息用于请求该代理服务器结束对该第一视频流的匹配过程。
[0122] 其中,该投屏代理结束请求消息携带该第一终端的网络协议地址。该投屏代理结束请求消息的消息类型字段的取值可以为第五字符串,该第五字符串用于指示该消息为投屏代理结束请求消息,该投屏代理结束请求消息用于请求代理服务器结束投屏。
[0123] 519、该代理服务器接收到该投屏代理结束请求消息,停止进行视频流的匹配。
[0124] 该代理服务器接收到该投屏代理结束请求消息时,可以停止对该视频服务器发送的视频流进行解析,也就不会进行视频流的匹配,从而该代理服务器不再向第二终端发送第二视频流,进而第一终端在第二终端上的投屏结束。
[0125] 本申请实施例提供的投屏方法,通过代理服务器根据第一终端的网络协议地址以及视频URL信息,从已接收到的视频流中匹配到该第一终端正在播放的视频流,并将与第一终端正在播放的视频对应的视频流发送至第二终端,以便第二终端可以播放该视频流指示的视频,达到第一终端与第二终端同步播放的目的,避免了第一终端向第二终端发送视频流,降低了第一终端的网络压力以及功耗,避免了卡顿,从而提高了投屏质量。进一步地,第一终端周期性发送视频同步消息,以便第二终端可以根据视频同步消息来播放第一终端正在播放的视频,进而提高了同步效果。
[0126] 上述实施例为以第一终端、代理服务器均支持HLS协议为例,且代理服务器可以匹配到第一视频流进行介绍的,但是当第一终端、代理服务器均支持HLS协议,代理服务器可能无法匹配到第一视频流,针对此种情况,本发明提供一种视频投屏方法,如图6所示。
[0127] 图6是本发明实施例提供的一种视频投屏方法流程图,该实施例可以基于图1所示的实施环境进行。参见图6,该实施例包括:
[0128] 601、当第一终端接收到视频播放指令时,向代理服务器发送视频流请求消息,该视频流请求消息携带视频URL信息。
[0129] 602、当该代理服务器接收到该视频流请求消息后,向视频服务器发送该视频流请求消息。
[0130] 603、该视频服务器基于该视频流请求消息,向该代理服务器发送视频流。
[0131] 604、当该代理服务器接收到该视频流后,向该第一终端发送该视频流。
[0132] 605、该第一终端根据接收的视频流,基于该视频流进行播放。
[0133] 606、当该第一终端接收到投屏指令时,向该代理服务器发送投屏请求消息,该投屏请求消息至少携带视频URL信息。
[0134] 607、该代理服务器在接收到投屏请求消息后,向第二终端发送该投屏请求消息。
[0135] 608、第二终端根据接收的投屏请求消息,向代理服务器发送投屏代理请求消息,该投屏代理请求消息至少携带视频URL信息。
[0136] 609、该代理服务器根据该第一终端的网络协议地址以及该第一视频流的视频URL信息,对视频服务器发送的视频流进行匹配,该视频服务器用于提供该第一视频流。
[0137] 610、当该代理服务器根据该投屏请求消息,未匹配到第一视频流时,向该视频服务器发送视频流请求消息,该视频流请求消息携带视频URL信息,
[0138] 其中,该视频流请求消息的消息类型字段的取值可以为第三字符串,该第三字符串用于指示该消息为视频流请求消息,该视频流请求消息用于向视频服务器请求视频流。
[0139] 基于步骤609的匹配,该代理服务器无法匹配到第一视频流,由于第一终端采用了HLS协议,因此,第一终端上很可能已经存储有一些视频分片,而由于视频URL信息是不断变化的,因此,基于当前投屏代理请求消息中所携带的视频URL信息,可能无法在代理服务器开始代理后所接收到的数据中找到上述视频分片,因此,需要代理服务器从视频服务器下载对应的视频流数据。
[0140] 需要说明的是,代理服务器还可以在工作过程中,对任一个接收到的视频流均进行存储,以便在接收到投屏代理请求消息时能够基于预先存储的数据来进行匹配,当然,可以每次仅存储预设时长内的视频流,例如,仅存储近5秒内所接收的视频流,采用先进先出的原则,将5分钟以外的视频流进行删除。
[0141] 611、该视频服务器接收该视频流请求消息。
[0142] 612、当该视屏服务器接收到该视频流请求消息后,向该代理服务器发送第三视频流。
[0143] 其中,该第三视频流为视频服务器基于该代理服务器发送的视频URL信息所获取的视频流。并且,该第三视频流为第一终端正在播放的视频流。
[0144] 613、当该代理服务器接收到该第三视频流后,将该第三视频流发送至该第二终端,该第三视频流用于在该第二终端进行视频播放。
[0145] 需要说明的是,该第三视频流可以基于视频URL信息与视频流数据包之间的映射关系,被存储在该代理服务器中。
[0146] 步骤609至613为代理服务器基于存储的视频URL信息无法匹配到第一视频流所执行的步骤,通过这些步骤,使得代理服务器可以获取到第一终端已经下载的部分视频分片,避免了由于数据缺失而造成的投屏不同步现象,提高了投屏效果与投屏质量。
[0147] 614、当该第二终端接收到该第三视频流后,基于该第三视频流进行播放。
[0148] 615、该第一终端向该代理服务器周期性发送视频同步消息,该视频同步消息包括该第一视频流的流信息,该视频同步消息还包括播放进度和该第一终端的头部转动信息中的任一项。
[0149] 616、当该代理服务器接收到该视频同步消息后,向第二终端发送该视频同步消息。
[0150] 617、第二终端基于该视频同步消息和接收到的视频流进行视频播放。
[0151] 618、当该第一终端接收到投屏结束指令时,向代理服务器发送投屏结束请求消息。
[0152] 619、该代理服务器接收到该投屏结束请求消息后,向该第二终端发送该投屏结束请求消息。
[0153] 620、该第二终端基于该投屏结束请求消息,向该代理服务器发送投屏代理结束请求消息,该投屏代理结束请求消息用于请求该代理服务器结束对该第一视频流的匹配过程。
[0154] 621、该代理服务器接收到该投屏代理结束请求消息,停止进行视频流的匹配。
[0155] 本申请实施例提供的投屏方法,通过代理服务器可以基于视频URL信息以及视频服务器的网络协议地址,向视频服务器请求第一终端正在播放的视频流,并将基于该请求得到的视频流从发送至第二终端,以便第二终端可以播放该视频流指示的视频,达到第一终端与第二终端同步播放的目的,可以避免代理服务器因为无法匹配到第一终端正在播放的视频流,而造成在投屏不同步现象,并且避免了第一终端向第二终端发送视频流,降低了第一终端的网络压力以及功耗,避免了卡顿,从而提高了投屏质量。进一步地,第一终端周期性发送视频同步消息,以便第二终端可以根据视频同步消息来播放第一终端正在播放的视频,进而提高了同步效果。
[0156] 以上实施例为局域网内的第一终端、代理服务器默认支持HLS协议为例进行说明,而在一些实施例中,例如,当第一终端、代理服务器默认均支持RTP协议,下面就以第一终端、代理服务器均支持RTP协议为例,对本发明实施例提供的视频投屏方法进行介绍,与图5所示实施例的不同之处主要在于,在交互的消息中所携带的用于指示第一终端正在播放的视频的信息为五元组,图7是本发明实施例提供的一种视频投屏方法流程图,该实施例可以基于图1所示的实施环境进行。参见图7,该实施例包括:
[0157] 701、当第一终端接收到视频播放指令时,向代理服务器发送视频流请求消息,该视频流请求消息携带视频URL信息。
[0158] 702、当该代理服务器接收到该视频流请求消息后,向视频服务器发送该视频流请求消息。
[0159] 703、视频服务器基于该视频流请求消息,向该代理服务器发送视频流。
[0160] 704、当该代理服务器接收到该视频流后,向该第一终端发送该视频流。
[0161] 705、该第一终端根据接收的视频流,基于该视频流进行播放。
[0162] 706、当该第一终端接收到投屏指令时,向该代理服务器发送投屏请求消息,该投屏请求消息携带该第一视频流的五元组。
[0163] 707、该代理服务器在接收到投屏请求消息后,向第二终端发送该投屏请求消息。
[0164] 708、该第二终端接收该投屏请求。
[0165] 709、该第二终端根据接收的投屏请求消息,向代理服务器发送投屏代理请求消息,该投屏代理请求消息携带该第一视频流的五元组。
[0166] 710、该代理服务器接收该投屏代理请求。
[0167] 711、该代理服务器根据该第一视频流的五元组,对视频服务器发送的数据流进行匹配,该视频服务器用于提供该第一视频流。
[0168] 由于代理服务器能够接收到视频服务器所发送的视频流,因此,当该代理服务器接收到投屏代理请求消息后,代理服务器可以对所接收到的视频流进行解析,得到该视频流的五元组,将投屏代理请求消息中的该第一视频流的五元组与解析得到的五元组进行比对,当相同时,则说明匹配到了第一视频流。
[0169] 712、当该代理服务器匹配到该第一视频流时,对该第一视频流进行复制,以获取该第二视频流。
[0170] 713、该代理服务器将该第二视频流发送至该第二终端。
[0171] 714、该第二终端接收该第二视频流。
[0172] 715、当该第二终端接收到该第二视频流后,基于该第二视频流进行播放。
[0173] 716、该第一终端向该代理服务器周期性发送视频同步消息,该视频同步消息包括该第一视频流的流信息,该视频同步消息还包括播放进度和该第一终端的头部转动信息中的任一项。
[0174] 717、当该代理服务器接收到该视频同步消息后,向第二终端发送该视频同步消息。
[0175] 718、该第二终端接收该视频同步消息。
[0176] 719、第二终端基于该视频同步消息和接收到的视频流进行视频播放。
[0177] 720、当该第一终端接收到投屏结束指令时,向代理服务器发送投屏结束请求消息。
[0178] 721、当该代理服务器接收到该投屏结束请求消息后,向该第二终端发送该投屏结束请求消息。
[0179] 722、该第二终端接收该投屏结束请求消息。
[0180] 723、该第二终端基于该投屏结束请求消息,向该代理服务器发送投屏代理结束请求消息,该投屏代理结束请求消息用于请求该代理服务器结束对该第一视频流的匹配过程。
[0181] 724,、该代理服务器接收该投屏结束请求消息。
[0182] 725、当该代理服务器接收到该投屏代理结束请求消息后,停止进行视频流的匹配。
[0183] 上述步骤701至725与步骤601至621同理,其不同之处主要在于在交互的消息中所携带的用于指示第一终端正在播放的视频的信息为五元组,对其他步骤不做限定。
[0184] 本申请实施例提供的投屏方法,通过代理服务器根据五元组,从已接收到的视频流中匹配到该第一终端正在播放的视频流,并将与第一终端正在播放的视频对应的视频流发送至第二终端,以便第二终端可以播放该视频流指示的视频,达到第一终端与第二终端同步播放的目的,避免了第一终端向第二终端发送视频流,降低了第一终端的网络压力以及功耗,避免了卡顿,从而提高了投屏质量。进一步地,第一终端周期性发送视频同步消息,以便第二终端可以根据视频同步消息来播放第一终端正在播放的视频,进而提高了同步效果。
[0185] 以上实施例为局域网内的第一终端、代理服务器默认支持HLS协议或RTP协议为例进行说明,而在一些实施例中,第一终端可能既支持HLS协议又支持RTP协议,而在与视频服务器进行数据交互时,可能采取了上述任一种协议,因此,代理服务器可以通过第一终端所发送的消息对所支持的协议进行识别,从而实现对视频流的匹配,图8是本发明实施例提供的一种视频投屏方法流程图,该实施例可以基于图1所示的实施环境进行。参见图8,该实施例包括:
[0186] 801、当第一终端接收到视频播放指令时,向代理服务器发送视频流请求消息,该视频流请求消息携带视频URL信息。
[0187] 802、当该代理服务器接收到该视频流请求消息后,向视频服务器发送该视频流请求消息。
[0188] 803、视频服务器基于该视频流请求消息,向该代理服务器发送视频流。
[0189] 804、当该代理服务器接收到该视频流后,向该第一终端发送该视频流。
[0190] 805、该第一终端根据接收的视频流,基于该视频流进行播放。
[0191] 806、当该第一终端接收到投屏指令时,向该代理服务器发送投屏请求消息,该投屏请求消息至少携带该第一终端正在播放的第一视频流的流信息以及协议类型字段,该协议类型字段用于指示该第一终端采用的流媒体传输协议。
[0192] 第一终端可以根据自身支持的流媒体传输协议,确定协议类型字段的取值,该协议类型字段的不同取值对应于不同的流媒体传输协议。
[0193] 例如,当该协议类型字段的取值为0时,说明该第一终端采用的流媒体传输协议为HLS协议,当该协议类型字段的取值为1时,说明该第一终端采用的流媒体传输协议为RTP协议。当然,该协议类型字段也可以是采用其他数值或字符串等形式进行表示,本发明实施例对此不进行具体限定。
[0194] 807、该代理服务器在接收到投屏请求消息后,向第二终端发送该投屏请求消息。
[0195] 808、第二终端根据接收的投屏请求消息,向代理服务器发送投屏代理请求消息,该投屏代理请求消息至少携带该第一终端正在播放的第一视频流的流信息以及协议类型字段。
[0196] 809、该代理服务器根据该投屏代理请求消息中的协议类型字段,确定目标流媒体传输协议,该目标流媒体传输协议为该第一终端所采用的流媒体传输协议,该协议类型字段的不同取值对应于不同的流媒体传输协议。
[0197] 由步骤806可知,该协议类型字段可以指示该第一终端所支持的流媒体传输协议。例如,当该协议类型字段为0时,该第一终端采用的流媒体传输协议为HLS协议。当该协议类型字段为1时,该第一终端采用的流媒体传输协议为RTP协议。
[0198] 810、该代理服务器基于该目标流媒体传输协议,对视频服务器发送的视频流进行匹配,该视频服务器用于提供该第一视频流。
[0199] 需要说明的是,该步骤810中,当确定目标流媒体传输协议时,可以从该投屏代理请求消息中提取该目标流媒体传输协议对应的流信息,并采用该目标流媒体传输协议,对接收到的视频流进行解析,并将解析得到的流信息与提取到的流信息进行比对,以进行上述匹配过程。
[0200] 例如,当该代理服务器接收到投屏代理请求消息后,当该协议类型字段为0时,说明该第一终端采用的流媒体传输协议为HLS协议,该第一视频流的流信息为第一终端的网络协议地址以及视频URL信息,代理服务器可以对所接收到的视频流进行解析,得到该视频流的目标设备的网络协议地址以及视频URL信息,将第一终端的网络协议地址以及该第一视频流的视频URL信息与解析得到的网络协议地址和视频URL信息进行比对,当第一终端的网络协议地址以及该第一视频流的视频URL信息与解析得到的网络协议地址和视频URL信息相同时,则说明匹配到了第一视频流。
[0201] 当该代理服务器接收到投屏代理请求消息后,当该协议类型字段为1时,说明该第一终端采用的流媒体传输协议为RTP协议,即表示该第一视频流的流信息为五元组,代理服务器可以对所接收到的视频流进行解析,得到该视频流的五元组,将投屏代理请求消息中的五元组与解析得到的五元组进行比对,当相同时,则说明匹配到了第一视频流。
[0202] 811、当该代理服务器匹配到该第一视频流时,对该第一视频流进行复制,以获取该第二视频流。
[0203] 812、该代理服务器将该第二视频流发送至该第二终端。
[0204] 813、当该第二终端接收到该第二视频流后,基于该第二视频流进行播放。
[0205] 814、该第一终端向该代理服务器周期性发送视频同步消息,该视频同步消息包括该第一视频流的流信息,该视频同步消息还包括播放进度和该第一终端的头部转动信息中的任一项。
[0206] 815、当该代理服务器接收到该视频同步消息后,向第二终端周期性发送该视频同步消息。
[0207] 816、第二终端基于该视频同步消息和接收到的视频流进行视频播放。
[0208] 817、当该第一终端接收到投屏结束指令时,向代理服务器发送投屏结束请求消息。
[0209] 818、该代理服务器接收到该投屏结束请求消息后,向该第二终端发送该投屏结束请求消息。
[0210] 819、该第二终端基于该投屏结束请求消息,向该代理服务器发送投屏代理结束请求消息,该投屏代理结束请求消息用于请求该代理服务器结束对该第一视频流的匹配过程。
[0211] 820、当该代理服务器接收到该投屏代理结束请求消息后,停止进行视频流的匹配。
[0212] 需要注意的是,当该第一终端采用的流媒体传输协议为HLS协议时,该代理服务器在开始代理初期,因为未下载第一终端已经存储的视频分片,可能无法匹配到该第一视频流。为了避免了由于数据缺失而造成的投屏不同步现象,需要进行步骤610至612,以便第二终端可以播放第三视频流。
[0213] 本申请实施例提供的投屏方法,通过代理服务器根据第一终端的网络协议地址以及视频流的信息,从已接收到的视频流中匹配到该第一终端正在播放的视频流,并将与第一终端正在播放的视频对应的视频流发送至第二终端,以便第二终端可以播放该视频流指示的视频,达到第一终端与第二终端同步播放的目的,避免了第一终端向第二终端发送视频流,降低了第一终端的网络压力以及功耗,避免了卡顿,从而提高了投屏质量。进一步地,第一终端周期性发送视频同步消息,以便第二终端可以根据视频同步消息来播放第一终端正在播放的视频,进而提高了同步效果。另外,代理服务器可以根据投屏代理请求信息中的协议类型字段,采用不同的解析策略,来实现针对不同流媒体传输协议视频的自适应、差异化处理。
[0214] 图9是本发明实施例提供的一种视频投屏装置的结构示意图,该装置包括:第一接收模块901、匹配模块902、获取模块903以及第一发送模块904
[0215] 第一接收模块901,用于执行上述步骤710;
[0216] 匹配模块902,用于执行上述步骤711;
[0217] 获取模块903,用于执行上述步骤712;
[0218] 第一发送模块904,用于执行上述步骤713。
[0219] 可选地,该第一视频流为RTP流,该第一视频流的流信息包括五元组,见步骤706。
[0220] 可选地,该第一视频流的流信息包括视频URL信息,见步骤606。
[0221] 可选地,该装置还包括:
[0222] 第二发送模块,用于执行上述步骤610;
[0223] 第二接收模块,用于执行上述步骤611;
[0224] 第三发送模块,用于执行上述步骤612。
[0225] 可选地,该第一视频流的流信息还包括该第一终端的网络协议地址。
[0226] 可选地,该装置还包括:
[0227] 确定模块,用于执行上述步骤809;
[0228] 执行模块,用于执行上述步骤810。
[0229] 可选地,该装置还包括:
[0230] 第三接收模块,用于执行上述步骤717。
[0231] 可选地,该装置还包括:
[0232] 第四接收模块,用于执行上述步骤724;
[0233] 停止模块,用于执行上述步骤725。
[0234] 图10是本发明实施例提供的一种视频投屏装置的结构示意图,该装置包括:第一接收模块1001、第一发送模块1002、第二接收模块1003、第三接收模块1004以及播放模块1005
[0235] 第一接收模块1001,用于执行上述步骤708;
[0236] 第一发送模块1002,用于执行上述步骤709;
[0237] 第二接收模块1003,用于执行上述步骤714;
[0238] 第三接收模块1004,用于执行上述步骤718;
[0239] 播放模块1005,用于执行上述步骤719。
[0240] 可选地,该第一视频流为RTP流,,该第一视频流的流信息包括五元组,见步骤706。
[0241] 可选地,该第一视频流的流信息包括视频URL信息,见步骤606。
[0242] 可选地,该第一视频流的流信息还包括该第一终端的网络协议地址。
[0243] 可选地,该投屏代理请求消息的协议类型字段用于指示该第一终端所采用的流媒体传输协议,见步骤809。
[0244] 可选地,该装置还包括:
[0245] 第四接收模块,用于执行上述步骤722;
[0246] 第二发送模块,用于执行上述步骤723。
[0247] 上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
[0248] 需要说明的是:上述实施例提供的视频投屏装置在对视频进行投屏时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的视频投屏的装置与视频投屏的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0249] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈