CN117440127A - 一种视频会议中处理并发消费的方法、装置、设备和介质 - Google Patents
一种视频会议中处理并发消费的方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN117440127A CN117440127A CN202311764094.5A CN202311764094A CN117440127A CN 117440127 A CN117440127 A CN 117440127A CN 202311764094 A CN202311764094 A CN 202311764094A CN 117440127 A CN117440127 A CN 117440127A
- Authority
- CN
- China
- Prior art keywords
- packet
- route
- user terminals
- sfu
- creating
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012545 processing Methods 0.000 title abstract description 16
- 230000005540 biological transmission Effects 0.000 claims description 69
- 238000004519 manufacturing process Methods 0.000 claims description 35
- 230000011664 signaling Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 18
- 239000002699 waste material Substances 0.000 abstract description 9
- 238000004891 communication Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 235000014347 soups Nutrition 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000209140 Triticum Species 0.000 description 1
- 235000021307 Triticum Nutrition 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Telephonic Communication Services (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供了一种视频会议中处理并发消费的方法、装置、设备和介质。该方法包括:确定视频会议中同时消费同一生产者的多个用户终端;根据所述多个用户终端连接的路由所属的SFU的情况,将所述多个用户终端划分为至少一个第一分组,其中每个SFU所连接的用户终端分为一个第一分组;根据每个第一分组下的用户终端所连接的路由将每个SFU所对应的第一分组用户终端进行再次划分为至少一个第二分组,其中每个路由所连接的用户终端分为一个第二分组;根据所述用户终端的第二分组情况为所述多个用户终端创建消费者。本申请实施例通过将参会人进行了两次分组,根据分组情况在进行消费者的创建,能够减少资源浪费的问题。
Description
技术领域
本申请涉及视频会议领域,具体而言,涉及一种视频会议中处理并发消费的方法、装置、设备和介质。
背景技术
随着网络技术的发展,视频会议越来越成为人们工作和生活社交交流中的重要的一种通讯方式。
在现有的视频会议系统中,当参会人开启音视频时,其他参会人需要消费媒体流。每个参会人都需要检查自己所在的路由是否能够消费媒体流。如果不能消费媒体流,则需要通过管道传输将媒体流从生产者所在的路由传输到消费者所在的路由。当有大量的用户同时需要消费同一个媒体流时,会存在资源浪费的问题。
因此,如何解决并发消费时资源浪费的问题,成为亟待解决的问题。
发明内容
本申请的一个实施例的目的在于提供一种视频会议中处理并发消费的方法、装置、设备和介质,通过本申请的实施例的技术方案可以减少并发消费时资源浪费的问题。
第一方面,本申请实施例提供了一种视频会议中处理并发消费的方法,应用于视频会议系统中的第一媒体转发服务器(Selective Forwarding Unit,SFU),所述视频会议系统包括至少一个SFU,第一SFU为所述至少一个SFU中的一个,所述方法包括:确定视频会议中同时消费同一生产者的多个用户终端;根据所述多个用户终端连接的路由所属的SFU的情况,将所述多个用户终端划分为至少一个第一分组,其中每个SFU所连接的用户终端分为一个第一分组;根据每个第一分组下的用户终端所连接的路由将每个SFU所对应的第一分组用户终端进行再次划分为至少一个第二分组,其中每个路由所连接的用户终端分为一个第二分组;根据所述用户终端的第二分组情况为所述多个用户终端创建消费者。
本申请实施通过将参会人连接的SFU和所连接的SFU下的路由对参会人进行了两次分组,根据分组情况在进行消费者的创建能够减少资源浪费的问题。
在一种实施方式中,所述根据所述用户终端的第二分组情况为所述多个用户终端创建消费者,包括:根据所述第二分组所在的第一分组情况,为所述第二分组对应的路由创建传输管道;使用所创建的传输管道为所述多个用户终端创建消费者。
在一种实施方式中,所述根据所述第二分组所在的第一分组情况,为所述第二分组对应的路由创建传输管道,包括:在所述第二分组所在的第一分组对应所述第一SFU时,为所述第二分组对应的路由与源路由之间创建源路由传输管道,所述源路由为所述生产者所连接的路由;其中,所述使用所创建的传输管道为所述多个用户终端创建消费者,包括:使用所述源路由传输管道为所对应的第二分组用户终端创建消费者。
在一种实施方式中,所述使用所述源路由传输管道为所对应的第二分组用户终端创建消费者,包括:使用所述源路由传输管道为所对应的路由进行生产者的管道传输;在所有的管道的生产者传输完成后,为所对应的第二分组用户终端创建消费者。
在一种实施方式中,所述根据所述第二分组所在的第一分组情况,为所述第二分组对应的路由创建传输管道,包括:在所述第二分组所在的第一分组对应其他SFU时,为所述第二分组对应的第一路由与源路由之间创建跨服务器传输管道,所述其他SFU为所述第一SFU之外的SFU;为所述第二分组对应的其他路由与所述第一路由之间创建中继路由传输管道,所述其他路由为所述其他SFU中除所述第一路由之外的路由;其中,所述使用所创建的传输管道为所述多个用户终端创建消费者,包括:使用所述跨服务器传输管道和所述中继路由传输管道为所对应的第二分组用户终端创建消费者。
在一种实施方式中,所述使用所述跨服务器传输管道和所述中继路由传输管道为所对应的第二分组用户终端创建消费者,包括:使用所述跨服务器传输管道为所述第一路由进行生产者的管道传输;使用所述中继路由传输管道为所述其他路由进行生产者的管道传输;在所有管道的生产者传输完成后,为所对应的第二分组用户终端创建消费者。
在一种实施方式中,所述确定视频会议中同时消费同一生产者的多个用户终端,包括:获取信令服务器发送的生产消费指示消息,所述生产消费指示消息用于指示用户终端的生产消费情况,所述生产消费指示消息是所述信令服务器根据用户终端发送的生产消费订阅消息生成的,所述生产消费订阅消息包括音视频流的生产者标识和消费者标识;根据所述生产消费指示消息确定频会议中同时消费同一生产者的多个用户终端。
第二方面,本申请实施例提供了一种视频会议中处理并发消费的装置,应用于视频会议系统中的第一媒体转发服务器SFU,所述视频会议系统包括至少一个SFU,第一SFU为所述至少一个SFU中的一个,所述装置包括:确定单元,用于确定视频会议中同时消费同一生产者的多个用户终端;划分单元,用于根据所述多个用户终端连接的路由所属的SFU的情况,将所述多个用户终端划分为至少一个第一分组,其中每个SFU所连接的用户终端分为一个第一分组;所述划分单元还用于根据每个第一分组下的用户终端所连接的路由将每个SFU所对应的第一分组用户终端进行再次划分为至少一个第二分组,其中每个路由所连接的用户终端分为一个第二分组;创建单元,用于根据所述用户终端的第二分组情况为所述多个用户终端创建消费者。
第三方面,本申请的一个实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面及第一方面的任一实施方式所述的方法。
第四方面,本申请的一个实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面及第一方面的任一实施方式所述的方法。
第五方面,本申请的一个实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面及第一方面的任一实施方式所述的方法。
附图说明
为了更清楚地说明本申请的一个实施例的技术方案,下面将对本申请的一个实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请的一个实施例提供的视频会议的系统示意图;
图2为本申请的一个实施例提供的视频会议中处理并发消费的方法流程示意图;
图3为本申请的一个实施例提供的视频会议中处理并发消费的方法示意图;
图4为本申请的一个实施例提供的视频会议中处理并发消费的装置示意图;
图5为本申请的一个实施例提供的一种电子设备示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
视频会议系统中,视频会议服务的服务端能承载的容量是整体服务的关键,由于现实中单台服务器的CPU、内存、带宽、硬盘输入输出IO等限制以及客户端的生产消费带宽等因素的制约,为了支持更多方会议需要级联多台服务器来处理一场会议的服务。
在现有的视频会议系统中,当参会人开启音视频,其他多个参会人需要消费该媒体流时,每个参会人都需要检查自己所在的路由是否能够消费媒体流。如果不能消费媒体流,则需要通过管道传输将媒体流从生产者所在的路由传输到消费者所在的路由。由于多个参会人同时检测,这就会存在多个参会人同时创建管道传输,造成资源浪费。
鉴于以上问题,本申请实施例通过将参会人连接的SFU和所连接的SFU下的路由对参会人进行了两次分组,根据分组情况再进行生产者的管道传输,同一路由下的参会人的生产者只需要一次管道传输即可完成生产者的创建,能够减少了大量的资源浪费以及资源争用和锁等待的问题。
以下,为了便于理解和说明,作为示例而非限定,以将本申请的实时通信的方法在视频会议系统中的执行过程和动作进行说明。
下面结合附图1示例性阐述本申请的一个实施例提供的视频会议的系统示意图。
如图1所示,本申请的一个实施例提供的会议系统包括:至少一个媒体转发服务器SFU和多个客户端。
应理解,图1所示的会议系统中仅示意出了包括两个SFU和四个客户端的情况,在实际应用中,SFU的个数和客户端的个数,可以灵活调整,本申请实施例并不限于此。
可选的,图1所示的会议系统还可以包括控制端,控制端也可以称为管理端或信令服务器,控制端用于与客户端进行信令交互来传递客户端之间连接的建立所需要的必要信息,同时控制端用于获取客户端的订阅关系,并基于订阅关系控制SFU创建生产者和消费者之间的传输通道。
本申请实施例中控制端的作用是作为一个中间人帮助双方在尽可能少的暴露隐私的情况下建立连接。控制端与客户端和SFU服务器间的通信方式可以使用任何方式例如,网络套接字(WebSocket) 或者可扩展标记语言超文本传输协议请求(XMLHttpRequest )等来交换彼此的令牌信息本申请实施例并不限于此。
本申请实时例中媒体转发服务器SFU也可以称为选择转发单元可以是媒体汤(Mediasoup)、简努斯(Janus)、吉特斯(Jitsi)、库伦拖(Kurento)或麦杜泽(Medooze)等,本申请实施例并不限于此,下文仅以SFU为Mediasoup为例进行说明。SFU服务器可以接受控制端的指令来进行资源的管控,例如SFU内路由间传输管道的创建以及跨SFU的传输管道的创建。应理解,SFU服务器也可以叫做SFU或者转发服务器或者媒体转发服务器,下文中如果没有特殊说明,SFU的几种叫法可以互相替换,本申请实施例对此不做限定。
应理解,本申请中,信令服务器和SFU可以是独立的两个设备,也可以是集成在一个设备上。在SFU和信令服务器集成在一起时,下文提到的信令服务器可以是与第一SFU集成在一起的信令服务器。
应理解,SFU不对音视频进行混流,收到某个终端共享的音视频流后,就直接将该音视频流转发给其他终端。它实际上就是一个音视频路由转发器。以SFU为媒体汤(Mediasoup)为例,它的核心功能是在生产者和消费者之间转发实时传输协议 (Real-timeTransport Protocol,RTP)数据包,它公开了一组应用程序编程接口API来管理工作进程(Worker),路由(Router),传输通道(Transport),生产者(Producers)和消费者(Consumers)等等。本申请中SFU管理多个worker(工作单元),通常一个SFU代表着一台服务器。Worker(工作单元)通常运行在一个CPU下,是服务器操作系统的一个子进程,worker直接管理Router(路由)。Worker表示在单个 CPU 内核中运行的Mediasoup C++子进程。它可以处理多个Router。Router(路由)操作生产者和消费者在Router(路由)之间传输音视频,通常理解上一个Router就是一个多方会议的房间,客户端通过生产者消费者通过Transport与Router连接,参与会议。其中,一路音频是一个生产者,一路视频是另外一个生产者,即如果一个Peer(成员)同时开启了摄像头和麦克风,那么将产生两个生产者。本申请实施例中路由之间通过传输管道进行生产者和消费者的传输。
本申请实施例中的客户端也可以称为用户终端、用户端或者用户设备或者终端设备,本申请实时例如没有特殊说明,用户终端的几个叫法可以互换。本申请实施例中终端设备可以安装有浏览器,可以通过浏览器进行实时通信,或者安装有APP或者小程序,通过APP或者小程序进行实时通信。本申请中终端设备可以包括智能手机、平板电脑、(personaldigital assistant,PDA个人数字助理)、计算机、游戏机、可穿戴设备、平板电脑(portableandroid device, PAD)等,本申请实施例并不限于此。
应理解,客户端上运行的操作系统可以是移动版的安卓(Android)、乌班图(Ubuntu)移动版、泰泽(Tizen)等基于Linux内核的操作系统以及Windows、Mac OS、Linux等桌面操作系统,但本发明并不限于此。
本申请实施例中,终端设备可以指接入终端、用户设备(User Equipment,UE)、用户单元、用户站、移 动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用 户装置。接入终端可以是蜂窝电话、无绳电话、会话启动协议(Session Initia tion Protocol,SIP)电话、无线本地环路 (Wireless Local Loop,WLL)站、个人数字处理 (Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到 无线调制解调器的其它处理设备、车载设备、可穿戴设备、5G网络中的终端设备或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)中的终端设备等。
下面结合附图2示例性阐述本申请的一个实施例提供的视频会议中处理并发消费的方法流程示意图。
如图2所示的方法应用于如图1所示的视频会议系统中,图2所示的方法可以由第一SFU执行,该第一SFU可以为视频会议系统包括的至少一个SFU中的任意一个SFU,可选的,该第一SFU可以为包括生产者的SFU。如图2所示的方法包括:
210,确定视频会议中同时消费同一生产者的多个用户终端。
具体而言,当存在某个用户加入会议,或者用户新开启摄像头或麦时,例如,主持人开启摄像头或者麦时,在存在多个用户同时订阅了该用户,消费该用户时,第一SFU要先确定该多个用户。
可选的,作为另一实施例,所述确定视频会议中同时消费同一生产者的多个用户终端,包括:获取信令服务器发送的生产消费指示消息,所述生产消费指示消息用于指示用户终端的生产消费情况,所述生产消费指示消息是所述信令服务器根据用户终端发送的生产消费订阅消息生成的,所述生产消费订阅消息包括音视频流的生产者标识和消费者标识;根据所述生产消费指示消息确定视频会议中同时消费同一生产者的多个用户终端。
具体而言,消费者可以通过用户终端向信令服务器发送信令,例如发送生产订阅消息,该生产订阅消息中可以包括生产者和订阅该生产者的消费者的标识。信令服务器在获取到多个终端的生产订阅消息后,能够清楚的知道哪个成员订阅了那个生产者,哪些生产者没有被订阅。信令服务器也可以确定出视频会议中同时消费同一生产者的多个用户终端。之后,信令服务器向第一SFU发送生成消费指示信息。应理解,所述生产指示消息用于指示用户终端的生产消费情况。此处生产消费情况指该用户终端是生产者还是消费者。在该用户终端是生产者时,信令服务器会告诉用户终端生产并发送对应的数据流,同时告诉媒体转发服务器接收该数据流。在用户终端为消费者时,信令服务器会告诉转发服务器向用户终端发送数据流,同时告诉用户终端接收该数据流。在用户终端和转发服务器均获取到生产指示消息后,用户终端和转发服务器按照信令服务器的指示进行数据流的传输。
应理解,此处生产消费指示消息中可以明确指示了生产者和同时消费该生产者的多个消费者,这种情况,第一SFU可以直接读取出订阅同一生产者的多个消费者;可选的,该生产消费指示消息中也可以仅指示了当前的所有终端的生产消费情况,第一SFU根据各个终端的生产消费情况来确定出订阅同一生产者的多个消费者。
220,根据所述多个用户终端连接的路由所属的SFU的情况,将所述多个用户终端划分为至少一个第一分组。
其中,每个SFU所连接的用户终端分为一个第一分组。
具体而言,可以根据SFU将多个用户终端进行分组,每个SFU对应一个第一分组。当存在多个SFU时,对应有多个第一分组。
230,根据每个第一分组下的用户终端所连接的路由将每个SFU所对应的第一分组用户终端进行再次划分为至少一个第二分组。
其中,每个路由所连接的用户终端分为一个第二分组。
具体而言,根据每个SFU下的路由情况,将每个第一分组再次划分为至少一个第二分组。
240,根据所述用户终端的第二分组情况为所述多个用户终端创建消费者。
本申请实施例通过将参会人连接的SFU和所连接的SFU下的路由对参会人进行了两次分组,根据分组情况再进行生产者的管道传输,同一路由下的参会人的生产者只需要一次管道传输即可完成生产者的创建,能够减少了大量的资源浪费以及资源争用和锁等待的问题。
可选的,作为另一实施例,所述根据所述用户终端的第二分组情况为所述多个用户终端创建消费者,包括:
根据所述第二分组所在的第一分组情况,为所述第二分组对应的路由创建传输管道;
使用所创建的传输管道为所述多个用户终端创建消费者。
下文根据第二分组是对应第一SFU还是其他SFU这两种情况。来分别描述为第二分组对应的路由创建传输管道的具体方案。
首先描述第二分组对应第一SFU的情况:可选的,作为另一实施例,所述根据所述第二分组所在的第一分组情况,为所述第二分组对应的路由创建传输管道,包括:在所述第二分组所在的第一分组对应所述第一SFU时,为所述第二分组对应的路由与源路由之间创建源路由传输管道,所述源路由为所述生产者所连接的路由。
其中,所述使用所创建的传输管道为所述多个用户终端创建消费者,包括:使用所述源路由传输管道为所对应的第二分组用户终端创建消费者。
也就是说对于生产者和消费者连接在同一服务器内但不同路由之间的情况,通过源路由传输管道进行生产者的管道传输。
可选的,作为另一实施例,所述使用所述源路由传输管道为所对应的第二分组用户终端创建消费者,包括:使用所述源路由传输管道为所对应的路由进行生产者的管道传输;在所有的管道的生产者传输完成后,为所对应的第二分组用户终端创建消费者。
下面描述第二分组对应其他SFU的情况:可替代的,作为另一实施例,所述根据所述第二分组所在的第一分组情况,为所述第二分组对应的路由创建传输管道,包括:
在所述第二分组所在的第一分组对应其他SFU时,为所述第二分组对应的第一路由与源路由之间创建跨服务器传输管道,所述其他SFU为所述第一SFU之外的SFU;为所述第二分组对应的其他路由与所述第一路由之间创建中继路由传输管道,所述其他路由为所述其他SFU中除所述第一路由之外的路由;其中,所述使用所创建的传输管道为所述多个用户终端创建消费者,包括:使用所述跨服务器传输管道和所述中继路由传输管道为所对应的第二分组用户终端创建消费者。
可选的,作为另一实施例,所述使用所述跨服务器传输管道和所述中继路由传输管道为所对应的第二分组用户终端创建消费者,包括:使用所述跨服务器传输管道为所述第一路由进行生产者的管道传输;使用所述中继路由传输管道为所述其他路由进行生产者的管道传输;在所有管道的生产者传输完成后,为所对应的第二分组用户终端创建消费者。
也就是说,对于生产者和消费者连接在不同服务器上的情况,进行生产者的跨服务器管道传输,创建跨服务器传输管道,并记录该路由为中继路由,使用跨服务器传输管道进行生产者的传输。对于生产者和消费者连接在不同服务器上的情况,其他路由寻找到本服务器内的中继路由,创建中继路由传输管道,并进行生产者的管道传输。最后,在所有的生产者传输完成后,需要消费的用户都能够消费到生产者,最后为所有消费用户创建消费者。
下面结合图3的例子描述本申请实施例的处理并发消费的方法。如图3所示的会议系统中包括两个媒体转发服务器:媒体转发服务器#1和媒体转发服务器#2,其中,两个媒体转发服务器上分别包括两个路由:路由#1和路由#2,在媒体转发服务器#1上参会用户#1和参会用户#3通过路由#1接入会议,参会用户#2和参会用户#N通过路由#2接入会议;在媒体转发服务器#2上参会用户#4和参会用户#6通过路由#1接入会议,参会用户#5和参会用户#N通过路由#2接入会议;参会用户#1为生产者,其生产视频和音频,其他参会用户为同时消费的消费者,生产者和消费者均通过对应的传输通道(Transport)连接路由。那么媒体转发服务器#1首先根据信令服务器发送的指令来确定生产消费情况,并基于转发服务器和路由情况来进行两次分组,并基于分组情况来创建传输管道,并在管道创建完成后进行生产者的传输并最后为所有参会用户创建消费者。如图3所示,具体的分组以及创建的管道和生产消费如下描述:
媒体转发服务器#1上的参会用户#2、参会用户#3和参会用户#N对应一个第一分组,参会用户#3为该第一分组上的一个第二分组,参会用户#2和参会用户#N为该第一分组上的另一个第二分组。在路由#1和路由#2之间创建有源路由传输管道,媒体转发服务器#2上的参会用户#4、参会用户#5、参会用户#6和参会用户#N对应另一个第一分组。其中,参会用户#4和参会用户#6为该第一分组上的一个第二分组,参会用户#5和参会用户#N为该第一分组上的另一个第二分组。在路由#1和路由#2之间创建有中继路由传输管道。在转发服务器#1的路由#1和转发服务器#2的路由#1之间创建有跨服务器传输管道。
应理解,图3所示的例子仅是示意性的,在实际应用中,一个视频会议中也可以仅有一个SFU或者有更多个SFU,一个SFU上可以仅有一个路由,也可以有更多个路由,本申请实施例并不限于此。
本申请实施例通过将参会人连接的SFU和所连接的SFU下的路由对参会人进行了两次分组,根据分组情况再进行生产者的管道传输,同一路由下的参会人的生产者只需要一次管道传输即可完成生产者的创建,能够减少了大量的资源浪费以及资源争用和锁等待的问题。
请参考图4,图4示出了本申请的一个实施例提供的视频会议中处理并发消费的装置示意图。图4所示的装置400可以为SFU,应理解,该装置400与上述方法实施例中的第一SFU对应,能够执行上述方法实施例涉及的第一SFU执行的各个步骤,该装置400的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。
图4所示的装置400包括至少一个能以软件或固件的形式存储于存储器中或固化在该装置中的软件功能模块,图4所示的装置400包括:确定单元410,用于确定视频会议中同时消费同一生产者的多个用户终端;划分单元420,用于根据所述多个用户终端连接的路由所属的SFU的情况,将所述多个用户终端划分为至少一个第一分组,其中每个SFU所连接的用户终端分为一个第一分组;所述划分单元420还用于根据每个第一分组下的用户终端所连接的路由将每个SFU所对应的第一分组用户终端进行再次划分为至少一个第二分组,其中每个路由所连接的用户终端分为一个第二分组;创建单元430,用于根据所述用户终端的第二分组情况为所述多个用户终端创建消费者。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
如图5所示,本申请的一个实施例提供一种电子设备500,该电子设备500包括:存储器510、处理器520以及存储在存储器510上并可在处理器520上运行的计算机程序,其中,处理器520通过总线530从存储器510读取程序并执行所述程序时可实现如上述任意实施例中由第一SFU执行的方法。可选的,图5所示的设备还可以包括收发器,该收发器可以用于数据流的发送和/或接收。可选的,图5所示的设备还可以包括其他硬件设备,本申请实施例并不限于此。
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现上述所示的由第一SFU执行的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
本申请的一个实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例中第一SFU执行的方法。
本申请的一个实施例还提供了一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如上述实施例提供的上述方法中的任意实施例中由第一SFU执行的方法。
应注意,本发明实施例中的处理器(例如,图5中的处理器)可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specificintegrated crcuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器(例如,图5中的存储器)可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例涉及到的应用程序包括安装在请求端上的任何应用,包括但不限于浏览器、电子邮件、即时消息服务、文字处理、键盘虚拟、窗口小部件(Widget)、加密、数字版权管理、语音识别、语音复制、定位(例如由全球定位系统提供的功能)、音乐播放等等。
应理解,本发明实施例中的收发单元或收发器也可以称为通信单元。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本发明实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digitalvideo disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在2个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本发明实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种视频会议中处理并发消费的方法,其特征在于,应用于视频会议系统中的第一媒体转发服务器SFU,所述视频会议系统包括至少一个SFU,第一SFU为所述至少一个SFU中的一个,所述方法包括:
确定视频会议中同时消费同一生产者的多个用户终端;
根据所述多个用户终端连接的路由所属的SFU的情况,将所述多个用户终端划分为至少一个第一分组,其中每个SFU所连接的用户终端分为一个第一分组;
根据每个第一分组下的用户终端所连接的路由将每个SFU所对应的第一分组用户终端进行再次划分为至少一个第二分组,其中每个路由所连接的用户终端分为一个第二分组;
根据所述用户终端的第二分组情况为所述多个用户终端创建消费者。
2.根据权利要求1所述的方法,其特征在于,所述根据所述用户终端的第二分组情况为所述多个用户终端创建消费者,包括:
根据所述第二分组所在的第一分组情况,为所述第二分组对应的路由创建传输管道;
使用所创建的传输管道为所述多个用户终端创建消费者。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二分组所在的第一分组情况,为所述第二分组对应的路由创建传输管道,包括:
在所述第二分组所在的第一分组对应所述第一SFU时,为所述第二分组对应的路由与源路由之间创建源路由传输管道,所述源路由为所述生产者所连接的路由;
其中,所述使用所创建的传输管道为所述多个用户终端创建消费者,包括:
使用所述源路由传输管道为所对应的第二分组用户终端创建消费者。
4.根据权利要求3所述的方法,其特征在于,所述使用所述源路由传输管道为所对应的第二分组用户终端创建消费者,包括:
使用所述源路由传输管道为所对应的路由进行生产者的管道传输;
在所有的管道的生产者传输完成后,为所对应的第二分组用户终端创建消费者。
5.根据权利要求2所述的方法,其特征在于,所述根据所述第二分组所在的第一分组情况,为所述第二分组对应的路由创建传输管道,包括:
在所述第二分组所在的第一分组对应其他SFU时,为所述第二分组对应的第一路由与源路由之间创建跨服务器传输管道,所述其他SFU为所述第一SFU之外的SFU;
为所述第二分组对应的其他路由与所述第一路由之间创建中继路由传输管道,所述其他路由为所述其他SFU中除所述第一路由之外的路由;
其中,所述使用所创建的传输管道为所述多个用户终端创建消费者,包括:
使用所述跨服务器传输管道和所述中继路由传输管道为所对应的第二分组用户终端创建消费者。
6.根据权利要求5所述的方法,其特征在于,所述使用所述跨服务器传输管道和所述中继路由传输管道为所对应的第二分组用户终端创建消费者,包括:
使用所述跨服务器传输管道为所述第一路由进行生产者的管道传输;
使用所述中继路由传输管道为所述其他路由进行生产者的管道传输;
在所有管道的生产者传输完成后,为所对应的第二分组用户终端创建消费者。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述确定视频会议中同时消费同一生产者的多个用户终端,包括:
获取信令服务器发送的生产消费指示消息,所述生产消费指示消息用于指示用户终端的生产消费情况,所述生产消费指示消息是所述信令服务器根据用户终端发送的生产消费订阅消息生成的,所述生产消费订阅消息包括音视频流的生产者标识和消费者标识;
根据所述生产消费指示消息确定频会议中同时消费同一生产者的多个用户终端。
8.一种视频会议中处理并发消费的装置,其特征在于,应用于视频会议系统中的第一媒体转发服务器SFU,所述视频会议系统包括至少一个SFU,第一SFU为所述至少一个SFU中的一个,所述装置包括:
确定单元,用于确定视频会议中同时消费同一生产者的多个用户终端;
划分单元,用于根据所述多个用户终端连接的路由所属的SFU的情况,将所述多个用户终端划分为至少一个第一分组,其中每个SFU所连接的用户终端分为一个第一分组;
所述划分单元还用于根据每个第一分组下的用户终端所连接的路由将每个SFU所对应的第一分组用户终端进行再次划分为至少一个第二分组,其中每个路由所连接的用户终端分为一个第二分组;
创建单元,用于根据所述用户终端的第二分组情况为所述多个用户终端创建消费者。
9.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器运行时执行如权利要求1-7中任意一项权利要求所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中,所述计算机程序被处理器运行时执行如权利要求1-7中任意一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311764094.5A CN117440127B (zh) | 2023-12-21 | 2023-12-21 | 一种视频会议中处理并发消费的方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311764094.5A CN117440127B (zh) | 2023-12-21 | 2023-12-21 | 一种视频会议中处理并发消费的方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117440127A true CN117440127A (zh) | 2024-01-23 |
CN117440127B CN117440127B (zh) | 2024-07-30 |
Family
ID=89548383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311764094.5A Active CN117440127B (zh) | 2023-12-21 | 2023-12-21 | 一种视频会议中处理并发消费的方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117440127B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011077839A (ja) * | 2009-09-30 | 2011-04-14 | Sharp Corp | 情報共有システム |
US20170180155A1 (en) * | 2015-12-18 | 2017-06-22 | Cisco Technology, Inc. | Service-Specific, Performance-Based Routing |
CN113271426A (zh) * | 2020-02-14 | 2021-08-17 | 杭州海康威视数字技术股份有限公司 | 视频会议系统及多级级联通信方法 |
US20220109717A1 (en) * | 2019-03-15 | 2022-04-07 | Koninklijke Kpn N.V. | Facilitating real-time transport of data streams |
CN115242760A (zh) * | 2022-07-20 | 2022-10-25 | 深圳市灵镜技术有限公司 | 一种基于WebRTC的SFU系统及方法 |
-
2023
- 2023-12-21 CN CN202311764094.5A patent/CN117440127B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011077839A (ja) * | 2009-09-30 | 2011-04-14 | Sharp Corp | 情報共有システム |
US20170180155A1 (en) * | 2015-12-18 | 2017-06-22 | Cisco Technology, Inc. | Service-Specific, Performance-Based Routing |
US20220109717A1 (en) * | 2019-03-15 | 2022-04-07 | Koninklijke Kpn N.V. | Facilitating real-time transport of data streams |
CN113271426A (zh) * | 2020-02-14 | 2021-08-17 | 杭州海康威视数字技术股份有限公司 | 视频会议系统及多级级联通信方法 |
CN115242760A (zh) * | 2022-07-20 | 2022-10-25 | 深圳市灵镜技术有限公司 | 一种基于WebRTC的SFU系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117440127B (zh) | 2024-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10887359B2 (en) | Parallel peer to peer connection establishment in webRTC conferencing | |
RU2005109315A (ru) | Система и способ для совместного использования объектов между компьютерами по сети | |
US8868658B2 (en) | Client assisted multicasting for audio and video streams | |
US11381914B2 (en) | Method and apparatus for controlling audio using asymmetric channel of audio conference | |
JP2021035057A (ja) | ユニキャストおよびマルチキャストを利用したグループ通話方法およびシステム | |
JP2020198636A (ja) | 効率的な呼処理のためのシステムおよび方法 | |
CN104901815A (zh) | 一种用户终端的分组方法、会议服务器、会议系统 | |
US10742929B2 (en) | Communication system | |
KR20200045205A (ko) | 화상 회의 서비스 방법 및 이를 수행하기 위한 장치 | |
CN117440127B (zh) | 一种视频会议中处理并发消费的方法、装置、设备和介质 | |
KR102545276B1 (ko) | 통신 단말 기반의 그룹 통화 보안 장치 및 방법 | |
US20150030147A1 (en) | Conference Multiplexing | |
US11800017B1 (en) | Encoding a subset of audio input for broadcasting conferenced communications | |
WO2016095510A1 (zh) | 一种路径选择方法、设备及系统 | |
CN112291573B (zh) | 直播流推送方法、装置、电子设备和计算机可读介质 | |
US10904301B2 (en) | Conference system and method for handling conference connection thereof | |
US11233797B2 (en) | Seamless guest access to spaces and meetings | |
CN116938897B (zh) | 一种用于会议的实时通信的方法和装置 | |
CN118283217A (zh) | 一种视频会议中分配工作进程的方法、装置、介质和产品 | |
CN112422881A (zh) | 一种自由组网的p2p视频会议方法 | |
Aranjo et al. | Review of real-time collaboration frameworks, libraries and products | |
CN118337763A (zh) | 一种视频会议中共享白板的方法、装置、介质和产品 | |
EP4401388A1 (en) | Method and system for managing multimedia exchange in tele-robiotics using dew computing | |
CN116896544A (zh) | 用于建立实时通信连接的方法、装置、设备和介质 | |
US20240146780A1 (en) | Video conference system interlinking method, apparatus, system, and computer program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |