CN118158138A - 数据分发控制方法、装置、服务器及存储介质 - Google Patents
数据分发控制方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN118158138A CN118158138A CN202410235881.9A CN202410235881A CN118158138A CN 118158138 A CN118158138 A CN 118158138A CN 202410235881 A CN202410235881 A CN 202410235881A CN 118158138 A CN118158138 A CN 118158138A
- Authority
- CN
- China
- Prior art keywords
- conference
- clients
- data
- client
- mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 10
- 230000008569 process Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 13
- 238000011156 evaluation Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 14
- 230000009286 beneficial effect Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供了一种数据分发控制方法、装置、服务器及存储介质,涉及音视频处理技术领域,解决了视频会议对服务器的系统资源占用较大而导致服务器的承载能力差的问题,本方案能够在两种数据分发模式中动态切换,使得服务器能够以较小的系统资源完成视频会议,从而有效地提升了服务器的承载能力,服务器能够为更多客户端提供视频会议媒体服务。
Description
技术领域
本申请涉及音视频处理技术领域,尤其涉及一种数据分发控制方法、装置、服务器及存储介质。
背景技术
互联网的使用已经逐渐融入人们的工作与生活,基于互联网实现的远程办公、视频会议等活动便利了人们的工作,能够克服地理距离的局限,其也逐渐成为常用的办公方式。
视频会议是基于服务器提供的视频会议媒体服务实现的,常用的视频会议包括两种数据分发模式,一种是SFU(Selective Forwarding Unit,选择性转发单元)模式,另一种是MCU(MultiPoint Control Unit,多点控制单元)模式。其中,在SFU模式下与会的各客户端需要向服务器上传本端地所产生的媒体流,并由服务器向各端转发其他客户端的媒体流,以实现视频会议功能;而在MCU模式下服务器需要将与会的各客户端上传的媒体流解码并合并为一个媒体流,再发送至各客户端。
在视频会议常用的模式下,服务器提供一次视频会议媒体服务需要占用大量的系统资源,使得服务器的承载能力差,无法为更多客户端提供视频会议媒体服务。
发明内容
本申请提供了一种数据分发控制方法、装置、服务器及存储介质,解决了相关技术中视频会议对服务器的系统资源占用较大而导致服务器的承载能力差的问题,本方案能够合理地利用服务器的系统资源完成视频会议,从而有效地提高服务器的承载能力,有助于为更多客户端提供视频会议媒体服务。
第一方面,本申请提供了一种数据分发控制方法,应用于服务器,该方法包括:
在视频会议过程中接收到媒体流数据的情况下,确定当前加入视频会议的与会客户端;
基于预设的带宽评估算法,实时获取每个与会客户端对应的网络带宽;
根据所接收到的媒体流数据,统计所有媒体流数据对应的总占用带宽;
对比总占用带宽和每个与会客户端对应的网络带宽;
根据总占用带宽与每个与会客户端的网络带宽的对比结果,确定视频会议所选用的数据分发模式,并按照所选用的数据分发模式对媒体流数据进行处理,得到音视频数据并向每个与会客户端发送音视频数据。
由此可见,服务器在获取各与会客户端的网络带宽后,其可通过网络带宽与总占用带宽的对比结果,选取合适的数据分发模式,以实现对系统资源的合理利用,在性能不变时服务器承载更多视频会议,即通过合理地利用服务器的系统资源完成视频会议,服务器有效地提高其系统的承载能力,有助于为更多客户端提供视频会议媒体服务。
在一些实施例中,根据总占用带宽与每个与会客户端的网络带宽的对比结果,确定视频会议所选用的数据分发模式,并按照所选用的数据分发模式对媒体流数据进行处理,得到音视频数据并向每个与会客户端发送音视频数据,包括:
基于总占用带宽,对每个与会客户端的网络带宽进行逐个对比;
在任意一个与会客户端的网络带宽均大于或等于总占用带宽的情况下,确定当前的数据分发模式为SFU模式,并将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端,目标客户端为当前待接收音视频数据的与会客户端;
在至少一个与会客户端的网络带宽小于总占用带宽的情况下,确定当前的数据分发模式为MCU模式,并将所有媒体流数据合并以作为音视频数据转发至每个与会客户端。
服务器能够根据网络带宽和总占用带宽的对比结果,对数据分发模式进行选取,有助于实现以较少的系统资源完成视频会议,从而使得服务器的承载能力得到提升,有利于服务器为更多客户端提供视频会议。
在一些实施例中,根据总占用带宽与每个与会客户端的网络带宽的对比结果,确定视频会议所选用的数据分发模式,并按照所选用的数据分发模式对媒体流数据进行处理,得到音视频数据并向每个与会客户端发送音视频数据,还包括:
在与会客户端的数量保持不变的情况下,若当前的数据分发模式为MCU模式,则当任意一个与会客户端的网络带宽均大于或等于总占用带宽时,将视频会议当前的数据分发模式由MCU模式切换为SFU模式,并将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端。
服务器能够更动态地调整数据分发模式,有助于实现以较少的系统资源完成视频会议,从而使得服务器的承载能力得到提升,有利于服务器为更多客户端提供视频会议。
在一些实施例中,该方法还包括:
根据当前视频会议的与会客户端的客户端数量,确定是否切换当前的数据分发模式。
在一些实施例中,根据当前视频会议的与会客户端的客户端数量,确定是否切换当前的数据分发模式,包括:
监测当前视频会议的与会客户端的客户端数量;
在客户端数量相对于预设阈值的比较关系变化的情况下,确定切换当前的数据分发模式,比较关系用于标识客户端数量是否小于预设阈值。
服务器需要进一步确定是否需要切换当前所选用的数据分发模式,从而选择更合适的模式,以便于在服务器性能不变的情况能够为更多客户端提供视频会议媒体服务。
在一些实施例中,在客户端数量相对于预设阈值的比较关系变化的情况下,确定切换当前的数据分发模式,比较关系用于标识客户端数量是否小于预设阈值,包括:
在当前的数据分发模式为SFU模式且客户端数量大于或等于预设阈值的情况下,将视频会议的当前模式由SFU模式切换为MCU模式,并将所有媒体流数据合并以作为音视频数据转发至每个与会客户端;
在当前的数据分发模式为MCU模式且客户端数量小于预设阈值的情况下,当任意一个与会客户端的网络带宽均大于或等于总占用带宽时,将视频会议的当前模式由MCU模式切换为SFU模式,并将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端,目标客户端为当前待接收音视频数据的与会客户端。
在模式确定的情况下,服务器还可根据客户端数量的变化,进一步确定所选用的数据分发模式,使得服务器对视频会议所选用的数据分发模式能够减少对系统资源的占用,有助于提升服务器的承载能力。
在一些实施例中,基于预设的带宽评估算法,实时获取每个与会客户端对应的网络带宽,包括:
向各与会客户端发送测试数据包,以获取服务器与各与会客户端之间的传输延迟以及丢包率;
根据测试数据包的包容量、传输延迟和丢包率,确定每个与会客户端对应的网络带宽。
服务器通过计算各与会客户端的网络带宽,以确定该与会客户端的网络质量,从而通过与总占用带宽的对比,选取合适的数据分发模式,以减少对系统资源的占用,以便于服务器能够承载更多视频会议。
第二方面,本申请还提供了一种数据分发控制装置,应用于服务器,该装置包括:
数据接收模块,配置为在视频会议过程中接收到媒体流数据的情况下,确定当前加入视频会议的与会客户端;
第一带宽检测模块,配置为基于预设的带宽评估算法,实时获取每个与会客户端对应的网络带宽;
第二带宽检测模块,配置为根据所接收到的媒体流数据,统计所有媒体流数据对应的总占用带宽;
带宽对比模块,配置为对比总占用带宽和每个与会客户端对应的网络带宽;
模式选择模块,配置为根据总占用带宽与每个与会客户端的网络带宽的对比结果,确定视频会议所选用的数据分发模式,并按照所选用的数据分发模式对媒体流数据进行处理,得到音视频数据并向每个与会客户端发送音视频数据。
第三方面,本申请还提供了一种服务器,其包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本申请的数据分发控制方法。
第四方面,本申请还提供了一种存储计算机可执行指令的存储介质,计算机可执行指令在由处理器执行时用于执行本申请的数据分发控制方法。
附图说明
图1为本申请一实施例提供的数据分发控制方法的步骤示意图;
图2为在数据分发模式为SFU模式的情况下服务器向各与会客户端传输数据的逻辑示意图;
图3为在数据分发模式为MCU模式的情况下服务器向各与会客户端传输数据的逻辑示意图;
图4为本申请一实施例提供的确定是否切换模式的步骤示意图;
图5为本申请一实施例提供获取与会客户端的网络带宽的步骤示意图;
图6为本申请一实施例提供的数据分发控制装置的结构示意图;
图7为本申请一实施例提供的服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本申请实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请实施例,而非对本申请实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请实施例相关的部分而非全部结构,本领域技术人员在阅读本申请说明书后,应该能够想到,只要技术特征不互相矛盾,那么技术特征的任意组合均可以构成可选的实施方式。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。在本申请的描述中,“多个”表示两个及以上,“若干”表示一个及以上。
随着互联网的发展,人们在日常的工作生活中对于远程会议、学习讨论等需求可以通过视频会议的方式满足,使得在不同地点、不同地区的用户能够通过客户端(如手机、电脑等终端设备)进行通信。可以理解的是,视频会议由服务器提供的视频会议媒体服务提供,从而使得至少两个客户端之间能够通过网络实现数据交互,以满足用户进行远程的视频会议的需求。
视频会议的数据分发模式包括SFU模式和MCU模式。在SFU模式下各客户端上传本设备的数据至服务器,再由服务器向各客户端转发其他客户端的数据。而在MCU模式下,各客户端上传本设备的数据至服务器后,服务器对数据进行解码后合并,以生成一路数据并向各客户端发送。
另外,视频会议的与会客户端的数量是灵活变动的,即在视频会议过程中有可能存在增加新的与会人员而增加新的与会客户端的情况,也可能存在部分与会人员退出而导致与会客户端的数量减少的情况。不同模式下视频会议的与会客户端的数量多寡会对服务器的运行产生影响。
如在SFU模式下,与会客户端的数量较多的情况下,客户端需要消耗较大带宽传输数据,且每新增一个客户端,服务器的分发压力会增加数倍。而在MCU模式下,若当前的视频会议的与会客户端较少,服务器需要浪费较多计算资源来对与会客户端发送的数据进行解码、转码、编码等操作。
而且相关技术中在创建视频会议后,视频会议的数据分发模式便已固定,服务器需要为视频会议媒体服务提供大量的系统资源,如带宽、CPU占用、内存占用等,以应对在视频会议过程中与会客户端的变化、传输数量的变化等问题的发生,使得服务器的承载能力差,从而无法为更多客户端提供视频会议媒体服务。
对此,本申请方案提供了一种数据分发控制方法,该方法可应用于服务器中,使得服务器在提供视频会议的过程中,其能够灵活地选取视频会议所选用的数据分发模式,以按照模式相应的要求向各客户端传递数据。
图1为本申请一实施例提供的数据分发控制方法的步骤示意图,服务器在响应于一客户端发起的创建视频会议的请求,其相应地为客户端提供视频会议媒体服务,以创建视频会议,其中,加入该视频会议的客户端均为与会客户端。在视频会议过程中,服务器灵活地选取视频会议当前所选用的数据分发模式,具体步骤如下:
步骤S110、在视频会议过程中接收到媒体流数据的情况下,确定当前加入视频会议的与会客户端。
视频会议开始后,各与会客户端会向服务器上传媒体流数据,以便于服务器对媒体流数据进行处理,使得各与会客户端都能够获取其他与会客户端的媒体流数据,从而在视频会议中,用户通过各自的与会客户端与其他用户进行交流、展示等活动。
步骤S120、基于预设的带宽评估算法,实时获取每个与会客户端对应的网络带宽。
与会客户端对应的网络带宽的大小对SFU模式下服务器能否顺畅地将数据传输至该与会客户端存在影响。如当前存在一个与会客户端的网络带宽较小,相应地,可确定该与会客户端的网络质量较差,对此,用户在进行视频会议时可能出现画音不同步、画面卡顿等情况,导致用户的使用体验较差。
为此,服务器调用预设置的带宽评估算法,实时获取每个与会客户端对应的网络带宽。例如,服务器可采用GCC(Google Congest Control,拥塞控制)算法,以进行延迟分析、路径质量分析、丢包率分析等,从而评估各与会客户端的网络带宽。
步骤S130、根据所接收到的媒体流数据,统计所有媒体流数据对应的总占用带宽。
服务器还需要对所接收到的媒体流数据进行统计,以确定相应的总占用带宽。各与会客户端在上传媒体流数据时,其按照设备对应的上行带宽进行上传,而各与会客户端在接收服务器发送的数据时,其按照设备对应的下行带宽进行下载。因此,对于各与会客户端来说,总占用带宽相当于所有客户端所上传的媒体流数据所占用的带宽之和。示例性的,若当前有4个与会客户端,若每个与会客户端的上行带宽为1M带宽,同时与会客户端还需从服务器获取服务器转发过来的其他3个与会客户端的媒体流数据,即下行带宽3M,在对于该与会客户端来说,其总占用带宽为4M。
步骤S140、对比总占用带宽和每个与会客户端对应的网络带宽。
步骤S150、根据总占用带宽与每个与会客户端的网络带宽的对比结果,确定视频会议所选用的数据分发模式,并按照所选用的数据分发模式对媒体流数据进行处理,得到音视频数据并向每个与会客户端发送音视频数据。
在确定总占用带宽以及每个与会客户端对应的网络带宽后,服务器进一步地对比总占用带宽和网络带宽,以确定总占用带宽与每个与会客户端的网络带宽的对比结果。可以想到的是,在存在多个与会客户端的情况下,服务器所获取的对比结果也存在多个,进而服务器需要结合所得到对比结果,确定视频会议当前应选用的数据分发模式。
在一实施例中,服务器在确定总占用带宽以及每个与会客户端的网络带宽后,服务器可按照总占用带宽与每个与会客户端的网络带宽逐个进行对比,从而确定多个对比结果。
在任意一个与会客户端的网络带宽均大于或等于总占用带宽的情况下,服务器可确定每个与会客户端均能够以较优的网络质量接收数据,进而服务器确定当前所选用的数据分发模式为SFU模式。当然,在数据分发模式确定后,服务器还需要按照数据分发模式对所接收到的媒体流数据进行处理,从而得到音视频数据。在数据分发模式为SFU模式的情况下,服务器将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端,该目标客户端为当前待接收音视频数据的与会客户端。对此,服务器能够根据网络带宽和总占用带宽的对比结果,对数据分发模式进行选取,有助于实现以较少的系统资源完成视频会议,从而使得服务器的承载能力得到提升,有利于服务器为更多客户端提供视频会议。
示例性的,图2为在数据分发模式为SFU模式的情况下服务器向各与会客户端传输数据的逻辑示意图,如图所示,当前的视频会议存在4个与会客户端,分别为客户端A、客户端B、客户端C以及客户端D,其中A流为客户端A上传的媒体流数据,B流为客户端B上传的媒体流数据,C流为客户端C上传的媒体流数据,D流为客户端D上传的媒体流数据。在服务器确定当前的数据分发模式为SFU模式后,对于客户端A,服务器会将其他客户端(即客户端B、客户端C以及客户端D)对应的媒体流数据(如B流、C流以及D流)作为音视频数据转发至客户端A。对于其他客户端,服务器采用相同的转发策略转发相应的音视频数据。
如以SR1表示A流占用的带宽,SR2表示B流占用的带宽,SR3表示C流占用的带宽,SR4表示D流占用的带宽,而Rx则表示与会客户端的网络带宽,Rx∈{R1,R2,R3,R4},其中R1表示客户端A的网络带宽,R2表示客户端B的网络带宽,R3表示客户端C的网络带宽,R4表示客户端D的网络带宽。进而,在Rx≥(SR1+SR2+SR3+SR4),即任意一个与会客户端的网络带宽均大于或等于总占用带宽时,服务器选取SFU模式作为当前的数据分发模式。
而在至少一个与会客户端的网络带宽小于总占用带宽的情况下,即在Rx<(SR1+SR2+SR3+SR4)时,服务器可确定存在与会客户端的网络质量不佳,相应地,服务器选取MCU模式作为当前的数据分发模式,进而按照MCU模式的要求对媒体流数据进行处理。
示例性的,图3为在数据分发模式为MCU模式的情况下服务器向各与会客户端传输数据的逻辑示意图,如图所示,当前的视频会议存在4个与会客户端,分别为客户端A、客户端B、客户端C以及客户端D,其中A流为客户端A上传的媒体流数据,B流为客户端B上传的媒体流数据,C流为客户端C上传的媒体流数据,D流为客户端D上传的媒体流数据。在数据分发模式为MCU模式时,服务器将所接收到的媒体流数据解码后进行合并,以获取一路流数据,图中以mixer流表示合并后得到的流数据。并且,服务器以该mixer流作为音视频数据向各与会客户端发送。
由上述方案可知,服务器在获取各与会客户端的网络带宽后,其可通过网络带宽与总占用带宽的对比结果,选取合适的数据分发模式,以实现对系统资源的合理利用,在性能不变时服务器承载更多视频会议,即通过合理地利用服务器的系统资源完成视频会议,服务器有效地提高其系统的承载能力,有助于为更多客户端提供视频会议媒体服务。
在一些实施例中,若视频会议中与会客户端的数量保持不变,则服务器检测到当前的总占用带宽后,其会重新将总占用带宽和各与会客户端的网络带宽。在当前的数据分发模式为MCU模式的情况下,当服务器确定存在任意一个与会客户端的网络带宽均大于或等于总占用带宽时,服务器会将当前的数据分发模式由MCU模式切换为SFU模式。当然,对于所分发的音视频数据,在模式切换后,服务器同样需要重新对媒体流数据进行处理。在数据分发模式由MCU模式切换为SFU模式的情况下,服务器则将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端。
因此,服务器能够更动态地调整数据分发模式,有助于实现以较少的系统资源完成视频会议,从而使得服务器的承载能力得到提升,有利于服务器为更多客户端提供视频会议。
在一些实施例中,服务器除了根据带宽情况对数据分发模式进行控制外,其还可结合客户端数量对数据分发模式进行切换控制。如在服务器根据总占用带宽和各与会客户端的网络带宽的对比结果,初步确定所选用的数据分发模式后,服务器还需要结合当前视频会议中的与会客户端的客户端数量,进一步确定是否切换为另一种模式。
可以理解的是,视频会议中与会客户端的客户端数量存在多种变化情况,如增加、减少或保持不变,对于与会客户端的客户端数量变化时,为了节省提供视频会议媒体服务时的系统资源,服务器需要进一步确定是否需要切换当前所选用的数据分发模式,从而选择更合适的模式,以便于在服务器性能不变的情况能够为更多客户端提供视频会议媒体服务。
图4为本申请一实施例提供的确定是否切换模式的步骤示意图,在一实施例中,服务器需要监测当前视频会议的与会客户端的客户端数量,以确定参加会议的客户端数量是否发送变化,以便于进一步判断是否再度切换模式的选择,具体步骤如下:
步骤S410、监测当前视频会议的与会客户端的客户端数量。
步骤S420、在客户端数量相对于预设阈值的比较关系变化的情况下,确定切换当前的数据分发模式,比较关系用于标识客户端数量是否小于预设阈值。
可以理解的是,服务器对于视频会议的与会客户端的客户端数量设置有预设阈值,以通过当前的客户端数量与预设阈值的比较关系的变化,判断是否需要切换当前所选用的模式。其中,客户端数量与预设阈值的比较关系是用于标识客户端数量是否小于预设阈值的。应当想到的是,随着客户端数量的变化,该比较关系与会存在相应变化。
示例性的,若预设阈值为12,而视频会议当前的客户端数量为11,即客户端数量小于预设阈值,相应地服务器可以相应地数值标识客户端数量与预设阈值是满足比较关系的,如以参数值0标识客户端数量与预设阈值是满足比较关系的,以参数值1标识客户端数量与预设阈值是不满足比较关系的。因此,新增一个与会客户端时,客户端数量则变为12,即客户端数量与预设阈值是不满足比较关系的,服务器可根据参数值的变化确定比较关系发生变化,进而将当前的数据分发模式切换为另一模式。
因此,服务器通过结合带宽情况和客户端数量,确定是否切换对数据分发模式的选择,有助于更好地实现以较少的系统资源完成视频会议,从而使得服务器的承载能力得到提升,有利于服务器为更多客户端提供视频会议。
在一实施例中,对于SFU模式,服务器在确定有新增的与会客户端,且视频会议的与会客户端的客户端数量大于或等于预设阈值时,服务器需要进行模式切换。即在当前的数据分发模式为SFU模式且客户端数量大于或等于预设阈值的情况下,服务器将视频会议的当前模式由SFU模式切换为MCU模式,并将所有媒体流数据合并以作为音视频数据转发至每个与会客户端。
可以理解的是,在SFU模式下,每新增一个客户端,对于服务器来说,其分发压力会增加数倍。服务器在确定客户端数量大于或等于预设阈值后,服务器将数据分发模式由SFU模式切换为MCU模式,即,即使当前的总占用带宽是小于任一个与会客户端的网络带宽,服务器也会将当前的数据分发模式切换为MCU模式。
而对于MCU模式,服务器在确定客户端数量减少,且客户端数量小于预设阈值时,服务器同样会进行模式切换。即在当前的数据分发模式为MCU模式且客户端数量小于预设阈值的情况下,当任意一个与会客户端的网络带宽均大于或等于总占用带宽时,将视频会议的当前模式由MCU模式切换为SFU模式。另外,服务器还按照MCU模式对媒体流数据进行处理,即将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端,其中目标客户端为当前待接收音视频数据的与会客户端。
可以理解的是,在MCU模式下,较少的客户端数量会使得造成服务器的计算资源的浪费,对此,服务器在确定客户端数量小于预设阈值后,服务器将数据分发模式由MCU模式切换为SFU模式。
因此,在模式确定的情况下,服务器还可根据客户端数量的变化,进一步确定所选用的数据分发模式,使得服务器对视频会议所选用的数据分发模式能够减少对系统资源的占用,有助于提升服务器的承载能力。
图5为本申请一实施例提供获取与会客户端的网络带宽的步骤示意图,在一实施例中,在确定视频会议所选用的数据分发模式前,服务器需要利用带宽评估算法获取各与会客户端的网络带宽,具体步骤如下:
步骤S510、向各与会客户端发送测试数据包,以获取服务器与各与会客户端之间的传输延迟以及丢包率。
步骤S520、根据测试数据包的包容量、传输延迟和丢包率,确定每个与会客户端对应的网络带宽。
可以理解的是,服务器与与会客户端是时间同步的,服务器向各与会客户端发送具有预设字节数的测试数据包,同时获取测试数据包的发送时间、接收时间以及丢包率。可以想到的是,对于接收时间以及丢包率,各与会客户端可在对应于测试数据包的接收应答信息中携带相关信息,如接收时间、接收到的数据量等,服务器可基于该接收应答信息确定接收时间以及丢包率。
进而,服务器能够根据发送时间和接收时间确定传输延迟,进一步地,服务器根据测试数据包的包容量(即测试数据包的字节数)、传输延迟以及丢包率,计算各与会客户端对应的网络带宽,具体计算公式可采用如下公式:
其中,B为网络带宽,L为丢包率,S为包容量,D为传输延迟。
因此,服务器通过计算各与会客户端的网络带宽,以确定该与会客户端的网络质量,从而通过与总占用带宽的对比,选取合适的数据分发模式,以减少对系统资源的占用,以便于服务器能够承载更多视频会议。
图6为本申请一实施例提供的数据分发控制装置的结构示意图,该装置用于执行上述实施例提供的数据分发控制方法,并具备执行方法所需的功能模块和有益效果。如图6所示,该装置包括数据接收模块601、第一带宽检测模块602、第二带宽检测模块603、带宽对比模块604和模式选择模块605。
其中,数据接收模块601配置为在视频会议过程中接收到媒体流数据的情况下,确定当前加入视频会议的与会客户端;
第一带宽检测模块602配置为基于预设的带宽评估算法,实时获取每个与会客户端对应的网络带宽;
第二带宽检测模块603配置为根据所接收到的媒体流数据,统计所有媒体流数据对应的总占用带宽;
带宽对比模块604配置为对比总占用带宽和每个与会客户端对应的网络带宽;
模式选择模块605配置为根据总占用带宽与每个与会客户端的网络带宽的对比结果,确定视频会议所选用的数据分发模式,并按照所选用的数据分发模式对媒体流数据进行处理,得到音视频数据并向每个与会客户端发送音视频数据。
在上述实施例的基础上,模式选择模块605还配置为:
基于总占用带宽,对每个与会客户端的网络带宽进行逐个对比;
在任意一个与会客户端的网络带宽均大于或等于总占用带宽的情况下,确定当前的数据分发模式为SFU模式,并将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端,目标客户端为当前待接收音视频数据的与会客户端;
在至少一个与会客户端的网络带宽小于总占用带宽的情况下,确定当前的数据分发模式为MCU模式,并将所有媒体流数据合并以作为音视频数据转发至每个与会客户端。
在上述实施例的基础上,模式选择模块605还配置为:
在与会客户端的数量保持不变的情况下,若当前的数据分发模式为MCU模式,则当任意一个与会客户端的网络带宽均大于或等于总占用带宽时,将视频会议当前的数据分发模式由MCU模式切换为SFU模式,并将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端。
在上述实施例的基础上,数据分发控制装置还包括模式切换模块,该模式切换模块配置为:
根据当前视频会议的与会客户端的客户端数量,确定是否切换当前的数据分发模式。
在上述实施例的基础上,模式切换模块还配置为:
监测当前视频会议的与会客户端的客户端数量;
在客户端数量相对于预设阈值的比较关系变化的情况下,确定切换当前的数据分发模式,比较关系用于标识客户端数量是否小于预设阈值。
在上述实施例的基础上,模式切换模块还配置为:
在当前的数据分发模式为SFU模式且客户端数量大于或等于预设阈值的情况下,将视频会议的当前模式由SFU模式切换为MCU模式,并将所有媒体流数据合并以作为音视频数据转发至每个与会客户端;
在当前的数据分发模式为MCU模式且客户端数量小于预设阈值的情况下,当任意一个与会客户端的网络带宽均大于或等于总占用带宽时,将视频会议的当前模式由MCU模式切换为SFU模式,并将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端,目标客户端为当前待接收音视频数据的与会客户端。
在上述实施例的基础上,第一带宽检测模块602还配置为:
向各与会客户端发送测试数据包,以获取服务器与各与会客户端之间的传输延迟以及丢包率;
根据测试数据包的包容量、传输延迟和丢包率,确定每个与会客户端对应的网络带宽。
值得注意的是,上述数据分发控制装置的实施例中,各模块只是按照功能逻辑进行划分的,但并不局限于上述划分,只要能够实现相应的功能即可;另外,各模块的具体名称也只是为了便于互相区分,并不用于限制本申请的保护范围。
图7为本申请一实施例提供的服务器的结构示意图,该设备用于执行上述实施例提供的数据分发控制方法,并具备执行方法相应的功能模块和有益效果。如图所示,服务器包括处理器701、存储器702、输入装置703和输出装置704。处理器701的数量可以是一个或多个,图中以一个处理器701为例;处理器701、存储器702、输入装置703和输出装置704可以通过总线或其他方式连接,图中以通过总线连接为例。存储器702作为一种计算机可读的存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的数据分发控制方法对应的程序指令/模块。处理器701通过运行存储在存储器702中的软件程序、指令以及模块,从而执行相应的各种功能应用以及数据处理,即实现上述的数据分发控制方法。
存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据使用过程中所记录或创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器702可进一步包括相对于处理器701远程设置的存储器,这些远程设置的存储器可以通过网络连接至终端设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置703可用于向处理器701输入相应的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入;输出装置704可用于发送或显示与设备的用户设置以及功能控制有关的键信号输出。
本申请实施例还提供一种存储有计算机可执行指令的存储介质,计算机可执行指令在由处理器执行时用于执行本申请任一实施例提供的数据分发控制方法中的相关操作。
计算机可读的存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据分发控制方法,其特征在于,应用于服务器,所述数据分发控制方法包括:
在视频会议过程中接收到媒体流数据的情况下,确定当前加入所述视频会议的与会客户端;
基于预设的带宽评估算法,实时获取每个所述与会客户端对应的网络带宽;
根据所接收到的媒体流数据,统计所有媒体流数据对应的总占用带宽;
对比所述总占用带宽和每个所述与会客户端对应的网络带宽;
根据所述总占用带宽与每个所述与会客户端的网络带宽的对比结果,确定所述视频会议所选用的数据分发模式,并按照所选用的数据分发模式对所述媒体流数据进行处理,得到音视频数据并向每个所述与会客户端发送所述音视频数据。
2.根据权利要求1所述的数据分发控制方法,其特征在于,所述根据所述总占用带宽与每个所述与会客户端的网络带宽的对比结果,确定所述视频会议所选用的数据分发模式,并按照所选用的数据分发模式对所述媒体流数据进行处理,得到音视频数据并向每个所述与会客户端发送所述音视频数据,包括:
基于所述总占用带宽,对每个所述与会客户端的网络带宽进行逐个对比;
在任意一个所述与会客户端的网络带宽均大于或等于所述总占用带宽的情况下,确定当前的数据分发模式为SFU模式,并将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端,所述目标客户端为当前待接收音视频数据的与会客户端;
在至少一个所述与会客户端的网络带宽小于所述总占用带宽的情况下,确定当前的数据分发模式为MCU模式,并将所有媒体流数据合并以作为音视频数据转发至每个所述与会客户端。
3.根据权利要求2所述的数据分发控制方法,其特征在于,所述根据所述总占用带宽与每个所述与会客户端的网络带宽的对比结果,确定所述视频会议所选用的数据分发模式,并按照所选用的数据分发模式对所述媒体流数据进行处理,得到音视频数据并向每个所述与会客户端发送所述音视频数据,还包括:
在所述与会客户端的数量保持不变的情况下,若当前的数据分发模式为MCU模式,则当任意一个所述与会客户端的网络带宽均大于或等于所述总占用带宽时,将所述视频会议当前的数据分发模式由MCU模式切换为SFU模式,并将其他与会客户端上传的媒体流数据作为音视频数据转发至所述目标客户端。
4.根据权利要求1所述的数据分发控制方法,其特征在于,所述方法还包括:
根据当前所述视频会议的与会客户端的客户端数量,确定是否切换当前的数据分发模式。
5.根据权利要求4所述的数据分发控制方法,其特征在于,所述根据当前所述视频会议的与会客户端的客户端数量,确定是否切换当前的数据分发模式,包括:
监测当前所述视频会议的与会客户端的客户端数量;
在所述客户端数量相对于预设阈值的比较关系变化的情况下,确定切换当前的数据分发模式,所述比较关系用于标识所述客户端数量是否小于所述预设阈值。
6.根据权利要求5所述的数据分发控制方法,其特征在于,所述在所述客户端数量相对于预设阈值的比较关系变化的情况下,确定切换当前的数据分发模式,所述比较关系用于标识所述客户端是否小于所述预设阈值,包括:
在当前的数据分发模式为SFU模式且所述客户端数量大于或等于预设阈值的情况下,将所述视频会议的当前模式由SFU模式切换为MCU模式,并将所有媒体流数据合并以作为音视频数据转发至每个所述与会客户端;
在当前的数据分发模式为MCU模式且所述客户端数量小于预设阈值的情况下,当任意一个所述与会客户端的网络带宽均大于或等于所述总占用带宽时,将所述视频会议的当前模式由MCU模式切换为SFU模式,并将其他与会客户端上传的媒体流数据作为音视频数据转发至目标客户端,所述目标客户端为当前待接收音视频数据的与会客户端。
7.根据权利要求1-6任一项所述的数据分发控制方法,其特征在于,所述基于预设的带宽评估算法,实时获取每个所述与会客户端对应的网络带宽,包括:
向各所述与会客户端发送测试数据包,以获取所述服务器与各所述与会客户端之间的传输延迟以及丢包率;
根据所述测试数据包的包容量、所述传输延迟和所述丢包率,确定每个所述与会客户端对应的网络带宽。
8.一种数据分发控制装置,其特征在于,应用于服务器,所述数据分发控制装置包括:
数据接收模块,配置为在视频会议过程中接收到媒体流数据的情况下,确定当前加入所述视频会议的与会客户端;
第一带宽检测模块,配置为基于预设的带宽评估算法,实时获取每个所述与会客户端对应的网络带宽;
第二带宽检测模块,配置为根据所接收到的媒体流数据,统计所有媒体流数据对应的总占用带宽;
带宽对比模块,配置为对比所述总占用带宽和每个所述与会客户端对应的网络带宽;
模式选择模块,配置为根据所述总占用带宽与每个所述与会客户端的网络带宽的对比结果,确定所述视频会议所选用的数据分发模式,并按照所选用的数据分发模式对所述媒体流数据进行处理,得到音视频数据并向每个所述与会客户端发送所述音视频数据。
9.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的数据分发控制方法。
10.一种存储计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由处理器执行时用于执行如权利要求1-7中任一项所述的数据分发控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410235881.9A CN118158138A (zh) | 2024-03-01 | 2024-03-01 | 数据分发控制方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410235881.9A CN118158138A (zh) | 2024-03-01 | 2024-03-01 | 数据分发控制方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118158138A true CN118158138A (zh) | 2024-06-07 |
Family
ID=91286164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410235881.9A Pending CN118158138A (zh) | 2024-03-01 | 2024-03-01 | 数据分发控制方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118158138A (zh) |
-
2024
- 2024-03-01 CN CN202410235881.9A patent/CN118158138A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9246973B2 (en) | Identifying and transitioning to an improved VoIP session | |
US9948889B2 (en) | Priority of uplink streams in video switching | |
CN109067578B (zh) | 一种组播快速切换的方法和装置 | |
US20130222519A1 (en) | Mobile device capable of multi-party video conferencing and control method thereof | |
US9232244B2 (en) | Efficient frame forwarding in large scale real-time screen content sharing meetings | |
CN111432158B (zh) | 媒体节点的负载均衡方法及装置、存储介质、电子装置 | |
CN113114688B (zh) | 多媒体会议管理方法及装置、存储介质、电子设备 | |
CN111049792B (zh) | 音频传输方法、装置、终端设备和存储介质 | |
CN111245851B (zh) | 多终端音频传输方法、装置、终端设备和存储介质 | |
CN111741177B (zh) | 在线会议的混音方法、装置、设备和介质 | |
CN111131840B (zh) | 一种视频业务系统切换网络的方法及装置 | |
CN112566165A (zh) | 通话方法及装置 | |
CN118158138A (zh) | 数据分发控制方法、装置、服务器及存储介质 | |
CN111314738A (zh) | 数据传输方法和装置 | |
US20150149638A1 (en) | Resource Allocation | |
CN114760490A (zh) | 视频流处理方法及装置 | |
US11483682B2 (en) | Method, base station and user equipment for multicasting and device with a storage capability | |
WO2022002003A1 (zh) | 信息确定方法及设备 | |
US11233834B2 (en) | Streaming click-to-talk with video capability | |
US20060218259A1 (en) | Method of communication setup in a network | |
CN113038061B (zh) | 虚拟会议控制方法、系统及计算机可读存储介质 | |
CN111404908B (zh) | 数据交互方法、装置、电子设备及可读存储介质 | |
CN117675774A (zh) | 流媒体数据传输方法、装置及电子设备 | |
CN116156099A (zh) | 一种网络传输方法、装置和系统 | |
CN113347472A (zh) | 音视频质量调节方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |