一种视频流分发方法、装置、系统、设备和介质与流程

文档序号:33645332发布日期:2023-03-29 03:32阅读:44来源:国知局
一种视频流分发方法、装置、系统、设备和介质与流程

1.本发明涉及流媒体领域,特别涉及一种视频流分发方法、装置、系统、设备和介质。


背景技术:

2.流媒体技术的应用一直是互联网/局域网上传播多媒体信息的主要方式。传统流媒体传输系统将大量的媒体数据存放在一组集中管理的流媒体服务器上,由流媒体服务器负责响应所有客户端的播放请求。在这种客户端/服务器模式下,流媒体服务器承担全部工作,因而对流媒体服务器的带宽和处理能力要求相当高,而且当播放用户进一步增加时,视频服务器最终将达到其能力极限,成为整个系统的瓶颈,并导致流媒体服务质量的下降。
3.对于使用专线的局域网(又称私网、内网)来说,由于其带宽资源极为有限,该问题更为突出。特别地,在局域网跨地市构建时,不仅流媒体服务器会成为整个系统的瓶颈。因此,如何缓解流媒体服务器的分发压力、降低网络拥塞、提高播放质量,成为当前局域网流媒体传输系统面临的关键问题。


技术实现要素:

4.鉴于上述问题,本发明实施例提供了一种视频流分发方法、装置、系统、设备和介质,以便克服上述问题或者至少部分地解决上述问题。
5.本发明实施例的第一方面,公开了一种视频流分发方法,所述方法应用于流媒体服务器,所述流媒体服务器与第一客户端以及多个其他客户端通过局域网通信连接,所述方法包括:
6.接收来自所述第一客户端的视频流播放请求;
7.将所述多个其他客户端中正在播放被请求的视频流的客户端确定为分发客户端;
8.向所述分发客户端发送分发指令,所述分发指令用于指示所述分发客户端向所述第一客户端发送被请求的视频流。
9.可选地,将正在播放被请求的视频流的客户端确定为分发客户端,包括:
10.根据正在播放所述视频流的客户端的以下任一参数或几个参数的组合,确定出分发客户端:
11.播放时延、丢包率、上传带宽占用率、cpu占用率、内存占用率。
12.可选地,将正在播放被请求的视频流的客户端确定为分发客户端,包括:
13.根据评分函数对正在播放被请求的视频流的客户端进行评分;
14.将评分最高的客户端确定为分发客户端;
15.其中,所述评分函数为:
16.评分=(a/播放时延)*(1-丢包率)*(1/((b*上传带宽占用率)+(c*cpu占用率)+(d*内存占用率)))
17.其中,a、b、c、d分别为客户端的播放时延、上传带宽占用率、cpu占用率、内存占用率各自的影响因子。
18.可选地,所述流媒体服务器对以下参数进行检测,在任一参数或几个参数大于相应的设定阈值的情况下,执行步骤:将正在播放所述视频流的客户端确定为分发客户端;
19.其中,所述参数包括:请求数量、上传带宽占用率、cpu占用率、内存占用率。
20.可选地,所述视频流分发方法还包括:
21.接收来自第二客户端的视频流回看请求,向所述第二客户端发送对应的视频流。
22.可选地,所述视频流分发方法还包括:
23.所述流媒体服务器接收监控摄像头采集的视频数据,以生成所述视频流。
24.本发明实施例的第二方面,公开了一种视频流接收方法,所述方法应用于第一客户端,所述第一客户端通过局域网与流媒体服务器以及多个其他客户端通信连接,包括:
25.向所述流媒体服务器发送视频流播放请求;
26.接收所述流媒体服务器的视频流切换信息,所述视频流切换信息表征被请求的视频流的来源切换为分发客户端;
27.接收所述分发客户端发送的视频流;
28.其中,所述分发客户端是:由所述流媒体服务器从所述多个其他客户端中确定出的,正在播放被请求的视频流的客户端。
29.本发明实施例的第三方面,公开了一种视频流分发方法,所述方法应用于分发客户端,所述分发客户端、第一客户端以及流媒体服务器通过局域网通信连接,所述方法包括:
30.接收来自所述流媒体服务器的分发指令,所述分发指令用于指示所述分发客户端向所述第一客户端发送被请求的视频流;
31.向所述第一客户端分发所述被请求的视频流;
32.其中,所述分发客户端是:由所述流媒体服务器从正在播放被请求的视频流的客户端确定出的。
33.可选地,向所述第一客户端分发所述被请求的视频流,包括:
34.调用自身配置的hls组件,升级为hls服务器,向所述第一客户端发送被请求的视频流。
35.本发明实施例的第四方面,公开了一种视频流分发系统,所述系统包括流媒体服务器、第一客户端和分发客户端,所述流媒体服务器、所述第一客户端、所述分发客户端通过局域网通信连接;其中,
36.所述第一客户端用于向所述流媒体服务器发送视频流播放请求;
37.所述流媒体服务器用于将正在播放被请求的视频流的客户端确定为所述分发客户端,并指示所述分发客户端向所述第一客户端发送被请求的视频流;
38.所述分发客户端用于接收来自所述流媒体服务器的分发指令,向所述第一客户端发送被请求的视频流,所述分发指令用于指示所述分发客户端向所述第一客户端发送被请求的视频流。
39.本发明实施例的第五方面,公开了一种视频流分发装置,所述装置配置于流媒体服务器,所述流媒体服务器与第一客户端以及多个其他客户端通过局域网通信连接,所述装置包括:
40.播放请求接收模块,配置为接收来自第一客户端的视频流播放请求;
41.确定模块,配置为将所述多个其他客户端中正在播放被请求的视频流的客户端确定为分发客户端;
42.指令发送模块,配置为向所述分发客户端发送分发指令,所述分发指令用于指示所述分发客户端向所述第一客户端发送被请求的视频流。
43.可选地,所述确定模块,包括:
44.参数确定子模块,配置为根据正在播放被请求的视频流的客户端的以下任一参数或几个参数的组合,确定出分发客户端:
45.播放时延、丢包率、上传带宽占用率、cpu占用率、内存占用率。
46.可选地,所述确定模块,还包括:
47.函数确定子模块,配置为根据评分函数对正在播放被请求的视频流的客户端进行评分;
48.评分确定子模块,配置为将评分最高的客户端确定为分发客户端;
49.其中,所述评分函数为:
50.评分=(a/播放时延)*(1-丢包率)*(1/((b*上传带宽占用率)+(c*cpu占用率)+(d*内存占用率)))
51.其中,a、b、c、d分别为客户端的播放时延、上传带宽占用率、cpu占用率、内存占用率各自的影响因子。
52.可选地,所述装置,还包括:
53.检测模块,配置为对以下参数进行检测,在任一参数或几个参数大于相应的设定阈值的情况下,执行所述确定模块的功能;
54.其中,所述参数包括:请求数量、上传带宽占用率、cpu占用率、内存占用率。
55.可选地,所述装置还包括:
56.接收模块,配置为接收来自第二客户端的视频流回看请求,向所述第二客户端发送对应的视频流。
57.可选地,所述装置还包括:
58.视频数据接收模块,配置为接收监控摄像头采集的视频数据,以生成所述视频流。
59.本发明实施例的第六方面,公开了一种视频流接收装置,所述装置配置于第一客户端,所述第一客户端通过局域网与流媒体服务器以及多个其他客户端通信连接,所述装置包括:
60.播放请求发送模块,配置为向所述流媒体服务器发送视频流播放请求;
61.切换信息接收模块,配置为接收所述流媒体服务器的视频流切换信息,所述视频流切换信息表征被请求的视频流的来源切换为分发客户端;
62.视频流接收模块,配置为接收所述分发客户端发送的视频流;
63.其中,所述分发客户端是:由所述流媒体服务器从所述多个其他客户端中确定出的,正在播放被请求的视频流的客户端。
64.本发明实施例的第七方面,公开了一种视频流分发装置,所述装置配置于分发客户端,所述分发客户端、第一客户端以及流媒体服务器通过局域网通信连接,所述装置包括:
65.指令接收模块,配置为接收来自所述流媒体服务器的分发指令,所述分发指令用
于指示所述分发客户端向所述第一客户端发送被请求的视频流;
66.视频流发送模块,配置为向所述第一客户端分发所述被请求的视频流;
67.其中,所述分发客户端是:由所述流媒体服务器从正在播放被请求的视频流的客户端确定出的。
68.可选地,所述视频流发送模块,包括:
69.调用子模块,配置为调用自身配置的hls组件,使得所述分发客户端升级为hls服务器,向所述第一客户端发送被请求的视频流。
70.本发明实施例的第八方面,公开了一种电子设备,包括处理器,存储器,其中,
71.所述存储器,用于存储所述处理器可执行指令的存储器;
72.所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本实施例第一方面所公开的流媒体服务器的所述视频流分发方法中的步骤、或本实施例第二方面所公开的第一客户端的所述视频流接收方法中的步骤或本实施例第三方面所公开的分发客户端的所述视频流分发方法中的步骤。
73.本发明实施例的第九方面,公开了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于被处理器执行时,以实现本实施例第一方面所公开的流媒体服务器的所述视频流分发方法中的步骤、或本实施例第二方面所公开的第一客户端的所述视频流接收方法中的步骤或本实施例第三方面所公开的分发客户端的所述视频流分发方法中的步骤。
74.本发明实施例包括以下优点:
75.在本发明实施例中,为了缓解局域网中流媒体服务器的分发压力,当接收来自客户端的视频流播放请求时,流媒体服务器并不直接分发视频流,而是将局域网中正在播放被请求的视频流的客户端确定为分发客户端,由分发客户端发送被请求的视频流,从而利用分发客户端的上行带宽分担流媒体服务器的带宽压力,缓解了网络拥堵,提高了视频流的播放质量。
附图说明
76.为了更清楚地说明本发明的技术方案,下面将对本发明的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
77.图1是现有技术的流媒体服务器和客户端的架构图;
78.图2是本发明实施例提供的流媒体服务器和客户端的架构图;
79.图3是本发明实施例提供的视频流分发方法步骤流程图一;
80.图4是本发明实施例提供的视频流分发方法步骤流程图二;
81.图5是本发明实施例提供的视频流分发方法步骤流程图三;
82.图6是本发明实施例提供的视频流分发系统示意图;
83.图7是本发明实施例提供的视频流分发装置示意图一;
84.图8是本发明实施例提供的视频流接收装置示意图;
85.图9是本发明实施例提供的视频流分发装置示意图二;
86.图10是本发明实施例提供的视频流分发方法步骤流程图四;
87.图11是本发明实施例提供的电子设备的结构示意图。
具体实施方式
88.下面将结合本中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有创造性劳动前提下所获得的所有其他实施例,都属于本实施例保护的范围。
89.首先结合图1、2说明本发明的基本构思。
90.图1是现有技术的流媒体服务器和客户端的架构图。
91.如图1所示,现有技术中,由流媒体服务器1与客户端a、客户端b、客户端c,
……
构成私网传输系统。在该系统中,流媒体服务器接收所有视频流来源的数据,并且向所有客户端分发流媒体数据。这种架构使得视频流的分发压力全部集中在流媒体服务器,流媒体服务器的上行宽带负载过大,使其成为传输系统的瓶颈。
92.为了解决上述问题,本发明人提出了如下解决方案:代替现有技术中流媒体服务器作为单一的视频流分发节点,还可以选取合适的客户端来分发视频流。这种分发方案能够显著减轻流媒体服务器的分发压力。
93.下面结合图2介绍本发明方案。
94.图2是本发明的流媒体服务器和客户端的架构图。流媒体服务器1与客户端a、客户端b、客户端c、客户端d、客户端e、客户端f,
……
通过局域网通信连接,构成私网传输系统,其中,流媒体服务器接收所有视频流来源的数据。视频流可以进行多次分发,首次视频流分发由流媒体服务器直接分发,如图2所示,流媒体服务器直接分发给客户端a、客户端c、客户端f。当新增客户端,例如客户端b、客户端d、客户端e请求视频流时,根据选取方法(稍后介绍),选取合适的客户端分发视频流。如图2所示,对于客户端b的请求,选取客户端a获得视频流;对于客户端e的请求,选取客户端c获得视频流。此外,可以存在更下一级的分发,如图2所示,对于客户端d的请求,选取客户端b获得视频流。
95.由图2可见,本发明采用分发客户端发送视频流,一方面,视频流在局域网的不同客户端之间传输,不占用跨地市线路的中心带宽。再一方面,即使同时存在跨地市获取视频流的情况,由于部分视频流通过客户端分发,因此也能利用客户端的上行宽带分担流媒体服务器的上行宽带压力,大大降低了对流媒体服务带宽、性能等的要求。
96.示例性方法
97.本发明实施例提供了一种视频流分发方法,如图3所示,图3是本发明实施例提供的视频流分发方法步骤流程图一。该视频流分发方法应用于图2架构下的流媒体服务器,所述流媒体服务器与第一客户端以及多个其他客户端通过局域网通信连接,所述方法包括如下步骤s11至步骤s13:
98.步骤s11:接收来自所述第一客户端的视频流播放请求。
99.在本实施例中,第一客户端为图2中的客户端,也被称为请求客户端。
100.步骤s12:将所述多个其他客户端中正在播放被请求的视频流的客户端确定为分发客户端。
101.在本实施例中,分发客户端同请求客户端一样,也是来自图2中的客户端。具体的,分发客户端是由图2中的流媒体服务器从正在播放被请求的视频流的客户端中确定出的,用于向请求客户端分发视频流的客户端。
102.分发客户端的确定/选择非常重要。期望的分发客户端是,能够对分发指令做出快速响应,并且能够迅速、流畅地向请求客户端发送所请求的视频流的客户端。
103.在一种可选的实施例中,考虑正在播放被请求的视频流的客户端的一个或多个参数,例如:播放时延、丢包率、上传带宽占用率、cpu占用率、内存占用率,来选择合适的客户端作为分发客户端。其中,播放时延越短,越能快速响应和传送流媒体服务器的指令和信息;丢包率决定了数据的完整性;上传带宽占用率反映了客户端的负载度;cpu占用率、内存占用率则代表了客户端的计算能力,其同样影响数据的传输速度。
104.在一种可选的实施例中,根据评分函数确定分发客户端。具体的,通过评分函数对正在播放被请求的视频流的客户端进行评分,将评分最高的客户端确定为分发客户端。
105.其中,评分函数为:
106.评分=(a/播放时延)*(1-丢包率)*(1/((b*上传带宽占用率)+(c*cpu占用率)+(d*内存占用率)))
107.其中,a、b、c、d分别为客户端的播放时延、上传带宽占用率、cpu占用率、内存占用率各自的影响因子。
108.上述影响因子可以根据经验或通过测试进行配置。其中,上传带宽的大小是影响视频播放流畅度最重要的原因之一,因此通常配置为:b》c,b》d。
109.上述评分函数综合考虑了客户端的计算能力、稳定性和负载度等,因此能够对客户端的性能做出准确评价。通过评分函数建立评分机制,可以选择优质的客户端作为分发客户端,从而更准确、有效地获取实时播放的视频流。
110.在一种可选的实施例中,可以仅在一定的条件下启动分发客户端的确定。例如图2所示的局域网传输系统,在运行初期,仅有少量客户端向流媒体服务器请求视频流播放,此时可以采用流媒体服务器直接对客户端进行视频流的分发;当有大量客户端同时向服务器发送请求时,流媒体服务器面临较大的分发压力,则利用分发客户端进行视频流的分发。
111.在一种可选的实施例中,通过对流媒体服务器的一些参数进行检测以确定分发压力是否过大。这些参数可以是:请求数量、上传带宽占用率、cpu占用率、内存占用率等。其中任意一个或几个参数大于相应设定阈值的情况下,表示分发压力过大,启动分发客户端的确定。
112.步骤s13、向所述分发客户端发送分发指令,所述分发指令用于指示所述分发客户端向所述第一客户端发送被请求的视频流。
113.在本实施例中,流媒体服务器接收的是来自客户端的视频流播放请求,流媒体服务器可以确定分发客户端,由分发客户端进行视频流的分发。实际上,在流媒体传输系统中,对视频流的请求包括两种:视频流实时播放请求和视频流回看请求。在一种可选的实施例中,上述视频流分发方法还可以包括请求视频流回看的分发步骤。当收到来自客户端的视频流回看请求,不采用分发客户端发送视频流,而是依然由流媒体服务器分发。
114.本发明可以应用于很多场景,例如应用于视频监控。在此场景下,流媒体服务器接收监控摄像头采集的视频数据,生成请求播放或请求回看的视频流。
115.下面借助图10更详细地描述本发明。如图10所示,图10是本发明实施例提供的视频流分发方法的流程图,包括如下步骤s1至s9:
116.步骤s1:获取视频流编号。
117.在本实施例中,流媒体服务器获取视频流后需要对视频流进行处理:为视频流分配唯一的视频流编号;以时间顺序为视频流的帧分配帧编号,并保存帧原始时间;将视频流分割成连续的、时长很短的mpeg-ts格式的文件,即ts媒体文件(通常一个ts媒体文件大概是10s),同时生成一个对应的媒体列表文件,即m3u8文件。m3u8文件是以utf-8编码的m3u文件,其本身不能播放,只是存放了一些ts文件的配置信息和相关路径。当视频播放时,解析m3u8文件,从而找到对应的ts文件来播放。
118.步骤s2:接收播放请求。
119.在本实施例中,流媒体服务器接收来自第一客户端播放指定的视频流的请求。例如请求中包含视频流信息:视频流名称、编号等。
120.在一种可选的实施例中,流媒体服务器可以生成直播视频流的链接信息,该链接信息包含视频流编号。流媒体服务器将该链接信息发送至客户端,以使客户端通过链接信息播放视频流。当用户选择链接信息时,可以视为触发视频流的播放请求。
121.步骤s3:判断是否存在正在播放该视频流的客户端。
122.在本实施例中,流媒体服务器接收来自第一客户端的播放请求后,根据请求中的视频流编号信息,判断是否已有客户端正在播放所请求的视频流。
123.如果没有满足步骤s3要求的客户端,则进入步骤s9:流媒体服务器向请求客户端推送指定编号的视频流。
124.如果在步骤s3中流媒体服务器判断已有客户端正在播放所请求的视频流,则进入步骤s4。
125.步骤s4:判断播放时延是否小于5秒。
126.在本实施例中,流媒体服务器继续判断正在播放视频流的客户端的播放时延是否小于5秒。其中,播放时延=接收帧时间-帧原始时间,接收帧时间为正在播放视频流的客户端接收某一帧的时间,帧原始时间为在步骤s1中保存的时间,即流媒体服务器接收视频流中该帧的时间。在其他可选的实施例中,播放时延阈值可以设置为其他数值。
127.如果没有满足步骤s4要求的客户端,则进入步骤s9:流媒体服务器向请求客户端推送指定编号的视频流。
128.如果存在满足步骤s4要求的客户端,则进入步骤s5。
129.步骤s5:将所有满足步骤s4要求的客户端定义为备选客户端。
130.在本实施例中,备选客户端是满足步骤s4的客户端,即正在播放视频流的客户端中播放时延小于5秒的客户端。在一种可选的实施例中,备选客户端是满足步骤s3的客户端,即正在播放视频流的客户端。
131.步骤s6:计算备选客户端评分。
132.在本实施例中,根据前文提及的评分函数对备选客户端进行评分:
133.评分=(a/播放时延)*(1-丢包率)*(1/((b*上传带宽占用率)+(c*cpu占用率)+(d*内存占用率)))
134.其中a、b、c、d分别为客户端的播放时延、上传带宽占用率、cpu占用率、内存占用率
各自的影响因子。上述影响因子可以根据经验或通过测试进行配置。
135.在一种可选的实施例中,评分函数设置为:
136.评分函数=(10/(接收帧时间-帧原始时间))*(1-丢包率)*(1/((5*上传带宽占用率)+(3*cpu占用率)+(2*内存占用率)))。
137.步骤s7:确定分发客户端。
138.在本实施例中,选择评分最高的客户端作为分发客户端。
139.步骤s8:从分发客户端发送所请求的视频流。
140.在本实施例中,当流媒体服务器确定了分发客户端后,将向分发客户端发送分发指令,指示分发客户端向请求客户端发送所请求的视频流。分发客户端在收到分发指令后,调用自身配置的hls组件,使得分发客户端升级为hls服务器,从而向请求客户端发送所请求的视频流。具体的,分发客户端的缓存最多存储60秒的ts文件和m3u8文件。分发客户端升级为hls服务器后,将最新的ts文件和m3u8文件发送到请求客户端,待分发客户端中的ts文件和m3u8文件更新后,分发客户端继续将其发送到请求客户端。直到收到完整的ts文件和m3u8文件,请求客户端对其进行解析,实现视频流的播放。
141.图4是本发明一示例性实施例提供的视频流分发方法的流程图二,该视频流分发方法应用于图2架构下的客户端,具体的,应用于第一客户端,所述第一客户端与流媒体服务器以及多个其他客户端通过局域网通信连接,所述方法包括如下步骤s21至步骤s23:
142.步骤s21、向所述流媒体服务器发送视频流播放请求。
143.步骤s22、接收所述流媒体服务器的视频流切换信息,所述视频流切换信息表征被请求的视频流的来源切换为分发客户端。
144.在本实施例中,所述分发客户端是:由所述流媒体服务器从所述多个其他客户端中正在播放被请求的视频流的客户端确定出的。
145.步骤s23、接收所述分发客户端发送的视频流。
146.图5是本发明一示例性实施例提供的视频流分发方法的流程图三,该视频流分发方法应用于图2架构下的客户端,具体的,应用于分发客户端,所述分发客户端、第一客户端以及流媒体服务器通过局域网通信连接,所述方法包括如下步骤s31至步骤s32:
147.步骤s31、接收来自所述流媒体服务器的分发指令,所述分发指令用于指示所述分发客户端向所述第一客户端发送被请求的视频流。
148.步骤s32、向所述第一客户端发送所述被请求的视频流;
149.在本实施例中,所述分发客户端是:由所述流媒体服务器从正在播放被请求的视频流的客户端确定出的。
150.在一种可选的实施例中,在步骤s31中,向所述第一客户端发送所述被请求的视频流包括:
151.调用自身配置的hls组件,使得所述分发客户端升级为hls服务器,向所述第一客户端发送被请求的视频流。
152.示例性系统
153.基于与本发明方法实施例相同的构思,本发明实施例还提供了一种视频流分发系统。
154.图6示出了本发明一示例性实施例提供的视频流分发系统的示意图,包括流媒体
服务器、第一客户端和分发客户端,其中,所述流媒体服务器、所述第一客户端、所述分发客户端通过局域网通信连接;所述第一客户端用于向所述流媒体服务器发送视频流播放请求;所述流媒体服务器用于将正在播放被请求的视频流的客户端确定为所述分发客户端,并指示所述分发客户端向所述第一客户端发送被请求的视频流;所述分发客户端用于接收来自所述流媒体服务器的分发指令,向所述第一客户端发送被请求的视频流。
155.在一种可选的实施例中,流媒体服务器从正在播放被请求的视频流的客户端确定出分发客户端后,一方面向第一客户端发送视频流切换信息,告知将由分发客户端发送所请求的视频流;一方面向分发客户端发送分发指令,指示分发客户端向第一客户端发送被请求的视频流。分发客户端接收到来自流媒体服务器的分发指令,与第一客户端握手,并向第一客户端发送被请求的视频流。
156.在一些实施例中,可以根据在前提及的多种方法确定分发客户端,例如根据评分函数确定分发客户端。
157.本发明可以采用任何类型的流媒体服务器,例如微软的windows media service(wms)、realnetworks公司的helix server、adobe公司的flash media server等。
158.本发明中的客户端可以是任何类型的计算机设备,诸如个人计算机(例如,台式、笔记本、膝上型)计算机、以及诸如移动电话、个人数字助理、支持ip的视频播放器之类的设备。客户端通常包括处理器、显示设备(或去往显示设备的输出)、本地存储,诸如硬盘驱动器或闪存设备,以及用于经由网络耦合至系统的网络接口。客户端还具有用于播放视频流的视频播放器(例如,flashtm播放器或专用播放器)。视频播放器可以是单独的应用,或诸如网络浏览器的另一应用的插件。如果客户端是通用设备(例如,台式计算机、移动电话),则播放器通常实现为由计算机执行的软件。如果客户端是专用设备(例如,专用视频播放器),则播放器可以以硬件或硬件和软件的组合实现。所有这些实现关于本发明而言在功能上是等同的。播放器包括用于选择视频源、启动、停止和倒回视频源的用户接口控制(和相应的应用编程接口)。
159.示例性装置
160.基于与本发明方法实施例相同的构思,本发明实施例还提供了一种视频流分发装置。
161.图7示出了本发明实施例提供的视频流分发装置的示意图一,所述视频流分发装置配置于流媒体服务器。流媒体服务器与第一客户端以及多个其他客户端通过局域网通信连接,该装置包括播放请求接收模块110、确定模块120和指令发送模块130。
162.在本实施例中,播放请求接收模块110配置为接收来自第一客户端的视频流播放请求;确定模块120配置为将所述多个其他客户端中正在播放被请求的视频流的客户端确定为分发客户端;指令发送模块130配置为向所述分发客户端发送分发指令,所述分发指令用于指示所述分发客户端向所述第一客户端发送被请求的视频流。
163.在一种可选的实施例中,所述确定模块,包括:
164.参数确定子模块,配置为根据正在播放被请求的视频流的客户端的以下任一参数或几个参数的组合,确定出分发客户端:
165.播放时延、丢包率、上传带宽占用率、cpu占用率、内存占用率。
166.在一种可选的实施例中,所述确定模块,还包括:
167.函数确定子模块,配置为根据评分函数对正在播放被请求的视频流的客户端进行评分;
168.评分确定子模块,配置为将评分最高的客户端确定为分发客户端;
169.其中,所述评分函数为:
170.评分=(a/播放时延)*(1-丢包率)*(1/((b*上传带宽占用率)+(c*cpu占用率)+(d*内存占用率)))
171.其中,a、b、c、d分别为客户端的播放时延、上传带宽占用率、cpu占用率、内存占用率各自的影响因子。
172.在一种可选的实施例中,所述装置,还包括:
173.检测模块,配置为对以下参数进行检测,在任一参数或几个参数大于相应的设定阈值的情况下,执行所述确定模块的功能;
174.其中,所述参数包括:请求数量、上传带宽占用率、cpu占用率、内存占用率。
175.在一种可选的实施例中,所述装置还包括:
176.接收模块,配置为接收来自第二客户端的视频流回看请求,向所述第二客户端发送对应的视频流。
177.在一种可选的实施例中,所述装置还包括:
178.视频数据接收模块,配置为接收监控摄像头采集的视频数据,以生成所述视频流。
179.图8是本发明实施例提供的视频流接收装置的示意图二,所述视频流接收装置配置于第一客户端。第一客户端通过局域网与流媒体服务器以及多个其他客户端通信连接,该装置包括播放请求发送模块210、切换信息接收模块220和视频流接收模块230。
180.在本实施例中,播放请求发送模块210配置为向所述流媒体服务器发送视频流播放请求;切换信息接收模块220配置为接收所述流媒体服务器的视频流切换信息,所述视频流切换信息表征被请求的视频流的来源切换为分发客户端;视频流接收模块230,配置为接收所述分发客户端发送的视频流。其中,所述分发客户端是由所述流媒体服务器从所述多个其他客户端中确定出的,正在播放被请求的视频流的客户端。
181.图9是本发明实施例提供的视频流分发装置的示意图二,所述视频流分发装置配置于分发客户端。分发客户端、第一客户端以及流媒体服务器通过局域网通信连接,该装置包括指令接收模块310和视频流发送模块320。
182.在本实施例中,指令接收模块310配置为接收来自所述流媒体服务器的分发指令,所述分发指令用于指示所述分发客户端向第一客户端发送被请求的视频流;视频流发送模块320,配置为向所述第一客户端分发所述被请求的视频流。其中,所述分发客户端是:由所述流媒体服务器从正在播放被请求的视频流的客户端确定出的。
183.在一种可选的实施例中,所述视频流发送模块,包括:调用子模块,配置为调用自身配置的hls组件,使得所述分发客户端升级为hls服务器,向所述第一客户端发送被请求的视频流。
184.图7、8、9示出的分别配置于流媒体服务器、第一客户端和分发客户端的各个装置在视频流传输过程中相互配合,能够进行图6所示的流媒体服务器、第一客户端和分发客户端的交互,从而实现本发明图3、4、5所示的视频流分发和接收,代替传统的单节点分发,利用分发客户端大大缓解流媒体服务器的分发压力。
185.示例性电子设备
186.图11图示了根据本发明实施例的电子设备的框图。
187.如图11所示,电子设备100包括一个或多个处理器101和存储器102。
188.处理器101可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备100中的其他组件以执行期望的功能。
189.存储器102可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器101可以运行所述程序指令,以实现上文所述的本发明的各个实施例的视频流分发方法或视频流接收方法中的步骤。
190.在一个示例中,电子设备100还可以包括:输入装置103和输出装置104,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
191.当然,为了简化,图11中仅示出了该电子设备100中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备100还可以包括任何其他适当的组件。
192.示例性计算机程序产品和计算机可读存储介质
193.除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品和/或计算机可读存储介质,其包括计算机程序指令,所述计算机程序指令在被处理器运行时实现本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的视频流分发方法或视频流接收方法中的步骤。
194.本说明书中的各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
195.本发明实施例是参照根据本发明实施例的方法、装置、电子设备和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
196.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
197.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
198.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基
本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
199.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
200.以上对本发明所提供的一种视频流分发方法方法、装置、设备和介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1