CN114173151B - 直播推流***、方法、装置以及电子设备 - Google Patents
直播推流***、方法、装置以及电子设备 Download PDFInfo
- Publication number
- CN114173151B CN114173151B CN202210123645.9A CN202210123645A CN114173151B CN 114173151 B CN114173151 B CN 114173151B CN 202210123645 A CN202210123645 A CN 202210123645A CN 114173151 B CN114173151 B CN 114173151B
- Authority
- CN
- China
- Prior art keywords
- cdn
- platform
- cdn platform
- live
- stream
- 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
- 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/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23106—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
-
- 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/65—Transmission of management data between client and server
- H04N21/654—Transmission by server directed to the client
-
- 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/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种直播推流***、方法、装置以及电子设备,其中,该直播推流***,包括:直播端和多个CDN平台,所述直播端用于通过所述多个CDN平台向看播端提供直播流;所述多个CDN平台包括:第一CDN平台、第二CDN平台以及第三CDN平台,在所述第一CDN平台向所述第三CDN平台转推所述直播流失败的情况下,由所述第二CDN平台将所述直播流转推至所述第三CDN平台,其中,所述第一CDN平台和所述第二CDN平台为已经接收到所述直播流的CDN平台。本申请解决了相关技术中用户观看直播时出现拉流失败的技术问题。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种直播推流***、方法、装置以及电子设备。
背景技术
随着新型信息技术在中国不断应用,以及互联网化新业务的快速发展,CDN(Content Delivery Network)作为缓解互联网网络拥塞、提高互联网业务响应速度、改善用户业务体验的重要手段,已经成为互联网基础设施中不可或缺的重要组成部分。CDN即内容分发网络,通过在现有的Internet中增加一层新的网络架构,部署边缘服务器,将网站的内容发布到最接近用户的Cache缓存服务器,使用户可以就近取得所需的内容,实现用户就近访问,有效提升网站的访问效果、安全性和稳定性。在移动直播领域,为了优化终端观看直播的体验,一般会采用CDN进行内容分发加速,实现高并发等能力。
目前,在网络直播中,会用到多个CDN厂商,在多个CDN厂商之间进行依次推流,如:主播推流到一家CDN厂商,这家CDN厂商转推给其他CDN厂商,如果其他家CDN厂商出现转推失败的情况,则会导致使用其他家CDN厂商的CDN服务的用户观看的时候出现拉流失败的情况,从总体上来看,会呈现概率性地拉流失败的状态,降低了拉流成功率。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种直播推流***、方法、装置以及电子设备,以至少解决相关技术中用户观看直播时出现拉流失败的技术问题。
根据本申请实施例的一个方面,提供了一种直播推流***,包括:播端和多个CDN平台,直播端用于通过多个CDN平台向看播端提供直播流;多个CDN平台包括:第一CDN平台、第二CDN平台以及第三CDN平台,在第一CDN平台向第三CDN平台转推直播流失败的情况下,由第二CDN平台将直播流转推至第三CDN平台,其中,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台。
根据本申请实施例的另一个方面,提供了一种直播推流方法,应用于第二CDN平台,包括:向第三CDN平台发送转推请求,转推请求用于第二CDN平台请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;在接收到第三CDN平台的允许转推的响应的情况下,向第三CDN平台转推直播流。
根据本申请实施例的另一个方面,提供了一种直播推流方法,应用于第三CDN平台,包括:接收第二CDN平台的转推请求,其中,转推请求用于请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;响应于转推请求,从第二CDN平台接收直播流。
根据本申请实施例的另一方面,还提供了一种直播推流装置,应用于第二CDN平台,包括:发送模块,用于向第三CDN平台发送转推请求,其中,转推请求用于第二CDN平台请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;转推模块,用于在接收到第三CDN平台的允许转推的响应的情况下,向第三CDN平台转推直播流。
根据本申请实施例的另一方面,还提供了一种直播推流装置,应用于第三CDN平台,包括:接收模块,用于接收第二CDN平台的转推请求,其中,转推请求用于请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;响应模块,用于响应于转推请求,从第二CDN平台接收直播流。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法中任一实施例的步骤。
在本申请实施例中,采用第二CDN平台向第三CDN平台发送转推请求,转推请求用于第二CDN平台请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;在接收到第三CDN平台的允许转推的响应的情况下,向第三CDN平台转推直播流的方式,通过在第一CDN平台转推后,利用转推成功的第二CDN平台向转推失败的第三CDN平台继续转推直播流,达到了保障需要转推的CDN平台有直播流的目的,进而解决了相关技术中用户观看直播时出现拉流失败的技术问题,从而实现了提高推流的可用性和保障用户拉流成功率的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种可选的直播推流***的示意图;
图2是根据本申请实施例的一种可选的直播推流方法的流程图;
图3是根据本申请实施例的一种可选的直播推流方法的流程图;
图4是根据本申请实施例的一种可选的直播推流方案的示意图;
图5是根据本申请实施例的一种可选的直播推流装置的示意图;
图6是根据本申请实施例的一种可选的直播推流装置的示意图;
图7是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
CDN平台:CDN(Content Delivery Network)即内容分发网络,CDN平台即提供内容分发服务的平台,不同的CDN服务商有各自的CDN平台。
直播流:指由主播端采集和制作的连续的、采用流式传输的音视频数据。
推流:推流指的是把采集阶段封包好的内容传输到服务器的过程,例如,主播端将直播流传输到CDN厂商。
拉流:拉流是指用指定地址对服务器已有直播内容进行拉取的过程,例如,从服务器上将直播流拉取到用户所在的客户端上以便用户观看。
转推:在本申请中,转推是指一个CDN平台将直播流传输至另一个CDN平台。
根据本申请实施例的一方面,提供了一种直播推流***的***实施例。
图1是根据本申请实施例的一种可选的直播推流***的示意图,如图1所示,该***可以包括直播端和多个CDN平台(CDN平台的数量为至少3个,图1示出了4个,实际情况中可以更多或者更少),直播端通过多个CDN平台向看播端提供直播流。
多个CDN平台包括:第一CDN平台、第二CDN平台以及第三CDN平台,在第一CDN平台向第三CDN平台转推直播流失败的情况下,由第二CDN平台将直播流转推至第三CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台。第二CDN平台的数量可以为一个或者多个,如图1所示:第三平台可以为其中任意一个CDN平台,如为CDN平台B,第一次推流时,当CDN平台A给CDN平台B转推时,若转推失败,此时CDN平台A就相当于是第一CDN平台,在***中,除了CDN平台A会给CDN平台B转推以外,***中的其他CDN平台(即第二CDN平台,包括除第一CDN平台和第三CDN平台以外的CDN平台,如CDN平台C和CDN平台D),也会给CDN平台B转推,若其中一个推流成功,则第三平台不再接收其他转推,若推流失败,会由其他CDN平台继续给CDN平台B转推,直至转推成功。
上述多个CDN平台为不同CDN服务供应商提供的CDN平台,每个CDN平台包括一个或者多个CDN节点,每个CDN节点可以由一个或者CDN服务器组成。
可选地,第二CDN平台可以为多个,多个第二CDN平台分别向第三CDN平台转推直播流。例如,直播端向平台A(即第一CDN平台)推流,平台A向平台B、C、D、E转推,其中,平台A向平台B的转推失败了,其余转推成功,那么,平台B为第三CDN平台,平台C、D、E均为第二CDN平台,平台C、D、E均可以向平台B转推直播流,但只有一个平台能够成功转推,通过多个第二CDN平台向第三CDN平台的转推,提高了推流成功率。
作为一种可选的实施例,直播端可以为多个,多个直播端可以分别向相同或不同的CDN平台推流,例如,直播端A以CDN平台A作为第一CDN平台,向CDN平台A推流,再由CDN平台A向CDN平台B、C、D转推;直播端B以CDN平台B作为第一CDN平台,向CDN平台B推流,再由CDN平台B向CDN平台A、C、D转推。
根据本申请实施例的一方面,应用于第二CDN平台,提供了一种直播推流的方法实施例。
可选地,在本实施例中,上述直播推流方法可以应用于如图1所示的由直播端和多个CDN平台所构成的硬件环境中。后续以在第二CDN平台上执行本申请实施例的一种直播推流方法为例进行说明。
图2是根据本申请实施例的一种可选的直播推流方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S202,第二CDN平台向第三CDN平台发送转推请求,其中,转推请求用于第二CDN平台请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台。
步骤S204,第二CDN平台在接收到第三CDN平台的允许转推的响应的情况下,向第三CDN平台转推直播流。
上述CDN平台是不同的CDN厂商为包括但不限于事件直播、移动直播、游戏直播、在线课程等网络直播提供内容分发和直播加速服务的平台;CDN平台具有接收直播端(即主播)的推流、向其他CDN平台转推直播流的功能;每一个CDN平台都可以在符合本申请实施例限定的情况下作为第一CDN平台、第二CDN平台或第三CDN平台。
通过上述步骤S202至步骤S204,通过在第一CDN平台转推后,利用转推成功的第二CDN平台向转推失败的第三CDN平台继续转推直播流,达到了保障需要转推的CDN平台有直播流的目的,进而解决了相关技术中用户观看直播时出现拉流失败的技术问题,从而实现了提高推流的可用性和保障用户拉流成功率的技术效果。
在步骤S202提供的技术方案中,第二CDN平台向第三CDN平台发送转推请求,其中,转推请求用于第二CDN平台请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台。
作为一种可选的实施例,在向第三CDN平台发送转推请求之前,第二CDN平台获取直播流的多个转推地址,其中,多个转推地址为多个CDN平台的平台地址、且包括第三CDN平台的平台地址;然后按照第三CDN平台的平台地址向第三CDN平台发送转推请求。
可选地,通过以下两种方式获取直播流的多个转推地址:(1)由直播端客户直接提供需要转推的CDN平台的推流地址;(2)直播端客户提供一个接口,CDN平台从接口获取推流列表,推流列表中保存有需要转推的CDN平台的推流地址。
作为一种可选的实施例,在向第三CDN平台发送转推请求之前、之后、或同时,第二CDN平台按照多个转推地址中除第三CDN平台的平台地址以外的地址,向相应的CDN平台发送转推请求。
例如,直播端向平台A(即第一CDN平台)推流,根据客户提供的推流地址,平台A向平台B、C、D、E转推,其中,平台A向平台B的转推失败了,其余转推成功,那么,平台B为第三CDN平台,平台C、D、E均为第二CDN平台,以平台C为例,平台C可以按照推流地址,向A、B、D、E同时发送转推请求,也可以按照预设顺序发送转推请求。
在步骤S204提供的技术方案中,第二CDN平台在接收到第三CDN平台的允许转推的响应的情况下,向第三CDN平台转推直播流。
例如,直播端向平台A(即第一CDN平台)推流,根据客户提供的推流地址,平台A向平台B、C、D、E转推,其中,平台A向平台B的转推失败了,其余转推成功,那么,平台B为第三CDN平台,平台C、D、E均为第二CDN平台,以平台C为例,平台C可以按照推流地址,向A、B、D、E同时发送转推请求,但只有第三CDN平台会响应转推请求,即只有平台B会响应平台发送的转推请求,当平台C接收到平台B的响应时,平台C会将直播流转推至平台B。
作为一种可选的实施例,为了进一步确保直播端在整个直播过程中的推流,第二CDN平台在未接收到第三CDN平台的响应的情况下,继续重试发送转推请求。
作为一种可选的实施例,为了进一步确保各个直播端的推流并简化转推逻辑,当直播端为多个时,根据每个直播端提供的推流地址,让直播端需要推流的每一个CDN平台在整个直播过程中互相发送转推请求。
例如,直播端1向平台A(即第一CDN平台)推流,根据客户提供的推流地址,平台A需要向平台B、C、D、E转推,直播端2向平台B(即第一CDN平台)推流,根据客户提供的推流地址,平台B需要向平台A、C、D、E转推,此时,平台A、B、C、D、E在直播过程中互相发送转推请求即可保障推流。
根据本申请实施例的一方面,应用于第三CDN平台,提供了一种直播推流的方法实施例。
可选地,在本实施例中,上述直播推流方法可以应用于如图1所示的由直播端和多个CDN平台所构成的硬件环境中。后续以在第三CDN平台上执行本申请实施例的一种直播推流方法为例进行说明。
图3是根据本申请实施例的一种可选的直播推流方法的流程图,如图2所示,该方法可以包括以下步骤:
步骤S302,第三CDN平台接收第二CDN平台的转推请求,其中,转推请求用于请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台。
步骤S304,第三CDN平台响应于转推请求,从第二CDN平台接收直播流。
上述CDN平台是不同的CDN厂商为包括但不限于事件直播、移动直播、游戏直播、在线课程等网络直播提供内容分发和直播加速服务的平台;CDN平台具有接收直播端(即主播)的推流、向其他CDN平台转推直播流的功能;每一个CDN平台都可以在符合本申请实施例限定的情况下作为第一CDN平台、第二CDN平台或第三CDN平台。
通过上述步骤S302至步骤S304,通过在第一CDN平台转推后,利用转推成功的第二CDN平台向转推失败的第三CDN平台继续转推直播流,达到了保障需要转推的CDN平台有直播流的目的,进而解决了相关技术中用户观看直播时出现拉流失败的技术问题,从而实现了提高推流的可用性和保障用户拉流成功率的技术效果。
在步骤S302提供的技术方案中,第三CDN平台接收第二CDN平台的转推请求,其中,转推请求用于请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台。
可选地,第二CDN平台为多个,响应于转推请求,在从一个第二CDN平台接收直播流失败的情况下,从另一个第二CDN平台接收直播流。
例如,直播端向平台A(即第一CDN平台)推流,平台A向平台B、C、D、E转推,其中,平台A向平台B的转推失败了,其余转推成功,那么,平台B为第三CDN平台,平台C、D、E均为第二CDN平台,平台C、D、E均向B发送转推请求,如果平台B响应平台C的转推请求但未成功转推,则平台B还可以响应平台C、D或E的转推请求,直至成功转推。
在步骤S304提供的技术方案中,第三CDN平台响应于转推请求,从第二CDN平台接收直播流。
作为一种可选的实施例,在接收到第二CDN平台的转推请求的情况下,查询第三CDN平台上直播流的存在状态,其中,存在状态用于确定是否发出允许转推的响应,存在状态为存在或不存在。
可选地,转推请求中包含所要转推的直播流的标识信息,CDN平台包括源站和多个边缘节点,当其中一个边缘节点接收到第二CDN平台的转推请求时,边缘节点通过查询流存在接口,通过直播流的标识信息查找到这个直播流的存在状态。
可选地,当存在状态为第三CDN平台中不存在直播流的情况下,向第二CDN平台发出允许转推的响应信息,以从第二CDN平台接收直播流。
例如,直播端向平台A(即第一CDN平台)推流,平台A向平台B、C转推,其中,平台A向平台B的转推失败了,向平台C的转推成功,那么,平台B为第三CDN平台,平台C为第二CDN平台,当平台B的边缘节点接收到平台C发送的转推请求时,平台B的边缘节点通过查询流存在接口,得到直播流的存在状态为不存在,即此时平台B内不存在这个直播流,可以接收平台C的转推;平台B将向平台C发出允许转推的响应信息,以从平台C接收这个直播流。
作为一种可选的实施例,第三CDN平台在响应于转推请求,从第二CDN平台接收直播流之后,在第三CDN平台成功接收直播流的情况下,将第三CDN平台的存在状态由不存在更改为存在。
可选地,CDN平台包括源站(相当于中心节点)和多个边缘节点,源站会保存直播流的记录,当一个CDN平台成功接收到一个直播流时,源站将保存这个直播流存在于CDN平台中的状态记录。
本方案提供了一种直播推流方法,通过在第一CDN平台转推后,利用转推成功的第二CDN平台向转推失败的第三CDN平台继续转推直播流,达到了保障需要转推的CDN平台有直播流的目的,进而解决了相关技术中由于第一CDN平台转推至多家CDN平台时部分转推失败造成的用户观看时出现拉流失败的技术问题,从而实现了提高推流的可用性和保障用户拉流成功率的技术效果;此外,第二CDN平台在未接收到第三CDN平台的响应的情况下,继续重试发送转推请求,以确保在直播过程中部分CDN平台转推突然故障导致部分CDN平台断流时,接收转推的CDN平台能够及时接收其他CDN平台的转推,进一步保障直播端在整个直播过程中的推流;并且在实际中,一个CDN平台往往要对接多个直播端,根据每个直播端提供的推流地址,让直播端需要推流的每一个CDN平台在整个直播过程中互相发送转推请求,可以进一步确保各个直播端的推流并简化转推逻辑。
作为一种可选的实施例,下文结合具体实施方式示意性的描述本申请的技术方案:
本发明旨在通过CDN厂商(即CDN平台)相互之间的转推,来提升主播推流的可用性,从而提高用户拉流的成功率,改善用户体验。
相关技术中,主播推流到CDN厂商A,然后转推给其他家(B,C,D),如果A转推给其他家有失败的情况,会导致用户观看的时候概率性的出现拉流失败的情况,降低了拉流成功率。
如图4所示,直播推流(主播推流)只推给了厂商A,这一步如果不成功就没有后续的转推。但是主播直接推流不成功,主播肯定知道,所以主播会切换线路的。主播推流只推给了厂商A,厂商A分别向B、C、D转推,B、C、D接收到厂商A的转推后也会分别向其他家转推。正常情况下,A向B、C、D推流都成功了,那后续B、C、D向其他家的转推都会不成功;但如果厂商A向B转推失败了,向C、D转推成功了,那C、D向B的转推就会起作用,保证了B也能有流。即在本方案中,主播推流到CDN厂商A,厂商A转推给B,C,D,同时B,C,D也会将流转推给其他的三家(流其实是转推不成功的,因为CDN检测到流存在,会拒绝掉其他家的转推),会一直重试转推,但是当真正出现CDN厂商转推失败的时候重试转推就能推上来,保证每个CDN厂商都有流,从而保障推流的可用性,提高用户的拉流策划成功率。
在本方案中,获取推流地址的方式有两种,(1)客户会提供需要推流的CDN厂商;(2)客户提供一个接口,CDN厂商A从接口获取推流列表;根据客户提供的推流地址配置到配置文件中。
在本方案中,CDN厂商有很多个边缘节点,同一个流会推到自己的源站以及第三方CDN厂商,源站相当于中心节点,保存有这个流的记录,当接收到转推时,边缘节点会通过查询流存在接口,如果存在,则拒绝这个流的转推。
如图4所示,在本方案中,不仅CDN厂商B、C、D之间会互相转推,CDN厂商B、C、D与CDN厂商A也会互相转推,理论上在只有一个主播推流的时候是不需要向A转推的,但实际上主播的数量很多,主播推流至不同的CDN厂商,比如主播推流至CDN厂商B,此时B需要向A、C、D转推。
本方案在直播服务的后端加速服务器上实现,每个直播客户都会接入多家CDN厂商,这个多家CDN厂商互为备份,来保障这个直播客户的可用性,CDN厂商之间相互转推,以及在有流的情况下拒绝其他家的转推,当出现CDN真正转推失败的时候,其他家的转推重试会保障每个CDN都有流,是为了保证推流不会因为某一个CDN厂商出问题而导致拉流失败,从而提高推流的可用性,保障用户拉流的成功率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述直播推流方法的直播推流装置。图5是根据本申请实施例的一种可选的直播推流装置的示意图,如图5所示,应用于第二CDN平台,该装置可以包括:
发送模块52,用于向第三CDN平台发送转推请求,其中,转推请求用于第二CDN平台请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;
转推模块54,用于在接收到第三CDN平台的允许转推的响应的情况下,向第三CDN平台转推直播流。
需要说明的是,该实施例中的发送模块52可以用于执行本申请实施例中的步骤S202,该实施例中的转推模块54可以用于执行本申请实施例中的步骤S204。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,可以解决相关技术中用户观看直播时出现拉流失败的技术问题,进而实现了提高推流的可用性和保障用户拉流成功率的技术效果。
可选地,发送模块52还用于:在向第三CDN平台发送转推请求之前,获取直播流的多个转推地址,其中,多个转推地址为多个CDN平台的平台地址、且包括第三CDN平台的平台地址;按照第三CDN平台的平台地址向第三CDN平台发送转推请求;在向第三CDN平台发送转推请求之前、之后、或同时,按照多个转推地址中除第三CDN平台的平台地址以外的地址,向相应的CDN平台发送转推请求。
根据本申请实施例的另一个方面,还提供了一种用于实施上述直播推流方法的直播推流装置。图6是根据本申请实施例的一种可选的直播推流装置的示意图,如图6所示,第三CDN平台,该装置可以包括:
接收模块62,用于接收第二CDN平台的转推请求,其中,转推请求用于请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;
响应模块64,用于响应于转推请求,从第二CDN平台接收直播流。
需要说明的是,该实施例中的接收模块62可以用于执行本申请实施例中的步骤S302,该实施例中的响应模块64可以用于执行本申请实施例中的步骤S304。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
通过上述模块,可以解决相关技术中用户观看直播时出现拉流失败的技术问题,进而实现了提高推流的可用性和保障用户拉流成功率的技术效果。
可选地,接收模块62还用于:在接收第二CDN平台的转推请求之后,在接收到第二CDN平台的转推请求的情况下,查询第三CDN平台上直播流的存在状态,其中,存在状态用于确定是否发出允许转推的响应,存在状态为存在或不存在。
可选地,响应模块64还用于:当存在状态为第三CDN平台中不存在直播流的情况下,向第二CDN平台发出允许转推的响应信息,以从第二CDN平台接收直播流。
可选地,响应模块64还用于:在响应于转推请求,从第二CDN平台接收直播流之后,在第三CDN平台成功接收直播流的情况下,将第三CDN平台的存在状态有不存在更改为存在。
可选地,响应模块64还用于:第二CDN平台为多个,响应于转推请求,在从一个第二CDN平台接收直播流失败的情况下,从另一个第二CDN平台接收直播流。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
根据本申请实施例的另一个方面,还提供了一种用于实施上述直播推流方法的服务器或终端。
图7是根据本申请实施例的一种终端的结构框图,如图7所示,该终端可以包括:一个或多个(图7中仅示出一个)处理器701、存储器703、以及传输装置705,如图7所示,该终端还可以包括输入输出设备707。
其中,存储器703可用于存储软件程序以及模块,如本申请实施例中的直播推流方法和装置对应的程序指令/模块,处理器701通过运行存储在存储器703内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的直播推流方法。存储器703可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器703可进一步包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置705用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置705包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置705为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器703用于存储应用程序。
处理器701可以通过传输装置705调用存储器703存储的应用程序,应用于第二CDN平台,以执行下述步骤:向第三CDN平台发送转推请求,其中,转推请求用于第二CDN平台请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;在接收到第三CDN平台的允许转推的响应的情况下,向第三CDN平台转推直播流。
处理器701可以通过传输装置705调用存储器703存储的应用程序,应用于第三CDN平台,以执行下述步骤:接收第二CDN平台的转推请求,其中,转推请求用于请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;响应于转推请求,从第二CDN平台接收直播流。
采用本申请实施例,提供了一种直播推流的方案。通过在第一CDN平台转推后,利用转推成功的第二CDN平台向转推失败的第三CDN平台继续转推直播流,达到了保障每个需要转推的CDN平台都有直播流的目的,进而解决了相关技术中用户观看直播时出现拉流失败的技术问题,从而实现了提高推流的可用性和保障用户拉流成功率的技术效果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图7所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。图7其并不对上述电子设备的结构造成限定。例如,终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行直播推流方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:应用于第二CDN平台,向第三CDN平台发送转推请求,其中,转推请求用于第二CDN平台请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;在接收到第三CDN平台的允许转推的响应的情况下,向第三CDN平台转推直播流。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:应用于第三CDN平台,接收第二CDN平台的转推请求,其中,转推请求用于请求向第三CDN平台转推直播流,第三CDN平台为由第一CDN平台转推直播流失败的CDN平台,第一CDN平台和第二CDN平台为已经接收到直播流的CDN平台;响应于转推请求,从第二CDN平台接收直播流。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (13)
1.一种直播推流***,其特征在于,包括:
直播端和多个CDN平台,所述直播端用于通过所述多个CDN平台向看播端提供直播流,每个所述CDN平台对应于一个为所述直播端的网络直播提供内容分发和直播加速服务的CDN厂商;
所述多个CDN平台包括:第一CDN平台、第二CDN平台以及第三CDN平台,在所述第一CDN平台向所述第三CDN平台转推所述直播流失败的情况下,由所述第二CDN平台将所述直播流转推至所述第三CDN平台,其中,所述第一CDN平台和所述第二CDN平台为已经接收到所述直播流的CDN平台。
2.根据权利要求1所述的***,其特征在于,
所述第二CDN平台为多个,多个所述第二CDN平台分别向所述第三CDN平台转推所述直播流。
3.一种直播推流方法,其特征在于,应用于第二CDN平台,包括:
向第三CDN平台发送转推请求,其中,所述转推请求用于所述第二CDN平台请求向所述第三CDN平台转推直播流,所述第三CDN平台为由第一CDN平台转推所述直播流失败的CDN平台,所述第一CDN平台和所述第二CDN平台为已经接收到所述直播流的CDN平台,每个所述CDN平台对应于一个为直播端的网络直播提供内容分发和直播加速服务的CDN厂商;
在接收到所述第三CDN平台的允许转推的响应的情况下,向所述第三CDN平台转推所述直播流。
4.根据权利要求3所述的方法,其特征在于,
在向第三CDN平台发送转推请求之前,所述方法还包括:获取所述直播流的多个转推地址,其中,所述多个转推地址为多个CDN平台的平台地址、且包括所述第三CDN平台的平台地址;
向第三CDN平台发送转推请求包括:按照所述第三CDN平台的平台地址向所述第三CDN平台发送转推请求;
在向第三CDN平台发送转推请求之前、之后、或同时,所述方法还包括:按照所述多个转推地址中除所述第三CDN平台的平台地址以外的地址,向相应的CDN平台发送转推请求。
5.一种直播推流方法,其特征在于,应用于第三CDN平台,包括:
接收第二CDN平台的转推请求,其中,所述转推请求用于请求向所述第三CDN平台转推直播流,所述第三CDN平台为由第一CDN平台转推所述直播流失败的CDN平台,所述第一CDN平台和所述第二CDN平台为已经接收到所述直播流的CDN平台,每个所述CDN平台对应于一个为直播端的网络直播提供内容分发和直播加速服务的CDN厂商;
响应于所述转推请求,从所述第二CDN平台接收所述直播流。
6.根据权利要求5所述的方法,其特征在于,在接收第二CDN平台的转推请求之后,所述方法还包括:
在接收到所述第二CDN平台的转推请求的情况下,查询所述第三CDN平台上所述直播流的存在状态,其中,所述存在状态用于确定是否发出允许转推的响应,所述存在状态为存在或不存在。
7.根据权利要求6所述的方法,其特征在于,响应于所述转推请求,从所述第二CDN平台接收所述直播流,包括:
当所述存在状态表示所述第三CDN平台中不存在所述直播流的情况下,向所述第二CDN平台发出允许转推的响应信息,以从所述第二CDN平台接收所述直播流。
8.根据权利要求6所述的方法,其特征在于,在响应于所述转推请求,从所述第二CDN平台接收所述直播流之后,所述方法还包括:
在所述第三CDN平台成功接收所述直播流的情况下,将所述第三CDN平台的所述存在状态由不存在更改为存在。
9.根据权利要求6所述的方法,其特征在于,所述第二CDN平台为多个,响应于所述转推请求,从所述第二CDN平台接收所述直播流,包括:
在从一个所述第二CDN平台接收所述直播流失败的情况下,从另一个所述第二CDN平台接收所述直播流。
10.一种直播推流装置,其特征在于,应用于第二CDN平台,包括:
发送模块,用于向第三CDN平台发送转推请求,其中,所述转推请求用于所述第二CDN平台请求向所述第三CDN平台转推直播流,所述第三CDN平台为由第一CDN平台转推所述直播流失败的CDN平台,所述第一CDN平台和所述第二CDN平台为已经接收到所述直播流的CDN平台,每个所述CDN平台对应于一个为直播端的网络直播提供内容分发和直播加速服务的CDN厂商;
转推模块,用于在接收到所述第三CDN平台的允许转推的响应的情况下,向所述第三CDN平台转推所述直播流。
11.一种直播推流装置,其特征在于,应用于第三CDN平台,包括:
接收模块,用于接收第二CDN平台的转推请求,其中,所述转推请求用于请求向所述第三CDN平台转推直播流,所述第三CDN平台为由第一CDN平台转推所述直播流失败的CDN平台,所述第一CDN平台和所述第二CDN平台为已经接收到所述直播流的CDN平台,每个所述CDN平台对应于一个为直播端的网络直播提供内容分发和直播加速服务的CDN厂商;
响应模块,用于响应于所述转推请求,从所述第二CDN平台接收所述直播流。
12.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求3至9任一项所述的方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求3至9任一项所述的直播推流方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210123645.9A CN114173151B (zh) | 2022-02-10 | 2022-02-10 | 直播推流***、方法、装置以及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210123645.9A CN114173151B (zh) | 2022-02-10 | 2022-02-10 | 直播推流***、方法、装置以及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114173151A CN114173151A (zh) | 2022-03-11 |
CN114173151B true CN114173151B (zh) | 2022-05-27 |
Family
ID=80489603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210123645.9A Active CN114173151B (zh) | 2022-02-10 | 2022-02-10 | 直播推流***、方法、装置以及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114173151B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107911710A (zh) * | 2017-11-30 | 2018-04-13 | 上海佰贝科技发展有限公司 | 一种直播资源共享管理平台及方法 |
CN109819285A (zh) * | 2017-11-21 | 2019-05-28 | 乐蜜有限公司 | 一种直播方法、装置、电子设备及存储介质 |
CN112492329A (zh) * | 2020-10-29 | 2021-03-12 | 北京达佳互联信息技术有限公司 | 直播方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11431773B2 (en) * | 2019-06-13 | 2022-08-30 | Caffeine Inc. | Multicast broadcast network architcture |
-
2022
- 2022-02-10 CN CN202210123645.9A patent/CN114173151B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109819285A (zh) * | 2017-11-21 | 2019-05-28 | 乐蜜有限公司 | 一种直播方法、装置、电子设备及存储介质 |
CN107911710A (zh) * | 2017-11-30 | 2018-04-13 | 上海佰贝科技发展有限公司 | 一种直播资源共享管理平台及方法 |
CN112492329A (zh) * | 2020-10-29 | 2021-03-12 | 北京达佳互联信息技术有限公司 | 直播方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114173151A (zh) | 2022-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3550892B1 (en) | Method for network slice selection, user equipment, and network device | |
TWI701955B (zh) | 一種進行資料傳輸的方法和設備 | |
CN111427527B (zh) | 投屏方法、装置、设备及计算机可读存储介质 | |
CN108282846B (zh) | 一种业务请求处理方法及装置 | |
CN102571996B (zh) | Ip地址分配方法、装置以及网络*** | |
CN111405042B (zh) | 一种电子设备的发现方法、装置、存储介质和电子装置 | |
CN110417595B (zh) | 业务服务容灾方法、装置、***、管理服务器及电子设备 | |
CN107820289B (zh) | 一种wifi网络切换方法、装置、终端和介质 | |
CN103312593B (zh) | 一种消息分发***及方法 | |
JP5255035B2 (ja) | フェイルオーバシステム、記憶処理装置及びフェイルオーバ制御方法 | |
EP3057287A1 (en) | Node allocation method, device and system | |
CN102439946B (zh) | 数据传输方法和设备 | |
CN109818901B (zh) | 报文头压缩机制确定方法、设备及*** | |
CN113596792A (zh) | 电子设备的绑定方法和装置、存储介质及电子装置 | |
CN114173151B (zh) | 直播推流***、方法、装置以及电子设备 | |
CN109120541B (zh) | 限制网速的方法、装置、终端设备和存储介质 | |
CN110933775A (zh) | 一种建立信号连接的方法、装置和电子设备 | |
CN107979876B (zh) | 数据传输方法及终端 | |
CN115412777A (zh) | 流媒体数据的传输方法及装置、*** | |
EP2868040B1 (en) | A device and a method at the device for configuring a wireless interface | |
CN104935571A (zh) | 一种电视游戏服务端与客户端的交互方法 | |
CN113965444A (zh) | 一种家庭网关的远程恢复方法和装置 | |
CN112312094B (zh) | 媒体信息的处理方法、装置、存储介质以及电子装置 | |
US11849163B2 (en) | Redundant video stream generation | |
US20230309191A1 (en) | Emergency call method and apparatus, storage medium, and terminal |
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 |