CN106534877B - 一种发送媒体流的方法及装置 - Google Patents
一种发送媒体流的方法及装置 Download PDFInfo
- Publication number
- CN106534877B CN106534877B CN201610937655.0A CN201610937655A CN106534877B CN 106534877 B CN106534877 B CN 106534877B CN 201610937655 A CN201610937655 A CN 201610937655A CN 106534877 B CN106534877 B CN 106534877B
- Authority
- CN
- China
- Prior art keywords
- media stream
- server
- client
- stream server
- network information
- 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
Classifications
-
- 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
- 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/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- 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/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- 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/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/64—Addressing
- H04N21/6402—Address allocation for clients
-
- 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/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种发送媒体流的方法及装置,属于互联网通信领域。所述方法包括:获取直播页面,所述直播页面包括汇聚服务器的域名地址;如果所述直播页面为主播直播页面,则根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,所述推流就绪通知消息用于请求所述汇聚服务器从媒体流服务器群中选择第一媒体流服务器;接收所述汇聚服务器发送的所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;根据所述第一网络信息,向所述第一媒体流服务器发送第一媒体流,以使需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流。本发明能在Web直播时对大量观众进行直播。
Description
技术领域
本发明涉及互联网通信领域,特别涉及一种发送媒体流的方法及装置。
背景技术
随着互联网技术的发展,可以使用Web(网页)页面进行直播。在做直播时主播对应的第一终端采集音视频数据形成媒体流,第一终端向观众对应的第二终端发送该媒体流,第二终端通过Web页面播放该媒体流。
Web页面包括用于播放媒体流的Flash播放器或直接插件等客户端。在做直播之前第一终端需要开启该Web页面,第二终端也需要开启该Web页面,且第一终端的Web页面中的客户端与第二终端的Web页面中的客户端建立连接。然后,第一终端通过该连接向第二终端发送直播过程中形成的媒体流,以使第二终端中的客户端播放该媒体流。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在做直播时主播对应的第一终端需要与观众对应的第二终端建立连接,这样如果观众较多时,第一终端就需要建立较多的连接,而第一终端又无法维护大量的连接,所以在Web直播时无法对大量观众进行直播。
发明内容
为了能在Web直播时对大量观众进行直播,本发明提供了一种发送媒体流的方法及装置。所述技术方案如下:
第一方面,本发明提供了一种发送媒体流的方法,所述方法包括:
获取直播页面,所述直播页面包括汇聚服务器的域名地址;
如果所述直播页面为主播直播页面,则根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,所述推流就绪通知消息用于请求所述汇聚服务器从媒体流服务器群中选择第一媒体流服务器;
接收所述汇聚服务器发送的所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
根据所述第一网络信息,向所述第一媒体流服务器发送第一媒体流,以使需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流。
可选的,所述直播页面包括用于发送媒体流的客户端,所述根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,包括:
将所述汇聚服务器的域名地址传递给所述用于发送媒体流的客户端,
触发所述用于发送媒体流的客户端根据所述域名地址连接所述汇聚服务器;
连接成功后向所述汇聚服务器发送推流就绪通知消息。
可选的,所述推流就绪通知消息携带所述第一媒体流的流名称;所述根据所述第一网络信息,向所述媒体流服务器发送第一媒体流,包括:
根据所述第一网络信息连接所述第一媒体流服务器;
连接成功后接收所述第一媒体流服务器发送的所述流名称,所述第一媒体流服务器发送的流名称是接收所述汇聚服务器发送的;
向所述媒体流服务器发送所述流名称对应的所述第一媒体流。
可选的,所述直播页面还包括至少一个第二媒体流服务器的标识;所述方法还包括:
如果所述直播页面为观众直播页面,则根据所述至少一个第二媒体流服务器中的一第二媒体流服务器的标识,从所述汇聚服务器中获取所述第二媒体流服务器的第一网络信息;
根据所述第二媒体流服务器的第一网络信息连接所述第二媒体流服务器,从所述第二媒体流服务器中获取并播放媒体流。
第二方面,本发明提供了一种发送媒体流的方法,所述方法包括:
与用于发送媒体流的客户端建立连接;
通过所述连接接收所述客户端发送的推流就绪通知消息;
从媒体流服务器群中选择第一媒体流服务器,获取所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
向所述客户端发送所述第一媒体流服务器的第一网络信息,所述第一网络信息用于所述客户端向所述第一媒体流服务器发送第一媒体流,以使用于需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流。
可选的,所述方法还包括:
接收需要播放媒体流的客户端发送的第二媒体流的标识,根据所述第二媒体流的标识,从存储的标识与第一网络信息的对应关系中获取所述第二媒体流服务器的第一网络信息,向所述客户端发送所述第二媒体流服务器的第一网络信息。
可选的,所述方法还包括:
在与媒体流服务器群中的媒体流服务器建立连接时,获取所述媒体流服务器的第一网络信息以及为所述媒体流服务器分配标识,存储所述媒体流服务器的第一网络信息和标识的对应关系。
第三方面,本发明提供了一种发送媒体流的装置,所述装置包括:
处理模块,用于获取直播页面,所述直播页面包括汇聚服务器的域名地址;
发送模块,用于如果所述直播页面为主播直播页面,则根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,所述推流就绪通知消息用于请求所述汇聚服务器从媒体流服务器群中选择第一媒体流服务器;
接收模块,用于接收所述汇聚服务器发送的所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址,
所述发送模块,还用于根据所述第一网络信息,向所述第一媒体流服务器发送第一媒体流,以使需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流。
可选的,所述直播页面包括用于发送媒体流的客户端,
所述发送模块,用于将所述汇聚服务器的域名地址传递给所述用于发送媒体流的客户端,触发所述用于发送媒体流的客户端根据所述域名地址连接所述汇聚服务器;连接成功后向所述汇聚服务器发送推流就绪通知消息。
可选的,所述推流就绪通知消息携带所述第一媒体流的流名称;
所述发送模块,还用于根据所述第一网络信息连接所述第一媒体流服务器;连接成功后接收所述第一媒体流服务器发送的所述流名称,所述第一媒体流服务器发送的流名称是接收所述汇聚服务器发送的;向所述媒体流服务器发送所述流名称对应的所述第一媒体流。
可选的,所述直播页面还包括至少一个第二媒体流服务器的标识;
所述处理模块,还用于如果所述直播页面为观众直播页面,则根据所述至少一个第二媒体流服务器中的一第二媒体流服务器的标识,从所述汇聚服务器中获取所述第二媒体流服务器的第一网络信息;根据所述第二媒体流服务器的第一网络信息连接所述第二媒体流服务器,从所述第二媒体流服务器中获取并播放媒体流。
第四方面,本发明提供了一种发送媒体流的装置,所述装置包括:
处理模块,用于与用于发送媒体流的客户端建立连接;
发送模块,用于通过所述连接接收所述客户端发送的推流就绪通知消息;
所述处理模块,用于从媒体流服务器群中选择第一媒体流服务器,获取所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
所述发送模块,还用于向所述客户端发送所述第一媒体流服务器的第一网络信息,所述第一网络信息用于所述客户端向所述第一媒体流服务器发送第一媒体流,以使用于需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流。
可选的,所述装置还包括:
接收模块,用于接收需要播放媒体流的客户端发送的第二媒体流的标识;
所述处理模块,还用于根据所述第二媒体流的标识,从存储的标识与第一网络信息的对应关系中获取所述第二媒体流服务器的第一网络信息;
所述发送模块,还用于向所述客户端发送所述第二媒体流服务器的第一网络信息。
可选的,所述处理模块,还用于在与媒体流服务器群中的媒体流服务器建立连接时,获取所述媒体流服务器的第一网络信息以及为所述媒体流服务器分配标识,存储所述媒体流服务器的第一网络信息和标识的对应关系。
本发明提供的技术方案的有益效果是:
客户端通过与汇聚服务器连接,从汇聚服务器中获取第一媒体流服务器的第一网络信息,通过第一网络信息保证穿透客户端和第一媒体流服务器两端的NAT,从而使客户端可以与第一媒体流服务器建立连接,并向第一流媒体流服务器发送直播产生的第一媒体流,这样需要播放第一媒体流的客户端可以均与第一媒体流服务器建立连接,从第一媒体流服务器中获取并播放第一媒体流,从而能在Web直播时对大量观众进行直播。
附图说明
图1是本发明实施例一提供的一种网络架构示意图;
图2是本发明实施例二提供的一种发送媒体流的方法流程图;
图3是本发明实施例三提供的一种发送媒体流的方法流程图;
图4是本发明实施例四提供的一种发送媒体流的装置结构示意图;
图5是本发明实施例五提供的一种发送媒体流的装置结构示意图;
图6是本发明实施例六提供的一种终端结构示意图;
图7是本发明实施例七提供的一种服务器结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例一
参见图1,本发明实施例提供了一种网络架构,该网络架构包括:
汇聚服务器1、媒体流服务器2、Web管理服务器3和客户端4;
汇聚服务器1,用于保存客户端的ID(Identification,标识)与第二网络信息的对应关系,第二网络信息包括客户端的公网地址和私网地址,以及保存媒体流服务器的ID与第一网络信息的对应关系,第一网络信息包括媒体流服务器的公网地址。
其中,对于任一媒体流服务器2,该媒体流服务器2在与汇聚服务器1连接时,汇聚服务器1将该媒体流服务器2的ID和第一网络信息存储在媒体流服务器的ID与第一网络信息的对应关系中,详细过程为:
该媒体流服务器2向汇聚服务器1发送连接请求消息,该连接请求消息携带该媒体流服务器2的公网地址;汇聚服务器1接收该连接请求消息,为该媒体流服务器2分配ID,将该媒体流服务器2的ID和第一网络信息存储在媒体流服务器的ID与第一网络信息的对应关系中,该媒体流服务器2的第一网络信息包括该媒体流服务器2的公网地址,还向该媒体流服务器2发送连接响应消息,该连接响应消息携带该媒体流服务器2的ID。
对于任一客户端4,该客户端4在与汇聚服务器1连接时,汇聚服务器1将该客户端4的ID和第二网络信息存储在客户端的ID与第二网络信息的对应关系中,详细过程为:
该客户端4向汇聚服务器1发送连接请求消息,该连接请求消息携带该客户端4的公网地址和私网地址;汇聚服务器1接收该连接请求消息,为该客户端4分配ID,将该客户端2的ID和第二网络信息存储在客户端的ID与第二网络信息的对应关系中,该客户端2的第二网络信息包括该客户端2的公网地址和私网地址,还向该媒体流服务器2发送连接响应消息,该连接响应消息携带该媒体流服务器2的ID。
其中,需要说明的是:该网络架构可以包括多个汇聚服务器1;该多个汇聚服务器1可以布置在不同的地区,但该多个汇聚服务器1的域名地址均相同。
媒体流服务器2,用于接收该连接响应消息,周期性地向Web管理服务器3发送其ID和其所在机房ID。
Web管理服务器3,用于接收媒体流服务器2的ID和机房ID,还根据媒体流服务器2的ID配置直播页面,该直播页面包括两个媒体流服务器2的ID、汇聚服务器1的域名地址。
其中,Web管理服务器3优先选择位于同一机房的两个媒体流服务器2,并将该两个媒体流服务器2的ID配置在直播页面中。该直播页面还可以包括RTMP推流服务器的域名地址。
客户端3,用于在需要发送媒体流或接收媒体流时从Web管理服务器3中获取直播页面,根据该直播页面中的汇聚服务器1的域名地址连接汇聚服务器1,然后通过汇聚服务器1发送媒体流或接收媒体流,且详细实现过程可以参见后续任一实施例的实现。
实施例二
参见图2,本发明实施例提供了本发明提供了一种发送媒体流的方法,所述方法包括:
步骤201:获取直播页面,该直播页面包括汇聚服务器的域名地址。
步骤202:如果该直播页面为主播直播页面,则根据该域名地址,向汇聚服务器发送推流就绪通知消息,该推流就绪通知消息用于请求汇聚服务器从媒体流服务器群中选择第一媒体流服务器。
步骤203:接收汇聚服务器发送的第一媒体流服务器的第一网络信息,第一网络信息至少包括第一媒体流服务器的公网地址。
步骤204:根据第一网络信息,向第一媒体流服务器发送第一媒体流,以使需要播放第一媒体流的客户端从第一媒体流服务器中获取第一媒体流。
在本发明实施例中,客户端通过与汇聚服务器连接,从汇聚服务器中获取第一媒体流服务器的第一网络信息,通过第一网络信息保证穿透客户端和第一媒体流服务器两端的NAT,从而使客户端可以与第一媒体流服务器建立连接,并向第一流媒体流服务器发送直播产生的第一媒体流,这样需要播放第一媒体流的客户端可以均与第一媒体流服务器建立连接,从第一媒体流服务器中获取并播放第一媒体流,从而能在Web直播时对大量观众进行直播。
实施例三
本发明实施例提供了一种发送媒体流的方法,且本实施例提供的方法可以应用于实施例一提供的网络架构。
其中,本发明实施例应用于直播场景,终端可以获取直播页面,该直播页面中包括用于实现直播的客户端;当该直播页面为主播对应的主播直播页面时,该客户端可以向观众发送媒体流,以实现向观众做直播;当该直播页面为观众对应的观众直播页面,该客户端可以获取主播发送的媒体流,以使观众观看主播的直播。参见图3,上述过程的详细流程如下所示:
步骤301:终端从Web后台服务器获取直播页面,该直播页面包括汇聚服务器的域名地址和至少一个媒体流服务器的ID。
可选的,该直播页面还可以包括RTMP推流服务器的域名地址。
主播可以事先在Web后台服务器中注册用户账号,同时Web后台服务器为该主播生成直播房间,并为该直播房间配置直播页面。该直播页面包括两种页面类型,一种是主播直播页面,另一种是观众直播页面。该主播直播页面用于对主播进行拍摄得到媒体流,并发送该媒体流。该观众直播页面用于获取主播的媒体流并播放给观众。
当该终端为主播对应的终端,主播可以登录Web后台服务器并进入其直播房间。然后Web后台服务器将该直播房间对应的主播直播页面发送给终端;相应的,终端接收该主播直播页面,从而获取到直播页面。当该终端为观众对应的终端,观众在登录Web后台服务器,可以进入该主播对应的直播房间。然后Web后台服务器将该直播房间对应的观众直播页面发送给终端;相应的,终端接收该观众直播页面,从而获取到直播页面。
该直播页面中运行有支持RTMFP(Real Time Media Flow Protocol,实时媒体流协议)协议和RTMP(Real Time Messaging Protocol,实时消息传输协议)协议的客户端,终端在获取到直播页面后运行该客户端,并且通过该直播页面中的JavsScript与ActionScript通信机制,将该直播页面包括的至少一个媒体流服务器的ID和汇聚服务器的域名地址传递给该客户端;另外,如果该直播页面还包括RTMP推流服务器的域名地址,还可以将该RTMP推流服务器的域名地址传递给该客户端。
该直播页面中的客户端可以为Flash播放器或直播插件等。客户端在接收该两个媒体流服务器的ID和汇聚服务器的域名地址等信息后,可以通过如下如下流程来发送或接收媒体流。
步骤302:客户端根据该汇聚服务器的域名地址连接汇聚服务器。
本步骤可以为:客户端根据汇聚服务器的域名地址,向汇聚服务器发送连接请求消息,该连接请求消息携带该客户端的公网地址和私网地址;汇聚服务器接收该连接请求消息,为客户端分配ID,将该客户端的ID和第二网络信息存储在客户端的ID与第二网络信息的对应关系,第二网络信息至少包括该客户端的公网地址和私网地址,向该客户端发送连接响应消息,该连接响应消息携带该客户端的ID;客户端接收该连接响应消息,并确定成功连接汇聚服务器。
其中,汇聚服务器可以有一个或多个。当有多个时,该多个汇聚服务器被事先部署在不同地区,该多个汇聚服务器中的每个汇聚服务器的域名地址均相同,还存在一个用于管理该多个汇聚服务器的域名管理服务器。
相应的,在有多个汇聚服务器时,客户端发送连接请求消息过程可以为:客户端根据汇聚服务器的域名地址向该域名管理服务器发送连接请求消息;域名管理服务器接收该连接请求消息,从该多个汇聚服务器中优先选择与该客户端位于同一地区的汇聚服务器或优先选择负载最小的汇聚服务器等,将该连接请求转发给选择的汇聚服务器。选择的汇聚服务器接收该连接请求消息后,执行后续分配ID等操作。
步骤303:客户端确定自身的业务角色,如果自身的业务角色为发布流角色,则执行步骤304,如果自身的业务角色为接收流角色,则执行步骤312。
客户端的业务角色与客户端所在的直播页面的页面类型有关,不同页面类型的直播页面中的客户端的业务角色不同。当直播页面的页面类型为主播直播页面时,该直播页面中的客户端的业务角色为发布流角色;当直播页面的页面类型为观众直播页面时,该直播页面中的客户端的业务角色为接收流角色。
本步骤可以为:客户端获取该直播页面的页面类型,如果该页面类型为主播直播页面,则确定自身的业务角色为发布流角色;如果该页面类型为观众直播页面,则确定自身的业务角色为接收流角色。
在本实施例中,为了便于说明,当客户端的角色为发布流角色时,称客户端需要发送的媒体流为第一媒体流;当客户端的角色为接收流角色时,称客户端需要获取的媒体流为第二媒体流。
步骤304:客户端创建采集对象,关联该采集对象与终端的音视频设备,生成第一媒体流的流名称。
该采集对象用于通过关联的音视频设备采集音视频,在主播开始做直播时对该音视频进行编码得到媒体流,以供客户端发送该媒体流。
本步骤可以为:客户端调用Flash RTMFP API创建采集对象,关联该采集对象与终端的音视频设备,根据主播的用户账号和做直播的当前时间等信息生成媒体流名称,该媒体流名称用于唯一标识一媒体流。
终端的音视频设备可以包括终端的麦克风和摄像头中的至少一者。
进一步地,客户端还可以在该采集对象开始采集音视频时,向主播播放采集的视频图像。
步骤305:客户端向汇聚服务器发送推流就绪通知消息,该推流就绪通知消息携带客户端的ID和第一媒体流的流名称。
步骤306:汇聚服务器接收该推流就绪通知消息,选择第一媒体流服务器,向第一媒体流服务器发送播放媒体流通知消息,该播放媒体流通知消息携带该客户端的ID和第一媒体流的流名称。
本步骤可以为:汇聚服务器接收该推流就绪通知消息,根据预设策略从媒体流服务器群中选择一个媒体流服务器,为了便于说明称该一个媒体流服务器为第一媒体流服务器,向第一媒体流服务器发送播放媒体流通知消息,该播放媒体流通知消息携带该客户端的ID和第一媒体流的流名称。
媒体流服务器群包括至少一个媒体流服务器,该至少一个媒体流服务器可以部署在不同地区。
预设策略可以为选择同运营商策略、选择同地区策略或选择负载最小策略。
当预设策略为选择同运营策略时,从媒体流服务器群中选择一个媒体流服务器的操作可以为:获取客户端所接入的运营商网络,从媒体流服务器中选择接入的运营商网络与客户端所接入的运营商网络相同的一个媒体流服务器。
当预设策略为选择同地区策略时,从媒体流服务器群中选择一个媒体流服务器的操作可以为:获取客户端所在地区,从媒体服务器群中选择部署地区与客户端所在地区相同的一个媒体流服务器。
当预设策略为选择负载最小策略,从媒体流服务器群中选择一个媒体流服务器的操作可以为:获取媒体流服务器群中的各媒体流服务器的负载,选择负载最小的一个媒体流服务器。
步骤307:第一媒体流服务器接收该播放媒体流通知消息,向汇聚服务器发送协助建立请求消息。
第一媒体流服务器向汇聚服务器发送协助建立请求消息,用于请求汇聚服务器协助其建立与客户端之间的连接。
步骤308:汇聚服务器接收该协助建立请求消息,向客户端发送第一媒体流服务器的第一网络信息。
本步骤可以为:汇聚服务器接收该协助建立请求消息,根据该协助建立请求消息携带的第一媒体流服务器的ID,从存储的媒体流服务器的ID与第一网络信息的对应关系中获取对应的第一网络信息,该第一网络信息至少包括第一媒体流服务器的公网地址,向客户端发送该第一网络信息。
步骤309:客户端接收该第一网络信息,根据该第一网络信息建立与第一媒体流服务器之间的连接。
由于客户端有第一媒体流服务器的第一网络信息,这样可以在建立连接时可以保证客户端和第一媒体流服务器能够成功穿透NAT。
步骤310:第一媒体流服务器向客户端播放媒体流请求消息,该播放媒体流请求消息携带第一媒体流的流名称。
步骤311:客户端接收该播放媒体流请求消息,向第一媒体流服务器发送第一媒体流。
本步骤可以为:客户端接收该播放媒体流请求消息,根据该播放媒体流请求消息携带的第一媒体流的流名称,通过与采集对象相关联的音视频设备采集音视频,通过该采集对象对该音视频进行编码得到第一媒体流,向第一媒体流服务器发送第一媒体流。
第一媒体流服务器接收第一媒体流后存储第一媒体流,并向媒体流状态管理服务器发送新媒体通知消息,该新媒体通知消息携带第一媒体流的流名称和其自身的ID。媒体流状态管理服务器接收该新媒体通知消息,将该新媒体通知消息携带的第一媒体流的流名称和第一媒体流服务器的ID存储在媒体流名称与媒体流服务器的ID的对应关系中,这样为后续其他客户端请求播放媒体流做准备。
步骤312:客户端创建播放对象,并与客户端包括的播放器关联,向汇聚服务器发送查询请求消息,该查询请求消息携带第二媒体流服务器的ID,第二媒体流服务器是直播页面中的至少一个媒体流服务器中的一个媒体流服务器。
本步骤可以为:客户端调用Flash RTMFP API创建播放对象,关联该播放对象与客户端的播放器,向汇聚服务器发送查询请求消息,该查询请求消息携带第二媒体流服务器的ID。
步骤313:汇聚服务器接收该查询请求消息,根据该查询请求消息携带的第二媒体流服务器的ID获取第二媒体流服务器的第一网络信息,向客户端发送第二媒体流服务器的第一网络信息。
本步骤可以为:汇聚服务器接收该查询请求消息,根据该查询请求消息携带的第二媒体流服务器的ID,从存储的媒体流服务器的ID与第一网络信息的对应关系获取第二媒体流服务器的第一网络信息,向客户端发送第二媒体流服务器的第一网络信息。
步骤314:客户端接收第二媒体流服务器的第一网络信息,根据第二媒体流服务器的第一网络信息建立与第二媒体流服务器之间的连接。
本步骤可以为:客户端接收第二媒体流服务器的第一网络信息,根据第二媒体流服务器的第一网络信息,向第二媒体流服务器连接请求消息,该连接请求消息携带自身的公网地址和私网地址。第二媒体流服务器接收该连接请求消息,根据该连接请求消息携带的客户端的公网地址和私网地址,建立与客户端之间的连接。
其中,需要说明的是:如果客户端与第二媒体流服务器建立连接失败,则客户端选择另一个媒体流服务器作为第二媒体流服务器,再返回步骤212开始执行,连接建立成功后执行后续步骤。
步骤315:客户端向第二媒体流服务器发送播放请求消息,该播放请求消息携带需要播放的第二媒体流的流名称。
观众直播页面中包括主播正在直播产生的媒体流的流名称,为了便于说明称该媒体流为第二媒体流,客户端可以从该观众直播页面中提取第二媒体流的流名称,向该媒体流服务器发送播放请求消息,该播放请求消息携带第二媒体流的流名称。
步骤316:第二媒体流服务器接收该播放请求消息,根据该播放请求消息携带的第二媒体流的流名称获取对应的第二媒体流,向客户端发送第二媒体流。
本步骤可以为:第二媒体流服务器接收该播放请求消息,根据该播放请求消息携带的第二媒体流的流名称,查询本地是否存储该流名称对应的第二媒体流;如果本地存储该流名称对应的第二媒体流,则获取第二媒体流,向客户端发送第二媒体流;如果本地没有存储该流名称对应的第二媒体流,向媒体流状态管理服务器发送该播放请求消息。
媒体流状态管理服务器接收该播放请求消息,根据该播放请求消息携带的该第二媒体流的流名称,从存储的流名称与媒体服务器的ID对应关系中获取对应的媒体服务器的ID,为了便于说明称该媒体流服务器为第三媒体流服务器,将获取的第三媒体服务器的ID发送给第二媒体流服务器。第二媒体流服务器接收第三媒体流服务器的ID,并到第三媒体流服务器中获取该第二媒体流,再向客户端发送获取的第二媒体流。
步骤317:客户端接收第二媒体流,通过播放对象对第二媒体流进行解码,播放解码后的第二媒体流。
在本发明实施例中,客户端根据直播页面中的汇聚服务器的域名地址与汇聚服务器连接,汇聚服务器为客户端选择第一媒体流服务器,向客户端发送第一媒体流服务器的第一网络信息;客户端通过第一网络信息保证穿透客户端和第一媒体流服务器两端的NAT,从而使客户端可以与第一媒体流服务器建立连接,并向第一流媒体流服务器发送直播产生的第一媒体流,这样需要播放第一媒体流的客户端可以均与第一媒体流服务器建立连接,从第一媒体流服务器中获取并播放第一媒体流,从而能在Web直播时对大量观众进行直播。
实施例四
参见图4,本发明实施例提供了一种发送媒体流的装置400,所述装置包括:
处理模块401,用于获取直播页面,所述直播页面包括汇聚服务器的域名地址;
发送模块402,用于如果所述直播页面为主播直播页面,则根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,所述推流就绪通知消息用于请求所述汇聚服务器从媒体流服务器群中选择第一媒体流服务器;
接收模块403,用于接收所述汇聚服务器发送的所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
所述发送模块402,还用于根据所述第一网络信息,向所述第一媒体流服务器发送第一媒体流,以使需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流。
可选的,所述直播页面包括用于发送媒体流的客户端,
所述发送模块402,用于将所述汇聚服务器的域名地址传递给所述用于发送媒体流的客户端,触发所述用于发送媒体流的客户端根据所述域名地址连接所述汇聚服务器;连接成功后向所述汇聚服务器发送推流就绪通知消息。
可选的,所述推流就绪通知消息携带所述第一媒体流的流名称;
所述发送模块402,还用于根据所述第一网络信息连接所述第一媒体流服务器;连接成功后接收所述第一媒体流服务器发送的所述流名称,所述第一媒体流服务器发送的流名称是接收所述汇聚服务器发送的;向所述媒体流服务器发送所述流名称对应的所述第一媒体流。
可选的,所述直播页面还包括至少一个第二媒体流服务器的标识;
所述处理模块401,还用于如果所述直播页面为观众直播页面,则根据所述至少一个第二媒体流服务器中的一第二媒体流服务器的标识,从所述汇聚服务器中获取所述第二媒体流服务器的第一网络信息;根据所述第二媒体流服务器的第一网络信息连接所述第二媒体流服务器,从所述第二媒体流服务器中获取并播放媒体流。
在本发明实施例中,客户端通过与汇聚服务器连接,从汇聚服务器中获取第一媒体流服务器的第一网络信息,通过第一网络信息保证穿透客户端和第一媒体流服务器两端的NAT,从而使客户端可以与第一媒体流服务器建立连接,并向第一流媒体流服务器发送直播产生的第一媒体流,这样需要播放第一媒体流的客户端可以均与第一媒体流服务器建立连接,从第一媒体流服务器中获取并播放第一媒体流,从而能在Web直播时对大量观众进行直播。
实施例五
参见图5,本发明实施例提供了一种发送媒体流的装置500,所述装置500包括:
处理模块501,用于与用于发送媒体流的客户端建立连接;
发送模块502,用于通过所述连接接收所述客户端发送的推流就绪通知消息;
所述处理模块501,用于从媒体流服务器群中选择第一媒体流服务器,获取所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
所述发送模块502,还用于向所述客户端发送所述第一媒体流服务器的第一网络信息,所述第一网络信息用于所述客户端向所述第一媒体流服务器发送第一媒体流,以使用于需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流。
可选的,所述装置还包括:
接收模块,用于接收需要播放媒体流的客户端发送的第二媒体流的标识;
所述处理模块501,还用于根据所述第二媒体流的标识,从存储的标识与第一网络信息的对应关系中获取所述第二媒体流服务器的第一网络信息;
所述发送模块502,还用于向所述客户端发送所述第二媒体流服务器的第一网络信息。
可选的,所述处理模块501,还用于在与媒体流服务器群中的媒体流服务器建立连接时,获取所述媒体流服务器的第一网络信息以及为所述媒体流服务器分配标识,存储所述媒体流服务器的第一网络信息和标识的对应关系。
实施例六
请参考图6,其示出了本发明一个实施例提供的终端600的结构示意图。该终端600可以运行上述任一实施例提供的客户端。具体来讲:
终端600可以包括RF(Radio Frequency,射频)电路610、包括有一个或一个以上计算机可读存储介质的存储器620、输入单元630、显示单元640、传感器650、音频电路660、WiFi(wireless fidelity,无线保真)模块670、包括有一个或者一个以上处理核心的处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器680处理;另外,将涉及上行的数据发送给基站。通常,RF电路610包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路610还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端600的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器620还可以包括存储器控制器,以提供处理器680和输入单元630对存储器620的访问。
输入单元630可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元630可包括图像输入设备631以及其他输入设备632。图像输入设备631可以是摄像头,也可以是光电扫描设备。除了图像输入设备631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息以及终端600的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元640可包括显示面板641,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板641。
终端600还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在终端600移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端600还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器661,传声器662可提供用户与终端600之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一电子设备,或者将音频数据输出至存储器620以便进一步处理。音频电路660还可能包括耳塞插孔,以提供外设耳机与终端600的通信。
WiFi属于短距离无线传输技术,终端600通过WiFi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块670,但是可以理解的是,其并不属于终端600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器680是终端600的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行终端600的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理核心;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
终端600还包括给各个部件供电的电源690(比如电池),优选的,电源可以通过电源管理系统与处理器680逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源690还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端600还可以包括蓝牙模块等,在此不再赘述。
具体在本实施例中,终端600还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于进行以下操作的指令:
获取直播页面,所述直播页面包括汇聚服务器的域名地址;
如果所述直播页面为主播直播页面,则根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,所述推流就绪通知消息用于请求所述汇聚服务器从媒体流服务器群中选择第一媒体流服务器;
接收所述汇聚服务器发送的所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
根据所述第一网络信息,向所述第一媒体流服务器发送第一媒体流,以使需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流。
可选的,所述直播页面包括用于发送媒体流的客户端,所述根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,包括:
将所述汇聚服务器的域名地址传递给所述用于发送媒体流的客户端,
触发所述用于发送媒体流的客户端根据所述域名地址连接所述汇聚服务器;
连接成功后向所述汇聚服务器发送推流就绪通知消息。
可选的,所述推流就绪通知消息携带所述第一媒体流的流名称;所述根据所述第一网络信息,向所述媒体流服务器发送第一媒体流,包括:
根据所述第一网络信息连接所述第一媒体流服务器;
连接成功后接收所述第一媒体流服务器发送的所述流名称,所述第一媒体流服务器发送的流名称是接收所述汇聚服务器发送的;
向所述媒体流服务器发送所述流名称对应的所述第一媒体流。
可选的,所述直播页面还包括至少一个第二媒体流服务器的标识;所述方法还包括:
如果所述直播页面为观众直播页面,则根据所述至少一个第二媒体流服务器中的一第二媒体流服务器的标识,从所述汇聚服务器中获取所述第二媒体流服务器的第一网络信息;
根据所述第二媒体流服务器的第一网络信息连接所述第二媒体流服务器,从所述第二媒体流服务器中获取并播放媒体流。
实施例七
参见图7,参见图7,图7是本发明实施例提供的服务器700的结构示意图。该服务器700可以为上述汇聚服务器,服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器701、收发器702和存储器732,一个或一个以上存储应用程序742或数据744的存储介质730(例如一个或一个以上海量存储设备)。其中,存储器732和存储介质730可以是短暂存储或持久存储。存储在存储介质730的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器700中的一系列指令操作。更进一步地,处理器522可以设置为与存储介质730通信,在服务器700上执行存储介质730中的一系列指令操作。
服务器700还可以包括一个或一个以上电源726,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口758,一个或一个以上键盘756,和/或,一个或一个以上操作系统741,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
具体在本实施例中,服务器700还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。上述一个或者一个以上程序包含用于进行以下操作的指令:
与用于发送媒体流的客户端建立连接;
通过所述连接接收所述客户端发送的推流就绪通知消息;
从媒体流服务器群中选择第一媒体流服务器,获取所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
向所述客户端发送所述第一媒体流服务器的第一网络信息,所述第一网络信息用于所述客户端向所述第一媒体流服务器发送第一媒体流,以使用于需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流。
可选的,还包括:
接收需要播放媒体流的客户端发送的第二媒体流的标识,根据所述第二媒体流的标识,从存储的标识与第一网络信息的对应关系中获取所述第二媒体流服务器的第一网络信息,向所述客户端发送所述第二媒体流服务器的第一网络信息。
可选的,还包括:
在与媒体流服务器群中的媒体流服务器建立连接时,获取所述媒体流服务器的第一网络信息以及为所述媒体流服务器分配标识,存储所述媒体流服务器的第一网络信息和标识的对应关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种发送媒体流的方法,其特征在于,所述方法包括:
获取直播页面,所述直播页面包括汇聚服务器的域名地址;
如果所述直播页面为主播直播页面,则根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,所述推流就绪通知消息用于请求所述汇聚服务器从媒体流服务器群中选择第一媒体流服务器;
接收所述汇聚服务器发送的所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
根据所述第一网络信息,向所述第一媒体流服务器发送第一媒体流,以使需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流;
所述媒体流服务器群包括至少一个媒体流服务器,所述至少一个媒体流服务器部署在不同地区,所述汇聚服务器用于在接收到所述推流就绪通知消息时,获取所述客户端所接入的运营商网络,根据所述客户端所接入的运营商网络,按照预设策略从媒体流服务器群中选择一个媒体流服务器作为所述第一媒体流服务器。
2.如权利要求1所述的方法,其特征在于,所述直播页面包括用于发送媒体流的客户端,所述根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,包括:
将所述汇聚服务器的域名地址传递给所述用于发送媒体流的客户端,
触发所述用于发送媒体流的客户端根据所述域名地址连接所述汇聚服务器;
连接成功后向所述汇聚服务器发送推流就绪通知消息。
3.如权利要求1所述的方法,其特征在于,所述推流就绪通知消息携带所述第一媒体流的流名称;所述根据所述第一网络信息,向所述媒体流服务器发送第一媒体流,包括:
根据所述第一网络信息连接所述第一媒体流服务器;
连接成功后接收所述第一媒体流服务器发送的所述流名称,所述第一媒体流服务器发送的流名称是接收所述汇聚服务器发送的;
向所述媒体流服务器发送所述流名称对应的所述第一媒体流。
4.如权利要求1至3任一项权利要求所述的方法,其特征在于,所述直播页面还包括至少一个第二媒体流服务器的标识;所述方法还包括:
如果所述直播页面为观众直播页面,则根据所述至少一个第二媒体流服务器中的一第二媒体流服务器的标识,从所述汇聚服务器中获取所述第二媒体流服务器的第一网络信息;
根据所述第二媒体流服务器的第一网络信息连接所述第二媒体流服务器,从所述第二媒体流服务器中获取并播放媒体流。
5.一种发送媒体流的方法,其特征在于,所述方法包括:
与用于发送媒体流的客户端建立连接;
通过所述连接接收所述客户端发送的推流就绪通知消息;
从媒体流服务器群中选择第一媒体流服务器,获取所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
向所述客户端发送所述第一媒体流服务器的第一网络信息,所述第一网络信息用于所述客户端向所述第一媒体流服务器发送第一媒体流,以使用于需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流;
所述媒体流服务器群包括至少一个媒体流服务器,所述至少一个媒体流服务器部署在不同地区,所述从媒体流服务器群中选择第一媒体流服务器,包括:
在接收到所述推流就绪通知消息时,获取所述客户端所接入的运营商网络,根据所述客户端所接入的运营商网络,按照预设策略从媒体流服务器群中选择一个媒体流服务器作为所述第一媒体流服务器。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
接收需要播放媒体流的客户端发送的第二媒体流的标识,根据所述第二媒体流的标识,从存储的标识与第一网络信息的对应关系中获取所述第二媒体流服务器的第一网络信息,向所述客户端发送所述第二媒体流服务器的第一网络信息。
7.如权利要求5所述的方法,其特征在于,所述方法还包括:
在与媒体流服务器群中的媒体流服务器建立连接时,获取所述媒体流服务器的第一网络信息以及为所述媒体流服务器分配标识,存储所述媒体流服务器的第一网络信息和标识的对应关系。
8.一种发送媒体流的装置,其特征在于,所述装置包括:
处理模块,用于获取直播页面,所述直播页面包括汇聚服务器的域名地址;
发送模块,用于如果所述直播页面为主播直播页面,则根据所述域名地址,向所述汇聚服务器发送推流就绪通知消息,所述推流就绪通知消息用于请求所述汇聚服务器从媒体流服务器群中选择第一媒体流服务器;
接收模块,用于接收所述汇聚服务器发送的所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
所述发送模块,还用于根据所述第一网络信息,向所述第一媒体流服务器发送第一媒体流,以使需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流;
所述媒体流服务器群包括至少一个媒体流服务器,所述至少一个媒体流服务器部署在不同地区,所述汇聚服务器用于在接收到所述推流就绪通知消息时,获取所述客户端所接入的运营商网络,根据所述客户端所接入的运营商网络,按照预设策略从媒体流服务器群中选择一个媒体流服务器作为所述第一媒体流服务器。
9.如权利要求8所述的装置,其特征在于,所述直播页面包括用于发送媒体流的客户端,
所述发送模块,用于将所述汇聚服务器的域名地址传递给所述用于发送媒体流的客户端,触发所述用于发送媒体流的客户端根据所述域名地址连接所述汇聚服务器;连接成功后向所述汇聚服务器发送推流就绪通知消息。
10.如权利要求8所述的装置,其特征在于,所述推流就绪通知消息携带所述第一媒体流的流名称;
所述发送模块,还用于根据所述第一网络信息连接所述第一媒体流服务器;连接成功后接收所述第一媒体流服务器发送的所述流名称,所述第一媒体流服务器发送的流名称是接收所述汇聚服务器发送的;向所述媒体流服务器发送所述流名称对应的所述第一媒体流。
11.如权利要求8至10任一项权利要求所述的装置,其特征在于,所述直播页面还包括至少一个第二媒体流服务器的标识;
所述处理模块,还用于如果所述直播页面为观众直播页面,则根据所述至少一个第二媒体流服务器中的一第二媒体流服务器的标识,从所述汇聚服务器中获取所述第二媒体流服务器的第一网络信息;根据所述第二媒体流服务器的第一网络信息连接所述第二媒体流服务器,从所述第二媒体流服务器中获取并播放媒体流。
12.一种发送媒体流的装置,其特征在于,所述装置包括:
处理模块,用于与用于发送媒体流的客户端建立连接;
发送模块,用于通过所述连接接收所述客户端发送的推流就绪通知消息;
所述处理模块,用于从媒体流服务器群中选择第一媒体流服务器,获取所述第一媒体流服务器的第一网络信息,所述第一网络信息至少包括所述第一媒体流服务器的公网地址;
所述发送模块,还用于向所述客户端发送所述第一媒体流服务器的第一网络信息,所述第一网络信息用于所述客户端向所述第一媒体流服务器发送第一媒体流,以使用于需要播放所述第一媒体流的客户端从所述第一媒体流服务器中获取所述第一媒体流;
所述媒体流服务器群包括至少一个媒体流服务器,所述至少一个媒体流服务器部署在不同地区,所述处理模块,还用于:
在接收到所述推流就绪通知消息时,获取所述客户端所接入的运营商网络,根据所述客户端所接入的运营商网络,按照预设策略从媒体流服务器群中选择一个媒体流服务器作为所述第一媒体流服务器。
13.如权利要求12所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收需要播放媒体流的客户端发送的第二媒体流的标识;
所述处理模块,还用于根据所述第二媒体流的标识,从存储的标识与第一网络信息的对应关系中获取所述第二媒体流服务器的第一网络信息;
所述发送模块,还用于向所述客户端发送所述第二媒体流服务器的第一网络信息。
14.如权利要求12所述的装置,其特征在于,
所述处理模块,还用于在与媒体流服务器群中的媒体流服务器建立连接时,获取所述媒体流服务器的第一网络信息以及为所述媒体流服务器分配标识,存储所述媒体流服务器的第一网络信息和标识的对应关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610937655.0A CN106534877B (zh) | 2016-10-24 | 2016-10-24 | 一种发送媒体流的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610937655.0A CN106534877B (zh) | 2016-10-24 | 2016-10-24 | 一种发送媒体流的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106534877A CN106534877A (zh) | 2017-03-22 |
CN106534877B true CN106534877B (zh) | 2019-06-25 |
Family
ID=58292630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610937655.0A Active CN106534877B (zh) | 2016-10-24 | 2016-10-24 | 一种发送媒体流的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106534877B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107257496A (zh) * | 2017-06-14 | 2017-10-17 | 广州市千钧网络科技有限公司 | 一种直播的控制方法、装置及移动终端 |
CN109194983A (zh) * | 2018-10-10 | 2019-01-11 | 贵阳朗玛信息技术股份有限公司 | 直播方法、系统、存储介质、广播服务器及服务器集群 |
CN111836059B (zh) * | 2019-04-23 | 2022-03-29 | 华为技术有限公司 | 一种媒体流发送方法、装置和设备 |
CN111107390B (zh) * | 2019-12-31 | 2023-03-24 | 广州市百果园网络科技有限公司 | 直播服务系统及直播连接的建立方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848367A (zh) * | 2010-05-14 | 2010-09-29 | 武汉宽信科技有限公司 | 基于文件的动态影像网络直播方法 |
CN102427463A (zh) * | 2009-11-09 | 2012-04-25 | 中国电信股份有限公司 | 一种富媒体直播业务系统和方法 |
-
2016
- 2016-10-24 CN CN201610937655.0A patent/CN106534877B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102427463A (zh) * | 2009-11-09 | 2012-04-25 | 中国电信股份有限公司 | 一种富媒体直播业务系统和方法 |
CN101848367A (zh) * | 2010-05-14 | 2010-09-29 | 武汉宽信科技有限公司 | 基于文件的动态影像网络直播方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106534877A (zh) | 2017-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105430424B (zh) | 一种视频直播的方法、装置和系统 | |
CN105338368B (zh) | 一种视频的直播流转点播数据的方法、装置及系统 | |
CN106101756B (zh) | 弹幕显示方法、弹幕添加方法、装置及系统 | |
CN106454404B (zh) | 一种播放直播视频的方法、装置和系统 | |
CN103905885B (zh) | 视频直播方法及装置 | |
CN105879391B (zh) | 一种游戏中角色的移动控制方法和服务器以及客户端 | |
CN105025043B (zh) | 信息分享方法、装置及系统 | |
CN104935955B (zh) | 一种传输直播视频流的方法、装置和系统 | |
CN106302325B (zh) | 提供指定通信服务的方法、装置和系统 | |
CN106162236A (zh) | 一种分享视频的方法及装置 | |
CN104954149B (zh) | 网络会议中进行数据共享的方法、装置及系统 | |
CN104142868B (zh) | 建立连接的方法及装置 | |
CN104838661B (zh) | 流媒体传输方法和系统、以及用户设备和服务器 | |
CN106791955B (zh) | 一种确定直播时长的方法和系统 | |
CN106791892A (zh) | 一种轮麦直播的方法、装置和系统 | |
CN106534877B (zh) | 一种发送媒体流的方法及装置 | |
CN104754419A (zh) | 基于视频的互动方法和装置 | |
CN104967608B (zh) | 播放多媒体文件的方法、移动终端及固定终端 | |
CN104918124A (zh) | 直播互动系统、信息发送方法、信息接收方法及装置 | |
CN104967865B (zh) | 视频预览方法和装置 | |
CN106161176A (zh) | 群组会话消息处理方法和装置 | |
CN106231433B (zh) | 一种播放网络视频的方法、装置和系统 | |
CN104954233B (zh) | 信息推送方法、装置和系统 | |
CN105554522A (zh) | 在群组内播放音频的方法、服务器及终端 | |
CN108040091A (zh) | 数据处理方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 510660 Guangzhou City, Guangzhou, Guangdong, Whampoa Avenue, No. 315, self - made 1-17 Applicant after: Guangzhou KuGou Networks Co., Ltd. Address before: 510000 B1, building, No. 16, rhyme Road, Guangzhou, Guangdong, China 13F Applicant before: Guangzhou KuGou Networks Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |