CN109995741B - 一种网络直播中连麦实现方法及系统 - Google Patents
一种网络直播中连麦实现方法及系统 Download PDFInfo
- Publication number
- CN109995741B CN109995741B CN201810002279.5A CN201810002279A CN109995741B CN 109995741 B CN109995741 B CN 109995741B CN 201810002279 A CN201810002279 A CN 201810002279A CN 109995741 B CN109995741 B CN 109995741B
- Authority
- CN
- China
- Prior art keywords
- client
- invitation
- virtual room
- clients
- server
- 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.)
- Active
Links
Images
Classifications
-
- 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
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/4508—Management of client data or end-user data
Abstract
本发明提供一种网络直播中连麦实现方法及系统,所述的方法包括:C++服务器接收第一客户端发送的连麦邀请,所述连麦邀请中携带有至少一个第二客户端标识;将所述连麦邀请转发给所述至少一个第二客户端标识分别对应的第二客户端;在接收到第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间。本发明采用分布式服务器来实现多个客户端的连麦直播,实现了多个主播能够在同一个屏幕上进行视频互动。
Description
技术领域
本发明涉及网络直播技术领域,更具体地,涉及一种网络直播中连麦实现方法及系统。
背景技术
在网络直播领域,为了增加多个主播之间的互动,或者用户与主播之间的互动,多个客户端需要连麦直播。
而在传统的直播流程中,仅仅能够使得一个主播进行直播流程,无法实现两个主播甚至更多的主播同时在一个屏幕上进行互动直播的过程。或者,即使有能够实现两个主播连麦直播的技术,实现连麦直播的过程也比较缓慢,而且服务器的压力也比较大。
发明内容
本发明提供一种克服上述问题或者至少部分地解决上述问题的一种网络直播中连麦实现方法及系统。
根据本发明的一个方面,提供一种网络直播中连麦实现方法,包括:
C++服务器接收第一客户端向第二客户端发送的连麦邀请,其中,所述连麦邀请中携带有至少一个第二客户端标识;
将所述连麦邀请转发给所述至少一个第二客户端标识分别对应的的第二客户端;
在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间。
在上述技术方案的基础上,本发明还可以作如下改进。
进一步的,还包括:
在每一个客户端中设置一个开关状态信息,并在PHP服务器的数据库中存储每一个客户端的开关状态信息,所述开关状态信息表征该客户端是否允许其它客户端的连麦邀请;
以及在所述C++服务器接收第一客户端向第二客户端发送的连麦邀请之前还包括:
PHP服务器接收第一客户端发送的第一HTTP查询请求,其中,所述第一HTTP查询请求中携带有至少一个第二客户端标识;
根据所述至少一个第二客户端标识,从所述数据库中查询对应的每一个第二客户端的开关状态信息,并返回给第一客户端,以使第一客户端根据每一个第二客户端的开关状态信息确定能否向处于打开状态的第二客户端发出连麦邀请。
进一步的,还包括:
PHP服务器接收第一客户端或第二客户端的改变开关状态信息的第二HTTP请求,其中,所述第二HTTP请求中携带有改变后的开关状态信息;
根据所述改变后的开关状态信息,在数据库中修改所述第一客户端或第二客户端的开关状态信息。
进一步的,所述在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间之后还包括:
视频服务器对加入所述虚拟房间的第一客户端的视频和所有第二客户端的视频进行混流处理,并将混流处理后的视频流信息推送给第一客户端和所有的第二客户端,完成多个客户端的连麦直播。
进一步的,所述在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间还包括:
C++服务器将接收的至少一个第二客户端的同意连麦邀请消息转发给第一客户端,以使第一客户端在视频服务器中创建一个虚拟房间;
以及,C++服务器接收第一客户端上报的虚拟房间号,并将虚拟房间号转发给所有同意连麦邀请的第二客户端,以使第二客户端根据所述虚拟房间号加入虚拟房间。
进一步的,当所述连麦邀请中携带有一个第二客户端标识,所述将所述连麦邀请转发给所述至少一个第二客户端标识对应的每一个的第二客户端具体包括:C++服务器将所述连麦邀请转发给第二客户端标识对应的第二客户端;
相应的,所述在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间还包括:
C++服务器接收第二客户端上报的虚拟房间号,并将第二客户端的同意连麦邀请消息以及所述虚拟房间号转发给第一客户端,以使第一客户端根据所述虚拟房间号加入虚拟房间;
其中,若第二客户端同意连麦邀请,则在视频服务器中创建一个虚拟房间,并将虚拟房间号上报给C++服务器。
根据本发明的另一个方面,提供了一种网络直播中连麦实现系统,包括C++服务器和视频服务器,所述C++服务器包括:
接收模块,用于接收第一客户端发送的连麦邀请,其中,所述连麦邀请中携带有至少一个第二客户端标识;
转发模块,用于将所述连麦邀请转发给所述至少一个第二客户端标识对应的每一个第二客户端;
创建模块,用于在接收到第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间;
返回模块,用于将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间;
所述视频服务器,用于供所述C++服务器在其上创建虚拟房间。
进一步的,所述系统还包括PHP服务器;
所述PHP服务器,用于在数据库中存储每一个客户端的开关状态信息,所述开关状态信息表征该客户端是否允许其它客户端的连麦邀请;还用于接收第一客户端发送的第一HTTP查询请求,其中,所述第一HTTP查询请求中携带有至少一个第二客户端标识,根据所述至少一个第二客户端标识,从所述数据库中查询对应的每一个第二客户端的开关状态信息,并返回给第一客户端,以使第一客户端根据每一个第二客户端的开关状态信息确定能否向处于打开状态的第二客户端发出连麦邀请。
进一步的,所述视频服务器还用于:
对加入所述虚拟房间的第一客户端的视频和所有第二客户端的视频进行混流处理,并将混流处理后的视频流信息推送给第一客户端和所有的第二客户端,完成多个客户端的连麦直播。
根据本发明的又一个方面,提供了一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行网络直播中连麦实现方法。
本发明提供了一种网络直播中连麦实现方法及系统,本发明提供的网络直播中连麦实现方法及系统,采用分布式服务器来实现多个客户端的连麦直播,实现了多个主播能够在同一个屏幕上进行视频互动,极大的提高了用户的参与积极性及主播与用户之间的互动性。
附图说明
图1为本发明一个实施例的网络直播中连麦实现方法流程图;
图2为本发明一个实施例的网络直播中连麦实现系统连接框图;
图3为本发明另一个实施例的网络直播中连麦实现系统连接框图;
图4为本发明一个实施例的电子设备连接框图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
参见图1,提供了本发明一个实施例的网络直播中连麦实现方法,包括:C++服务器接收第一客户端向第二客户端发送的连麦邀请,其中,所述连麦邀请中携带有至少一个第二客户端标识;将所述连麦邀请转发给所述至少一个第二客户端标识对应的每一个的第二客户端;在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间。
在本实施例的实现多个客户端连麦直播的过程中,是采用分布式的多个服务器来完成的,第一客户端为连麦直播的发起者,当第一客户端希望发起连麦直播时,向C++服务器发送一条邀请第二客户端连麦直播的邀请,以下称为连麦邀请,其中,连麦邀请中携带有至少一个第二客户端标识,第二客户端标识可以为一个,也可以为多个,其中,一个第二客户端标识对应一个第二客户端。C++服务器接收到第一客户端的连麦邀请时,将连麦邀请转发给第二客户端标识对应的每一个第二客户端。每一个第二客户端接收到连麦邀请时,可以同意连麦邀请或者拒绝连麦邀请,并将同意连麦邀请或者拒绝连麦邀请的消息返回给C++服务器。当存在同意连麦邀请的第二客户端时,C++服务器在视频服务器上创建一个虚拟房间,并将虚拟房间号发送给第一客户端以及所有同意连麦邀请的第二客户端,使得第一客户端和所有同意连麦邀请的第二客户端根据虚拟房间号加入到虚拟房间中,这样所有同意连麦邀请的客户端就都加入到同一个虚拟房间了,可以在同一个虚拟房间中进行网络直播了。
在上述实施例的基础上,本发明的一个实施例中,还包括:在每一个客户端中设置一个开关状态信息,并在PHP服务器的数据库中存储每一个客户端的开关状态信息,所述开关状态信息表征该客户端是否允许其它客户端的连麦邀请。
在连麦直播的过程中,第二客户端为被邀请连麦直播的一方,如果没有做任何设置开关的设计,就会导致第二客户端可能无故被其它客户端发起连麦邀请并连接,这样会给第二客户端造成一定的困扰。为了解决这个问题,本实施例在每一个第二客户端中设置了一个开关状态信息switchFlag,该开关状态信息主要用于标记第二客户端是否允许其它客户端发起连麦邀请,若开关状态信息为关闭状态,则表明不允许其它客户端发起连麦邀请,若开关状态信息为打开状态,则表明允许其它客户端发起连麦邀请。该开关状态信息默认是关闭状态的,在PHP服务器的数据库中存储有每一个第二客户端的开关状态信息。
在第一客户端通过C++服务器发送连麦邀请之前,还会向PHP服务器发送查询第二客户端的开关状态信息的第一HTTP请求。PHP服务器接收第一客户端发送的第一HTTP查询请求,其中,所述第一HTTP查询请求中携带有至少一个第二客户端标识;根据所述至少一个第二客户端标识,从数据库中查询对应的每一个第二客户端的开关状态信息,并返回给第一客户端,以使第一客户端根据每一个第二客户端的开关状态信息确定是否向处于打开状态的第二客户端发出连麦邀请。
第一客户端需要与第二客户端发起连麦时,首先第一客户端会通过发送标准的HTTP(HyperText Transfer Protocol,超文本传输协议)请求给PHP(HypertextPreprocessor,超文本预处理器)服务器,请求查询第二客户端的开关状态信息。其中HTTP请求中携带有第二客户端的标识信息,即第二客户端的uuid(Universal ly UniqueIdentifier,通用唯一识别码)信息,第二客户端的标识信息可以有多个。PHP服务器接收到第一客户端发起的查询请求后,根据每一个第二客户端的标识信息去数据库中查询每一个第二客户端的开关状态信息,并将该开关状态信息通过json格式封装后返回给第一客户端。第一客户端通过对PHP服务器返回的封装后的第二客户端的开关状态信息进行标准的json解析获取第二客户端的开关状态信息。第一客户端根据每一个第二客户端的开关状态信息,确定是否要发起连麦邀请,若所有的第二客户端的开关状态信息均为关闭状态,此时第一客户端直接通过弹框提示第二客户端没有打开连麦开关,无法进行连麦过程。如果其中有一部分第二客户端的开关状态信息为关闭状态,另一部分第二客户端的开关状态信息为打开状态,则此时第二客户端根据具体情况确定是否发车连麦邀请,若要发出连麦邀请,则向C++服务器发送连麦邀请,其中,连麦邀请中携带有开关状态信息处于打开状态的第二客户端标识,即第二客户端只向允许其它客户端连麦的第二客户端发送连麦邀请。
在上述各实施例的基础上,本发明的一个实施例中,还包括:PHP服务器接收第一客户端或第二客户端的改变开关状态信息的第二HTTP请求,其中,所述第二HTTP请求中携带有改变后的开关状态信息;根据所述改变后的开关状态信息,在数据库中修改所述第一客户端或第二客户端的开关状态信息。
在初始状态下,每一个第二客户端的开关状态信息默认是关闭的,当打开第二客户端的开关时,第二客户端会向PHP服务器发送一条开关状态改变的HTTP请求,该请求通过JSON格式的数据发送给PHP服务器端。PHP服务端接收到第二客户端发送过来的请求后,首先会通过标准的JSON解析该数据,并将第二客户端所对应的开关状态信息通过sql语句写入到PHP服务器端的数据库中。
在上述各实施例的基础上,本发明的一个实施例中,所述以使第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间之后还包括:视频服务器对加入所述虚拟房间的第一客户端的视频和所有第二客户端的视频进行混流处理,并将混流处理后的视频流信息推送给第一客户端和所有的第二客户端,完成多个客户端的连麦直播。
当在视频服务器上创建了一个虚拟房间,并且第一客户端和所有同意连麦邀请的第二客户端均加入了该虚拟房间后,视频服务器需要对第一客户端的视频和所有同意连麦邀请的第二客户端的视频进行混流处理,并将混流处理后的视频流信息推送给第一客户端以及加入虚拟房间的每一个第二客户端,完成多个客户端的连麦直播。
在上述各实施例的基础上,本发明的一个实施例中,所述在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间还包括:C++服务器将接收的至少一个第二客户端的同意连麦邀请消息转发给第一客户端,以使第一客户端在视频服务器中创建一个虚拟房间;以及,C++服务器接收第一客户端上报的虚拟房间号,并将虚拟房间号转发给所有同意连麦邀请的第二客户端,以使第二客户端根据所述虚拟房间号加入虚拟房间。
在前述的实施例中,当C++服务器接收到第二客户端同意连麦邀请消息时,由C++服务器在视频服务器上先创建一个虚拟房间,然后再告知第一客户端和同意连麦的第二客户端接入创建的虚拟房间中。除此之外,C++服务器还可以将接收的第二客户端的同意连麦邀请消息转发给第一客户端,第一客户端接收到第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号发送给C++服务器,由C++服务器将虚拟房间号转发给所有同意连麦邀请的第二客户端,每一个第二客户端根据虚拟房间号加入到虚拟房间中。
本实施例与前述实施例的区别在于,前述实施例是由C++服务器在视频服务器上创建共同的虚拟房间,而本实施例是由第一客户端在视频服务器上创建虚拟房间,本实施例与前述实施例采用不同的方式。
在上述各实施例的基础上,本发明的一个实施例中,当所述连麦邀请中携带有一个第二客户端标识,所述将所述连麦邀请转发给所述至少一个第二客户端标识对应的每一个的第二客户端具体包括:C++服务器将所述连麦邀请转发给第二客户端标识对应的第二客户端;相应的,所述在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间还包括:C++服务器接收第二客户端上报的虚拟房间号,并将第二客户端的同意连麦邀请消息以及所述虚拟房间号转发给第一客户端,以使第一客户端根据所述虚拟房间号加入虚拟房间;其中,若第二客户端同意连麦邀请,则在视频服务器中创建一个虚拟房间,并将虚拟房间号上报给C++服务器。其中,上述各实施例描述的是多个客户端之间的连麦,当第一客户端的连麦邀请中携带的第二客户端标识只有一个时,表示只有第一客户端和一个第二客户端这两个客户端连麦。这种情况下,当C++服务器接收到第一客户端的连麦邀请时,将连麦邀请转发给对应的第二客户端,若第二客户端同意连麦,则在视频服务器上创建一个虚拟房间,并将同意连麦要求消息和虚拟房间号一并发送给C++服务器。C++服务器将第二客户端的同意连麦邀请消息和虚拟房间号转发给第一客户端,第一客户端根据虚拟房间号加入到虚拟房间中,这样第一客户端和第二客户端均加入到了同一个虚拟房间。
在此,需要说明的是,多个第二客户端并不是一定要同时加入同一个虚拟房间,也就是说第一客户端可以先和其中的一个或多个第二客户端建立连麦,连麦直播一段时间后,另外的一个第二客户端或多个第二客户端再加入到虚拟房间中,再所有加入到虚拟房间中的客户端进行连麦直播。
参见图2,提供了本发明一个实施例的网络直播中连麦实现系统,包括C++服务器1和视频服务器2,所述C++服务器1包括接收模块11、转发模块12、创建模块13和返回模块14。
接收模块11,用于接收第一客户端4发送的连麦邀请,其中,所述连麦邀请中携带有至少一个第二客户端5标识。
转发模块12,用于将所述连麦邀请转发给所述至少一个第二客户端标识分别对应的第二客户端5。
创建模块13,用于在接收到第二客户端5的同意连麦邀请消息时,在视频服务器2上创建一个虚拟房间。
返回模块14,用于将虚拟房间号返回给第一客户端4以及所有同意连麦邀请的第二客户端5,以使第一客户端4和所有同意连麦邀请的第二客户端5根据所述虚拟房间号加入该虚拟房间。
视频服务器2,用于供所述C++服务器1在其上创建虚拟房间。
参见图3,网络直播中连麦实现系统还包括PHP服务器3,所述PHP服务器3,用于在数据库中存储每一个客户端的开关状态信息,所述开关状态信息表征该客户端是否允许其它客户端的连麦邀请;以及,还用于接收第一客户端4发送的第一HTTP查询请求,其中,所述第一HTTP查询请求中携带有至少一个第二客户端标识,根据所述至少一个第二客户端标识,从数据库中查询分别对应的第二客户端5的开关状态信息,并返回给第一客户端4,以使第一客户端4根据每一个第二客户端5的开关状态信息确定向处于打开状态的第二客户端5发出连麦邀请。
所述视频服务器2,还用于对加入所述虚拟房间的第一客户端4的视频和所有第二客户端5的视频进行混流处理,并将混流处理后的视频流信息推送给第一客户端4和所有的第二客户端5,完成多个客户端的连麦直播。
参见图4,为本发明一种电子设备,包括:处理器(processor)401、存储器(memory)402和总线403;其中,所述处理器401和存储器402通过所述总线403完成相互间的通信。
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:接收第一客户端发送的连麦邀请,其中,所述连麦邀请中携带有至少一个第二客户端标识;将所述连麦邀请转发给所述至少一个第二客户端标识分别对应的第二客户端;在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分方法。
本发明提供的网络直播中连麦实现方法及系统,采用分布式服务器来实现多个客户端的连麦直播,实现了多个主播能够在同一个屏幕上进行视频互动,其中,采用分布式服务器来负责不同环节的处理,相比采用一个服务器来处理所有的环节,减少服务器的带宽压力;另外,采用多个服务器分开处理,形成分布式管理,当一个服务器宕机时,另外的服务器还能正常工作,只需要维护一个服务器上的事务即可。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种网络直播中连麦实现方法,其特征在于,包括:
C++服务器接收第一客户端向第二客户端发送的连麦邀请,其中,所述连麦邀请中携带有至少一个第二客户端标识;
将所述连麦邀请转发给所述至少一个第二客户端标识分别对应的第二客户端;
在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间;
还包括:
在每一个客户端中设置一个开关状态信息,并在PHP服务器的数据库中存储每一个客户端的开关状态信息,所述开关状态信息表征该客户端是否允许其它客户端的连麦邀请;
以及在所述C++服务器接收第一客户端向第二客户端发送的连麦邀请之前还包括:
PHP服务器接收第一客户端发送的第一HTTP查询请求,其中,所述第一HTTP查询请求中携带有至少一个第二客户端标识;
根据所述至少一个第二客户端标识,从所述数据库中查询对应的每一个第二客户端的开关状态信息,并返回给第一客户端,以使第一客户端根据每一个第二客户端的开关状态信息确定能否向处于打开状态的第二客户端发出连麦邀请。
2.如权利要求1所述的网络直播中连麦实现方法,其特征在于,还包括:
PHP服务器接收第一客户端或第二客户端的改变开关状态信息的第二HTTP请求,其中,所述第二HTTP请求中携带有改变后的开关状态信息;
根据所述改变后的开关状态信息,在数据库中修改所述第一客户端或第二客户端的开关状态信息。
3.如权利要求1或2所述的网络直播中连麦实现方法,其特征在于,所述将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间之后还包括:
视频服务器对加入所述虚拟房间的第一客户端的视频和所有第二客户端的视频进行混流处理,并将混流处理后的视频流信息推送给第一客户端和所有的第二客户端,完成多个客户端的连麦直播。
4.如权利要求1或2所述的网络直播中连麦实现方法,其特征在于,所述在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间还包括:
C++服务器将接收的至少一个第二客户端的同意连麦邀请消息转发给第一客户端,以使第一客户端在视频服务器中创建一个虚拟房间;
以及,C++服务器接收第一客户端上报的虚拟房间号,并将虚拟房间号转发给所有同意连麦邀请的第二客户端,以使第二客户端根据所述虚拟房间号加入虚拟房间。
5.如权利要求1或2所述的网络直播中连麦实现方法,其特征在于,当所述连麦邀请中仅携带有一个第二客户端标识,所述将所述连麦邀请转发给所述至少一个第二客户端标识对应的每一个的第二客户端具体包括:C++服务器将所述连麦邀请转发给第二客户端标识对应的第二客户端;
相应的,所述在接收到至少一个第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间,并将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间还包括:
C++服务器接收第二客户端上报的虚拟房间号,并将第二客户端的同意连麦邀请消息以及所述虚拟房间号转发给第一客户端,以使第一客户端根据所述虚拟房间号加入虚拟房间;
其中,若第二客户端同意连麦邀请,则在视频服务器中创建一个虚拟房间,并将虚拟房间号上报给C++服务器。
6.一种网络直播中连麦实现系统,其特征在于,包括C++服务器和视频服务器,所述C++服务器包括:
接收模块,用于接收第一客户端发送的连麦邀请,其中,所述连麦邀请中携带有至少一个第二客户端标识;
转发模块,用于将所述连麦邀请转发给所述至少一个第二客户端标识分别对应的第二客户端;
创建模块,用于在接收到第二客户端的同意连麦邀请消息时,在视频服务器上创建一个虚拟房间;
返回模块,用于将虚拟房间号返回给第一客户端以及所有同意连麦邀请的第二客户端,以便第一客户端和所有同意连麦邀请的第二客户端根据所述虚拟房间号加入该虚拟房间;
所述视频服务器,用于供所述C++服务器在其上创建虚拟房间;
所述系统还包括PHP服务器;
所述PHP服务器,用于在数据库中存储每一个客户端的开关状态信息,所述开关状态信息表征该客户端是否允许其它客户端的连麦邀请;还用于接收第一客户端发送的第一HTTP查询请求,其中,所述第一HTTP查询请求中携带有至少一个第二客户端标识,根据所述至少一个第二客户端标识,从所述数据库中查询对应的每一个第二客户端的开关状态信息,并返回给第一客户端,以使第一客户端根据每一个第二客户端的开关状态信息确定能否向处于打开状态的第二客户端发出连麦邀请。
7.如权利要求6所述的网络直播中连麦实现系统,其特征在于,所述视频服务器还用于:
对加入所述虚拟房间的第一客户端的视频和所有第二客户端的视频进行混流处理,并将混流处理后的视频流信息推送给第一客户端和所有的第二客户端,完成多个客户端的连麦直播。
8.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1-5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002279.5A CN109995741B (zh) | 2018-01-02 | 2018-01-02 | 一种网络直播中连麦实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810002279.5A CN109995741B (zh) | 2018-01-02 | 2018-01-02 | 一种网络直播中连麦实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109995741A CN109995741A (zh) | 2019-07-09 |
CN109995741B true CN109995741B (zh) | 2021-07-23 |
Family
ID=67128964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810002279.5A Active CN109995741B (zh) | 2018-01-02 | 2018-01-02 | 一种网络直播中连麦实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109995741B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110910860B (zh) * | 2019-11-29 | 2022-07-08 | 北京达佳互联信息技术有限公司 | 线上ktv实现方法、装置、电子设备及存储介质 |
CN111385349B (zh) * | 2020-02-07 | 2021-07-16 | 北京达佳互联信息技术有限公司 | 通信处理方法、装置、终端、服务器及存储介质 |
CN111479136B (zh) * | 2020-03-03 | 2023-04-07 | 视联动力信息技术股份有限公司 | 一种监控资源的传输方法和装置 |
CN111372092B (zh) * | 2020-03-04 | 2022-03-04 | 北京字节跳动网络技术有限公司 | 通信链路建立方法、装置、设备及存储介质 |
CN111385666B (zh) * | 2020-03-04 | 2022-06-03 | 北京字节跳动网络技术有限公司 | 通信链路建立方法、装置、设备及存储介质 |
CN111405308B (zh) * | 2020-03-24 | 2022-05-03 | 北京世纪好未来教育科技有限公司 | 一种发送直播音视频数据的方法和装置 |
CN113115114B (zh) * | 2021-03-02 | 2022-12-27 | 北京达佳互联信息技术有限公司 | 互动方法、装置、设备及存储介质 |
CN115484468B (zh) * | 2021-06-15 | 2024-01-09 | 北京字节跳动网络技术有限公司 | 一种连麦系统、方法、装置、设备及存储介质 |
CN113630610A (zh) * | 2021-07-02 | 2021-11-09 | 武汉斗鱼鱼乐网络科技有限公司 | 多人连麦的状态控制方法、存储介质、电子设备及系统 |
CN113766259B (zh) * | 2021-08-17 | 2023-01-20 | 北京达佳互联信息技术有限公司 | 一种信息同步系统、方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103841353A (zh) * | 2014-02-24 | 2014-06-04 | 广州华多网络科技有限公司 | 视频交互方法、终端、服务器及系统 |
CN106254899A (zh) * | 2016-08-16 | 2016-12-21 | 网宿科技股份有限公司 | 一种直播连麦的控制方法和系统 |
CN106454537A (zh) * | 2016-10-14 | 2017-02-22 | 广州华多网络科技有限公司 | 一种视频直播方法及相关设备 |
WO2017041557A1 (zh) * | 2015-09-08 | 2017-03-16 | 腾讯科技(深圳)有限公司 | 显示控制方法及装置 |
CN106686397A (zh) * | 2016-12-31 | 2017-05-17 | 北京星辰美豆文化传播有限公司 | 一种多人网络直播方法、装置及其电子设备 |
CN107071584A (zh) * | 2017-03-14 | 2017-08-18 | 北京潘达互娱科技有限公司 | 直播连麦方法及装置 |
CN107205157A (zh) * | 2017-05-17 | 2017-09-26 | 贵阳朗玛信息技术股份有限公司 | 基于iptv的视频直播方法、装置及系统 |
CN107295354A (zh) * | 2017-05-15 | 2017-10-24 | 武汉斗鱼网络科技有限公司 | 一种网络直播中连麦直播建立方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3272126A1 (en) * | 2015-03-20 | 2018-01-24 | Twitter, Inc. | Live video stream sharing |
US20160294891A1 (en) * | 2015-03-31 | 2016-10-06 | Facebook, Inc. | Multi-user media presentation system |
CN106713945B (zh) * | 2016-12-06 | 2020-05-12 | 广州华多网络科技有限公司 | 客户端连麦直播处理方法和装置、直播服务器及直播系统 |
-
2018
- 2018-01-02 CN CN201810002279.5A patent/CN109995741B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103841353A (zh) * | 2014-02-24 | 2014-06-04 | 广州华多网络科技有限公司 | 视频交互方法、终端、服务器及系统 |
WO2017041557A1 (zh) * | 2015-09-08 | 2017-03-16 | 腾讯科技(深圳)有限公司 | 显示控制方法及装置 |
CN106254899A (zh) * | 2016-08-16 | 2016-12-21 | 网宿科技股份有限公司 | 一种直播连麦的控制方法和系统 |
CN106454537A (zh) * | 2016-10-14 | 2017-02-22 | 广州华多网络科技有限公司 | 一种视频直播方法及相关设备 |
CN106686397A (zh) * | 2016-12-31 | 2017-05-17 | 北京星辰美豆文化传播有限公司 | 一种多人网络直播方法、装置及其电子设备 |
CN107071584A (zh) * | 2017-03-14 | 2017-08-18 | 北京潘达互娱科技有限公司 | 直播连麦方法及装置 |
CN107295354A (zh) * | 2017-05-15 | 2017-10-24 | 武汉斗鱼网络科技有限公司 | 一种网络直播中连麦直播建立方法及装置 |
CN107205157A (zh) * | 2017-05-17 | 2017-09-26 | 贵阳朗玛信息技术股份有限公司 | 基于iptv的视频直播方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109995741A (zh) | 2019-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109995741B (zh) | 一种网络直播中连麦实现方法及系统 | |
US11237791B2 (en) | Method, device and system for controlling screen projection | |
CN112738140B (zh) | 一种基于WebRTC的视频流传输方法、装置、存储介质和设备 | |
CN111427527B (zh) | 投屏方法、装置、设备及计算机可读存储介质 | |
US20110122873A1 (en) | Method for converting between unicast sessions and a multicast session | |
CN109067578B (zh) | 一种组播快速切换的方法和装置 | |
EP2302866B1 (en) | A method and apparatus for controlling the multimedia conference by the application server | |
CN111479121A (zh) | 一种基于流媒体服务器的直播方法及系统 | |
US20200169774A1 (en) | Control method and device | |
CN113923470B (zh) | 直播流处理方法及装置 | |
WO2016165584A1 (zh) | 一种终端之间的通信方法和装置 | |
CN112929595B (zh) | 一种网络会议融合系统及方法 | |
WO2017181601A1 (zh) | 直播流的处理方法、装置、电子设备及系统 | |
CN103179213A (zh) | 基于点对点代理机制的家庭媒体资源传输方法及系统 | |
CN105959732A (zh) | 一种推送电视节目的方法和装置 | |
EP3399725B1 (en) | Multimedia stream multicasting method and device | |
CN111737029A (zh) | 一种服务端、数据推送方法、数据推送系统 | |
CN112291501B (zh) | 一种视频会议控制方法及装置 | |
CN114845124B (zh) | 基于WebSocket同步控制的机顶盒直播方法 | |
CN115379279A (zh) | 多屏联动的交互方法及装置、系统、存储介质、电子设备 | |
CN112423001A (zh) | 一种直播处理方法、装置、终端设备和存储介质 | |
CN110474781B (zh) | 一种组播数据转发的方法及装置 | |
CN101305623B (zh) | 用于确定具有控制功能的pt服务器的方法和装置 | |
CN112511884A (zh) | 一种音视频流的混流控制方法、系统和存储介质 | |
CN113381864B (zh) | 数字视听场所控制方法、系统和存储介质 |
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 |