CN113422921A - 基于K8s集群的音/视频通信系统、方法、介质及计算设备 - Google Patents
基于K8s集群的音/视频通信系统、方法、介质及计算设备 Download PDFInfo
- Publication number
- CN113422921A CN113422921A CN202110682410.9A CN202110682410A CN113422921A CN 113422921 A CN113422921 A CN 113422921A CN 202110682410 A CN202110682410 A CN 202110682410A CN 113422921 A CN113422921 A CN 113422921A
- Authority
- CN
- China
- Prior art keywords
- audio
- video
- processing module
- forwarding module
- module
- 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
Images
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
- 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
-
- 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/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于K8s集群的音/视频通信系统、方法、介质及计算设备,该系统包括:至少包括运行在同一个逻辑主机上的音/视频转发模块和音/视频处理模块;所述音/视频转发模块,被配置为从任一客户端接收音/视频数据,并按预设通信方式将所述音/视频数据发送至所述音/视频处理模块或其他客户端;所述音/视频处理模块被配置为对接收到的音/视频数据进行处理,并将处理后的音/视频数据按照预设通信方式发送至所述音/视频转发模块,以使所述音/视频转发模块将处理后的音/视频数据转发至其他客户端。利用本系统进行多人视频通话,能够减少音/视频转发模块和音/视频处理模块之间在通信上的消耗,从而可以优化多人视频通信时的带宽和延迟。
Description
技术领域
本发明涉及WebRTC的多人视频通话领域,尤其涉及一种基于K8s集群的音/视频通信系统、方法、介质及计算设备。
背景技术
WebRTC(网页即时通信系统)是一个支持网页浏览器进行实时语音对话或视频对话的API。WebRTC提供了音视频会议的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台通讯包括Windows、Linux、iOS以及Android。标准的WebRTC是基于点对点协议进行视频通话的,这种标准协议的情况在一对一视频通话时效果是很好的,但是一旦出现多对多的视频通话情况就往往无法适应带宽和终端处理能力。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种基于K8s集群的音/视频通信系统、介质及计算设备,旨在解决背景技术中所提到的问题。
为实现上述目的,本发明提供一种基于K8s集群的音/视频通信系统,包括:
至少包括运行在同一个逻辑主机上的音/视频转发模块和音/视频处理模块;
所述音/视频转发模块,被配置为从任一客户端接收音/视频数据,并按预设通信方式将所述音/视频数据发送至所述音/视频处理模块或其他客户端;
所述音/视频处理模块被配置为对接收到的音/视频数据进行处理,并将处理后的音/视频数据按照预设通信方式发送至所述音/视频转发模块,以使所述音/视频转发模块将处理后的音/视频数据转发至其他客户端。
可选地,所述预设通信方式包括:本地回环通信或IPC通信。
可选地,所述音/视频转发模块和所述音/视频处理模块还被配置为共用一个网络命名空间和/或共用一个IPC命名空间。
可选地,所述音/视频处理模块还被配置为,基于客户端发送音/视频数据和/或客户端接收音/视频数据时的指令,判断接收到的音/视频数据是否需要进行处理;
若是,则通过预设方式将所述音/视频数据发送至所述音/视频处理模块进行对应处理;
若否,则转发至其他客户终端。
可选地,所述音/视频转发模块和所述音/视频处理模块被配置在K8s集群的同一个Pod内。
可选地,所述音/视频转发模块为路由转发容器,所述音/视频处理模块为音/视频制作容器。
可选地,所述音/视频处理模块至少用于以下之一的处理:音频处理、视频处理、字幕处理和录像及存储。
本发明还提出一种基于K8s集群的音/视频通信方法,应用于音/视频通信系统,所述音/视频通信系统至少包括运行在同一个逻辑主机上的音/视频转发模块和音/视频处理模块,该方法包括:
响应于接收到任一客户端发送的音/视频数据,判断发送和/或接收所述音/视频数据的客户端,是否选择进行音/视频处理,
若是,则将所述音/视频数据通过所述音/视频转发模块按照预设通信方式发送至所述音/视频处理模块,以进行相应的处理;以及
将处理后的音/视频数据按照预设通信方式回传至所述音/视频转发模块;
通过所述音/视频转发模块将处理后的音/视频数据转发至其他客户端;
若否,则由所述音/视频转发模块将所述音/视频数据转发至其他客户端。
可选地,该方法还包括:创建所述音/视频转发模块和所述音/视频处理模块;
将所述音/视频发模块和所述音/视频处理模块部署在K8s集群上;
对所述音/视频转发模块和所述音/视频处理模块进行网络配置,以使所述音/视频转发模块和所述音/视频处理模块运行在同一逻辑主机上,并按照预设通信方式进行通信。
可选地,对所述音/视频转发模块和所述音/视频处理模块进行网络配置,以使所述音/视频转发模块和所述数据处理模块运行在同一逻辑主机上,并按照预设通信方式进行通信,包括:
获取K8s集群的yaml配置文件;
按照预设方式更新所述yaml配置文件,以将所述音/视频转发模块和所述音/视频处理模块配置在同一个Pod内。
可选地,该方法还包括:
建立所述音/视频转发模块和所述音/视频处理模块的共享文件卷,以使所述音/视频转发模块和所述音/视频处理模块能够通过所述共享文件卷进行IPC通信。
本发明还提出一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
本发明还提出一种计算设备,所述计算设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述的方法。
通过以上描述可知,本发明提出的基于K8s集群的音/视频通信系统,通过将具有转发功能的音/视频转发模块和具有处理功能的音/视频处理模块配置在同一个逻辑主机上,音/视频转发模块仅仅用来对视频通话时的音/视频数据进行转发,而对音/视频数据的处理均由音/视频处理模块来完成,而音/视频转发模块和音/视频处理模块在同一个逻辑主机上运行,因此二者之间不会占用额外的带宽,从而可以减少多人视频通话时通信上的消耗,优化的带宽和延迟问题,进而助力视频语音系统的其他辅助功能。
附图说明
图1是本发明基于K8s集群的音/视频通信方法一实施例的流程示意图;
图2是本发明基于K8s集群的音/视频通信系统一实施例的结构示意图;
图3是本发明基于K8s集群的音/视频通信系统中的本地回环通信的示意图;
图4是本发明基于K8s集群的音/视频通信系统中的IPC通信的示意图;
图5是本发明一种存储介质的结构示意图;
图6是本发明一种计算设备的结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、系统、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种基于K8s集群的音/视频通信系统、方法、介质及计算设备。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
发明人研究发现,在WebRTC网页即时通信中,路由转发服务器(SFU)最核心的特点是把自己“伪装”成了一个WebRTC的Peer客户端,WebRTC的其他客户端其实并不知道自己通过P2P连接过去的是一台真实的客户端还是一台服务器,本领域通常把这种连接称之为P2S,即:Peer to Server。除了“伪装”成一个WebRTC的Peer客户端外,路由转发服务器还有一个最重要的能力就是具备one-to-many的能力,即可以将一个客户端的数据转发到其他多个客户端。所以多人对多人视频通话将会占有较多的带宽和音视频编解码资源。
在webrtc多人视频通信的时候,路由转发服务器作为音/视频转发模块、音/视频制作服务器作为音/视频处理模块,在多节点部署的时候,路由转发服务器和音/视频制作服务器之间的音/视频传输就产生了额外的通信代价。因此发明人利用k8s的Pod分别构建路由转发容器和音/视频制作容器,并将路由转发容器和音/视频制作容器配置在同一个Pod内,在一个Pod中,共用一个网络以及共用一个IPC命名空间,这样就减少了这两个容器间的通信代价,又保持系统的解耦性。
示例性系统
本示例性实施方式提出一种基于K8s集群的音/视频通信系统,如图2所示,该系统包括:至少包括运行在同一个逻辑主机上的音/视频转发模块和音/视频处理模块;
所述音/视频转发模块,被配置为从任一客户端接收音/视频数据,并按预设通信方式将所述音/视频数据发送至所述音/视频处理模块或其他客户端;
所述音/视频处理模块被配置为对接收到的音/视频数据进行处理,并将处理后的音/视频数据按照预设通信方式发送至所述音/视频转发模块,以使所述音/视频转发模块将处理后的音/视频数据转发至其他客户端。
其中,音/视频转发模块,具有路由转发功能,比如可以采用SFU容器(SelectiveForwarding Unit路由转发容器),能够对各个客户端的音/视频数据进行路由转发;音/视频处理模块具有音/视频处理功能,比如可以采用AVP容器(音/视频制作容器),具有录像、储存、美颜、滤镜、字幕处理等功能;音/视频转发模块和音/视频处理模块运行在同一个逻辑主机上,如将SFU容器和AVP容器设置在K8s集群的同一个Pod内,位于同一个Pod内,SFU容器和AVP容器就可以位于同一个逻辑主机下,此时SFU容器和AVP容器之间按照预设通信方式进行通信就不会占用额外的带宽。
如图2所示场景中,在进行多人视频通话时,包括三个不同的客户端A、B、C,A、B、C将各自的音/视频画面发送至音/视频转发模块,音/视频转发模块将三者的音/视频画面按照预设通信方式转发给音/视频处理模块,音/视频处理模块对其进行处理后,再按通过预设方式回传至音/视频转发模块,如本地回环通信和IPC通信,在本实施例中,采用相同的通信方式进行音/视频数据的发送和回传,最后由音/视频转发模块将处理后的音/视频画面转发至其他客户端,比如,将A的音/视频画面转发至B和C,将B的音/视频画面转发至A和C,将C的音/视频画面转发至A和B。在此过程中,音/视频处理模块只进行音/视频数据的转发,而对音/视频数据进行编码、解码、美颜等处理工作均由音/视频处理模块完成,且音/视频处理模块和音/视频转发模块运行在同一个逻辑主机上,因此二者之间通信不会占用额外的带宽,从而减少了音/视频转发模块和音/视频处理模块间的通信代价。另一方面采用容器化部署,不需要针对部署的环境不同而对容器作出更改,只需构建一次SFU容器和AVP容器,使二者在Pod上能够运行,那么在K8s集群便可运行,而且基于K8s自动化的容器编排工具帮助管理,也进一步节省人力成本。
在本实施方式的另一个实施例中,所述预设通信方式包括:本地回环通信或IPC通信。
在本实施方式的另一个实施例中,将音/视频转发模块和音/视频处理模块被配置在K8s集群的同一个Pod内,以使所述音/视频转发模块和所述音/视频处理模块被配置为共用一个网络命名空间和/或共用一个IPC命名空间。音/视频转发模块和音/视频处理模块共用一个网络命名空间,即共用一个IP地址和端口空间,共用一个储存,故而在一个Pod内的音/视频转发模块和音/视频处理模块能够高效的通信,而又不会产生额外的带宽,同时,Pod还可以将紧耦合的音/视频转发模块和音/视频处理模块当做一个实体来管理。
接下来分别对本系统的本地回环通信和IPC通信进行示例性说明。
如预设通信方式为本地回环通信,参考图3,具体如下:
第一步:首先需要创建音/视频转发模块和音/视频处理模块,比如创建SFU容器和AVP容器。而后将创建的音/视频转发模块和音/视频处理模块部署在K8s集群上。接下来对所述音/视频转发模块和所述音/视频处理模块进行搭建本地回环通信:
第二步:利用K8s的yaml配置文件将所述音/视频转发模块和所述音/视频处理模块配置在同一个pod内,使得两个容器运行在一个逻辑主机上。
而后,进行第三步:更新K8s的声名式配置文件。包括更新K8s的声名式配置文件的内容,如更新版本号为V1、类型选择为Pod类型、元数据配置名称为SFU-AVP Pod,处理标签为一个键值对,以及更新镜像名、容器暴露端口号等。
更新完成声名式配置文件后,K8s使用这个声名式配置文件就可以启动该设置了音/视频转发模块和音/视频处理模块的Pod,音/视频转发模块和音/视频处理模块在该Pod内,由K8s来维护并共享同一个网络协议栈。
最后进行第四步:设置协议栈的IP地址和端口号。此时,只需在该Pod内,设置协议栈本身的IP地址和端口号就可以实现音/视频转发模块和音/视频处理模块之间的通信。
上述配置完成后,当IP层接收到目的地址为127.0.0.1的音/视频数据(音视频数据)时,无需调用网卡驱动进行二次封装,就可以直接将音/视频转发到本机IP层进行处理。具体地,音/视频转发模块和客户端利用veth0和veth1组成网桥进行相互之间的音/视频数据传输,当音/视频转发模块分别接收来多个自客户端的音/视频数据时,可以通过本机IP层直接转发至音/视频处理模块进行音/视频处理,音/视频制作容器处理完毕后,对音/视频数据进行重新封装再传输给音/视频转发模块,再由音/视频转发模块实现一对多的将处理后的音/视频数据转发到其他的客户端。
在另一个实施例中,将音/视频转发模块和音/视频处理模块配置成IPC通信,参照图4所示,具体如下:
IPC通信的配置方式与本地网络回环相比,第一步至第四步与上述本地回环通信配置方式相同,不同的是还需进行第五步:更新共享文件卷,并使音/视频转发模块和所述音/视频处理模块通过共享文件卷进行文件挂载。具体地,在配置完成第四步,设置协议栈的IP地址和端口号后,进行更新共享文件卷,如:使用Unix Domain Socket的IPC的通信方式,则需要更新一个unix:///xxxx.sock的共享文件卷,更新完共享文件卷之后,将音/视频转发模块和音/视频处理模块通过该共享文件卷进行挂载,从而两个模块之间就可以通过该共享文件进行通信。IPC通信与本地回环通信相比,在处理完成回传的时候,无需对音/视频数据进行封装校验,故而通信效率更快。
在本实施方式的另一个实施例中,音/视频处理模块还被配置为,基于客户端发送和/或接收音/视频数据时的指令,判断接收到的音/视频数据是否需要进行处理,若是,则通过预设方式将所述音/视频数据发送至所述音/视频处理模块进行对应处理;若否,则转发至其他客户终端。具体地,上述已经阐述了将音/视频处理模块和音/视频转发模块设于同一个Pod内,并分别阐述了配置本地回环通信和IPC通信的具体方法,那么进行上述初始化配置过程后,就可以进行多人视频通话。
首先通过音/视频转发模块与其他客户端建立连接,由音/视频转发模块与客户端进行通信,并将通信内容转发到其他订阅了这个视频通话的音/视频通信系统终端上,每一个接受这个订阅的音/视频通信系统终端,本身即是发布者也是接收者。
当客户端作为发布者时,在其向音/视频转发模块发送音/视频数据时,可以选择是否对其发送的音/视频数据进行处理,比如美颜、添加字幕、变声等等;当音/视频转发模块接收到客户端发送的音视频数据后,需要判断发送这个音/视频数据的客户端,在发送时的是否选择了音/视频处理,如果有,则通过IPC通信或者本地回环通信的方式,将该音/视频数据发送到音/视频处理模块进行乡音处理,而后,经过处理后以同样的通信方式回传至音/视频转发模块,再由音/视频转发模块将处理过的音视频数据转发至其他订阅了的客户端上。
在另一实施例中,当一客户端作为接收者,也可以在接收音/视频数据之前进行选择,比如选择则是否需要接收到的音/视频数据已经经过美颜处理、变声处理等,那么音/视频转发模块在向作为接收者的客户端转发音/视频数据前,需要判断接收的客户端是否选择了音/视频处理,若是,则按照上述方法,对音/视频数据进行转发处理,而后将处理后的音/视频数据再转发至相应的客户端。
其中,所述音/视频处理模块至少用于以下之一的处理:音频处理、视频处理、字幕处理、录像及存储。比如:数据处理容器可以进行录像存储、美颜滤镜、字幕处理、渲染处理、变声处理等等。
例如:
在进行美颜滤镜效果处理时,从音/视频转发模块,将音/视频数据通过127.0.0.1的本地回环通信或者通过unix domain socket的IPC通信传输到音/视频处理模块中,减少了从音/视频转发模块发送到从音/视频处理模块可能产生占用带宽和时间延迟的问题;
在进行字幕效果处理时,从音/视频转发模块,将音/视频数据通过127.0.0.1的本地回环通信或者通过unix domain socket的IPC通信传输到音/视频处理模块中,同样减少了从音/视频转发模块发送到从音/视频处理模块可能产生占用带宽和时间延迟的问题;
进行录像保存时,从音/视频转发模块,将音/视频数据通过127.0.0.1的本地回环通信或者通过unix domain socket的IPC通信传输到音/视频处理模块中进行转码切片存储,减少了从音/视频转发模块发送到从音/视频处理模块可能产生占用带宽和时间延迟的问题;
之后,当音/视频处理模块对于音/视频数据的处理完成后,重新封装(利用IPC通信则无需封装)好后再传输给音/视频转发模块,音/视频转发模块再转发到所有订阅了相关的客户端。
通过以上描述可知,本发明中的音/视频转发模块在基于音/视频通信系统的多方通信架构中,相比于其它架构,音/视频转发模块将自己“伪装”成一个Peer客户端,仅负责转发,而不直接做转码、编码、解码等算力消耗高的工作。通过将音/视频转发模块和音/视频处理模块运行在同一个逻辑主机上,如配置在同一个Pod内,然后利用共用网络命名空间和IPC命名空间的特点,减少通信上的消耗,优化的带宽和延迟问题,进而助力视频语音系统的其他辅助功能,如录像存储、美颜滤镜效果和实时字幕处理等功能。
示例性方法
本示例性实施方式提出一种基于K8s集群的音/视频通信方法,应用于音/视频通信系统,所述音/视频通信系统包括运行在同一个逻辑主机上的音/视频转发模块和音/视频处理模块,该方法包括:
响应于接收到任一客户端发送的音/视频数据,判断发送和/或接收所述音/视频数据的客户端,是否选择进行音/视频处理,
若是,则进行步骤S400:将所述音/视频数据通过所述音/视频转发模块按照预设通信方式发送至所述音/视频处理模块,以进行相应的处理;以及将处理后的音/视频数据按照预设通信方式回传至所述音/视频转发模块;
步骤S500:通过所述音/视频转发模块将处理后的音/视频数据转发至其他客户端;
若否,则进行步骤S600:由所述音/视频转发模块将所述音/视频数据转发至其他客户端。
具体地,本方法可以应用在网页音/视频通信或独立客户端的音/视频通信系统,本发明技术方案对具体运用在网页还是独立客户端不做限制,以应用在网页通信系统为例,首先需要进行初始化设置,方法步骤如下:
步骤S100:创建音/视频转发模块和音/视频处理模块。
步骤S200:将所述音/视频转发模块和所述音/视频处理模块部署在K8s集群上。
步骤S300:对所述音/视频转发模块和所述音/视频处理模块进行网络配置,以使所述音/视频转发模块和所述音/视频处理模块运行在同一逻辑主机上,并按照所述预设通信方式进行通信。
在初次使用本系统时,需要进行步骤S100、S200、S300的网络构建,在初始构建完成后,之后进行网页音/视频通信时就无需再进行构建,只需进行判断步骤即可。
在本实施方式的另一个实施例中,所述方法还包括:
获取K8s集群的yaml配置文件;
按照预设方式更新所述yaml配置文件,以将所述音/视频转发模块和所述音/视频处理模块配置在同一个Pod内。
在本实施方式的另一个实施例中,所述方法还包括:
建立所述音/视频转发模块和所述音/视频处理模块的共享文件卷,以使所述音/视频转发模块和所述音/视频处理模块能够通过所述共享文件卷进行IPC通信。
示例性介质
在介绍了本发明示例性实施方式的方法、介质和系统之后,接下来,参考图5对本发明示例性实施方式的计算机可读存储介质进行说明,请参考图5,其示出的计算机可读存储介质为光盘70,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如响应于接收到任一客户端发送的音/视频数据,判断发送和/或接收所述音/视频数据的客户端,是否选择进行音/视频处理,若是,则将所述音/视频数据通过所述音/视频转发模块按照预设通信方式发送至所述音/视频处理模块,以进行相应的处理;以及将处理后的音/视频数据按照预设通信方式回传至所述音/视频转发模块;通过所述音/视频转发模块将处理后的音/视频数据转发至其他客户端;若否,则由所述音/视频转发模块将所述音/视频数据转发至其他客户端;各步骤的具体实现方式在此不再重复说明。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
示例性计算设备
在介绍了本发明示例性实施方式的方法、系统和介质之后,接下来,参考图6对本发明示例性实施方式的计算设备。
图6示出了适于用来实现本发明实施方式的示例性计算设备80的框图,该计算设备80可以是计算机系统或服务器。图6显示的计算设备80仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算设备80的组件可以包括但不限于:一个或者多个处理器或者处理单元801,系统存储器802,连接不同系统组件(包括系统存储器802和处理单元801)的总线803。
计算设备80典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备80访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器802可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)8021和/或高速缓存存储器8022。计算设备70可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM8023可以用于读写不可移动的、非易失性磁介质(图6中未显示,通常称为“硬盘驱动器”)。尽管未在图6中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线803相连。系统存储器802中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块8024的程序/实用工具8025,可以存储在例如系统存储器802中,且这样的程序模块8024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块8024通常执行本发明所描述的实施例中的功能和/或方法。
计算设备80也可以与一个或多个外部设备804(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口进行。并且,计算设备80还可以通过网络适配器806与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图6所示,网络适配器806通过总线803与计算设备80的其它模块(如处理单元801等)通信。应当明白,尽管图6中未示出,可以结合计算设备80使用其它硬件和/或软件模块。
处理单元801通过运行存储在系统存储器802中的程序,从而执行各种功能应用以及数据处理,例如,响应于接收到任一客户端发送的音/视频数据,判断发送和/或接收所述音/视频数据的客户端,是否选择进行音/视频处理,若是,则将所述音/视频数据通过所述音/视频转发模块按照预设通信方式发送至所述音/视频处理模块,以进行相应的处理;以及将处理后的音/视频数据按照预设通信方式回传至所述音/视频转发模块;通过所述音/视频转发模块将处理后的音/视频数据转发至其他客户端;若否,则由所述音/视频转发模块将所述音/视频数据转发至其他客户端;各步骤的具体实现方式在此不再重复说明。应当注意,尽管在上文详细描述中提及了基于K8s集群的音/视频通信系统的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、系统和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
通过以上描述,本发明实施例,提供以下技术方案,但不仅限于此:
1.一种基于K8s集群的音/视频通信系统,至少包括运行在同一个逻辑主机上的音/视频转发模块和音/视频处理模块;
所述音/视频转发模块,被配置为从任一客户端接收音/视频数据,并按预设通信方式将所述音/视频数据发送至所述音/视频处理模块或其他客户端;
所述音/视频处理模块被配置为对接收到的音/视频数据进行处理,并将处理后的音/视频数据按照预设通信方式发送至所述音/视频转发模块,以使所述音/视频转发模块将处理后的音/视频数据转发至其他客户端。
2.技术方案1所述的基于K8s集群的音/视频通信系统,其中,所述预设通信方式包括:本地回环通信或IPC通信。
3.如技术方案1或2所述的基于K8s集群的音/视频通信系统,其中,所述音/视频转发模块和所述音/视频处理模块还被配置为共用一个网络命名空间和/或共用一个IPC命名空间。
4.如技术方案1-3任一项所述的基于K8s集群的音/视频通信系统,其中,所述音/视频处理模块还被配置为,基于客户端发送和/或接收音/视频数据时的指令,判断接收到的音/视频数据是否需要进行处理;
若是,则通过预设方式将所述音/视频数据发送至所述音/视频处理模块进行对应处理;
若否,则转发至其他客户终端。
5.如技术方案1-4任一项所述的基于K8s集群的音/视频通信系统,其中,所述音/视频转发模块和所述音/视频处理模块被配置在K8s集群的同一个Pod内。
6.如技术方案1-5任一项所述的基于K8s集群的音/视频通信系统,其中,所述音/视频转发模块为路由转发容器,所述音/视频处理模块为音/视频制作容器。
7.如技术方案1-6任一项所述的基于K8s集群的音/视频通信系统,其中,所述音/视频处理模块至少用于以下之一的处理:音频处理、视频处理、字幕处理和录像及存储。
8.一种基于K8s集群的音/视频通信方法,应用于音/视频通信系统,所述音/视频通信系统至少包括运行在同一个逻辑主机上的音/视频转发模块和音/视频处理模块,该方法包括:
响应于接收到任一客户端发送的音/视频数据,判断发送和/或接收所述音/视频数据的客户端,是否选择进行音/视频处理,
若是,则将所述音/视频数据通过所述音/视频转发模块按照预设通信方式发送至所述音/视频处理模块,以进行相应的处理;以及
将处理后的音/视频数据按照预设通信方式回传至所述音/视频转发模块;
通过所述音/视频转发模块将处理后的音/视频数据转发至其他客户端;
若否,则由所述音/视频转发模块将所述音/视频数据转发至其他客户端。
9.如技术方案8所述的基于K8s集群的音/视频通信方法,其中,还包括:创建所述音/视频转发模块和所述音/视频处理模块;
将所述音/视频发模块和所述音/视频处理模块部署在K8s集群上;
对所述音/视频转发模块和所述音/视频处理模块进行网络配置,以使所述音/视频转发模块和所述音/视频处理模块运行在同一逻辑主机上,并按照预设通信方式进行通信。
10.如技术方案8或9所述的基于K8s集群的音/视频通信方法,对所述音/视频转发模块和所述音/视频处理模块进行网络配置,以使所述音/视频转发模块和所述数据处理模块运行在同一逻辑主机上,并按照预设通信方式进行通信,包括:
获取K8s集群的yaml配置文件;
按照预设方式更新所述yaml配置文件,以将所述音/视频转发模块和所述音/视频处理模块配置在同一个Pod内。
11.如技术方案8-10任一项所述的基于K8s集群的音/视频通信方法,其中,还包括:
建立所述音/视频转发模块和所述音/视频处理模块的共享文件卷,以使所述音/视频转发模块和所述音/视频处理模块能够通过所述共享文件卷进行IPC通信。
12.一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如技术方案8-11中任一项所述的方法。
13.一种计算设备,所述计算设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如技术方案8-11中任一项所述的方法。
Claims (10)
1.一种基于K8s集群的音/视频通信系统,至少包括运行在同一个逻辑主机上的音/视频转发模块和音/视频处理模块;
所述音/视频转发模块,被配置为从任一客户端接收音/视频数据,并按预设通信方式将所述音/视频数据发送至所述音/视频处理模块或其他客户端;
所述音/视频处理模块被配置为对接收到的音/视频数据进行处理,并将处理后的音/视频数据按照预设通信方式发送至所述音/视频转发模块,以使所述音/视频转发模块将处理后的音/视频数据转发至其他客户端。
2.如权利要求1所述的基于K8s集群的音/视频通信系统,其中,所述预设通信方式包括:本地回环通信或IPC通信。
3.如权利要求1所述的基于K8s集群的音/视频通信系统,其中,所述音/视频转发模块和所述音/视频处理模块还被配置为共用一个网络命名空间和/或共用一个IPC命名空间。
4.如权利要求1-3任一项所述的基于K8s集群的音/视频通信系统,其中,所述音/视频处理模块还被配置为,基于客户端发送和/或接收音/视频数据时的指令,判断接收到的音/视频数据是否需要进行处理;
若是,则通过预设方式将所述音/视频数据发送至所述音/视频处理模块进行对应处理;
若否,则转发至其他客户终端。
5.一种基于K8s集群的音/视频通信方法,应用于音/视频通信系统,所述音/视频通信系统至少包括运行在同一个逻辑主机上的音/视频转发模块和音/视频处理模块,该方法包括:
响应于接收到任一客户端发送的音/视频数据,判断发送和/或接收所述音/视频数据的客户端,是否选择进行音/视频处理,
若是,则将所述音/视频数据通过所述音/视频转发模块按照预设通信方式发送至所述音/视频处理模块,以进行相应的处理;以及
将处理后的音/视频数据按照预设通信方式回传至所述音/视频转发模块;
通过所述音/视频转发模块将处理后的音/视频数据转发至其他客户端;
若否,则由所述音/视频转发模块将所述音/视频转数据发至其他客户端。
6.如权利要求5所述的基于K8s集群的音/视频通信方法,其中,还包括:创建所述音/视频转发模块和所述音/视频处理模块;
将所述音/视频发模块和所述音/视频处理模块部署在K8s集群上;
对所述音/视频转发模块和所述音/视频处理模块进行网络配置,以使所述音/视频转发模块和所述音/视频处理模块运行在同一逻辑主机上,并按照预设通信方式进行通信。
7.如权利要求6所述的基于K8s集群的音/视频通信方法,对所述音/视频转发模块和所述音/视频处理模块进行网络配置,以使所述音/视频转发模块和所述数据处理模块运行在同一逻辑主机上,并按照预设通信方式进行通信,包括:
获取K8s集群的yaml配置文件;
按照预设方式更新所述yaml配置文件,以将所述音/视频转发模块和所述音/视频处理模块配置在同一个Pod内。
8.如权利要求7所述的基于K8s集群的音/视频通信方法,其中,还包括:
建立所述音/视频转发模块和所述音/视频处理模块的共享文件卷,以使所述音/视频转发模块和所述音/视频处理模块能够通过所述共享文件卷进行IPC通信。
9.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求5-8中任一项所述的方法。
10.一种计算设备,其特征在于:所述计算设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求5-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110682410.9A CN113422921B (zh) | 2021-06-18 | 2021-06-18 | 基于K8s集群的音/视频通信系统、方法、介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110682410.9A CN113422921B (zh) | 2021-06-18 | 2021-06-18 | 基于K8s集群的音/视频通信系统、方法、介质及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113422921A true CN113422921A (zh) | 2021-09-21 |
CN113422921B CN113422921B (zh) | 2023-04-21 |
Family
ID=77789220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110682410.9A Active CN113422921B (zh) | 2021-06-18 | 2021-06-18 | 基于K8s集群的音/视频通信系统、方法、介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422921B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020091805A1 (en) * | 2000-01-14 | 2002-07-11 | Microsoft Corporation | Method and system for dynamically purposing a computing device |
US20160057484A1 (en) * | 2012-05-04 | 2016-02-25 | Sony Corporation | Receiving audio/video content |
CN109257344A (zh) * | 2018-09-06 | 2019-01-22 | 广州高清视信数码科技股份有限公司 | 一种基于Docker容器技术的WebRTC媒体网关及其互通方法 |
CN111541860A (zh) * | 2019-12-30 | 2020-08-14 | 宁波菊风系统软件有限公司 | 一种实时音频传输系统及其使用方法 |
US20210119820A1 (en) * | 2017-08-11 | 2021-04-22 | Harmonic, Inc. | Virtual Access Hub |
-
2021
- 2021-06-18 CN CN202110682410.9A patent/CN113422921B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020091805A1 (en) * | 2000-01-14 | 2002-07-11 | Microsoft Corporation | Method and system for dynamically purposing a computing device |
US20160057484A1 (en) * | 2012-05-04 | 2016-02-25 | Sony Corporation | Receiving audio/video content |
US20210119820A1 (en) * | 2017-08-11 | 2021-04-22 | Harmonic, Inc. | Virtual Access Hub |
CN109257344A (zh) * | 2018-09-06 | 2019-01-22 | 广州高清视信数码科技股份有限公司 | 一种基于Docker容器技术的WebRTC媒体网关及其互通方法 |
CN111541860A (zh) * | 2019-12-30 | 2020-08-14 | 宁波菊风系统软件有限公司 | 一种实时音频传输系统及其使用方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113422921B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9577953B2 (en) | Determination of a suitable target for an initiator by a control plane processor | |
CN113614697A (zh) | 减少无服务器函数启动延迟的机制 | |
US11095716B2 (en) | Data replication for a virtual networking system | |
KR20150013860A (ko) | 클라이언트 없는 클라우드 컴퓨팅 | |
CN106657180B (zh) | 用于云服务的信息传输方法、装置、终端设备及系统 | |
CN107547623B (zh) | 应用数据传输方法、装置、应用服务器和应用代理服务器 | |
CN109451014B (zh) | 一种WebService代理系统及其透明代理方法 | |
US11177974B2 (en) | Consistent provision of member node group information on virtual overlay network | |
US12074918B2 (en) | Network-based Media Processing (NBMP) workflow management through 5G Framework for Live Uplink Streaming (FLUS) control | |
CN113467970B (zh) | 云计算系统中的跨安全区域的资源访问方法及电子设备 | |
CN114501593B (zh) | 网络切片接入方法、装置、系统和存储介质 | |
CN114281263B (zh) | 容器集群管理系统的存储资源处理方法、系统和设备 | |
CN112333017A (zh) | 一种服务配置方法、装置、设备及存储介质 | |
US9946493B2 (en) | Coordinated remote and local machine configuration | |
EP3631639B1 (en) | Communications for field programmable gate array device | |
EP3857826B1 (en) | Flexible unnumbered destination tunnels for virtual networks | |
CN113383515A (zh) | 实时通信的设备增强 | |
CN113422921A (zh) | 基于K8s集群的音/视频通信系统、方法、介质及计算设备 | |
CN106100953A (zh) | PCIe 设备共享网络的生成方法、装置及系统 | |
EP4000239B1 (en) | 3rd generation partnership project (3gpp) framework for live uplink streaming (flus) sink capabilities determination | |
JP2023522785A (ja) | 調和総合プロキシサービス | |
CN112699184B (zh) | 信息协同方法、装置、存储介质及服务器 | |
US11910412B2 (en) | Media sink capabilities description | |
US12069126B2 (en) | Service request handling | |
US20240015232A1 (en) | Bound service request handling |
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 |