CN112752111B - 直播流处理方法及装置、计算机可读存储介质、电子设备 - Google Patents
直播流处理方法及装置、计算机可读存储介质、电子设备 Download PDFInfo
- Publication number
- CN112752111B CN112752111B CN202011552607.2A CN202011552607A CN112752111B CN 112752111 B CN112752111 B CN 112752111B CN 202011552607 A CN202011552607 A CN 202011552607A CN 112752111 B CN112752111 B CN 112752111B
- Authority
- CN
- China
- Prior art keywords
- list
- pull
- plug
- flow
- data
- 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/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2407—Monitoring of transmitted content, e.g. distribution time, number of downloads
-
- 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/25866—Management of end-user 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/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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
-
- 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
-
- 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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26258—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Graphics (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开属于视频直播技术领域,涉及一种直播流处理方法及装置、计算机可读存储介质、电子设备。该方法包括:获取候选推流列表,并从候选推流列表中选择原画推流列表;从原画推流列表中选择其他推流列表,以确定原画推流列表和其他推流列表为推流调度结果;根据推流调度结果构造推流地址,以发送推流地址。本公开一方面,利用候选推流列表作为确定推流调度结果的基础,提升了内容分发网络的调度灵活性,满足了动态调整的需求,也在一定程度上降低了使用成本;另一方面,确定出的推流调度结果适用于多种情况,提供了多种情况下精细化且多维度的调度方式,灵活应对突发及特殊情况,减少对主播端和客户端的影响。
Description
技术领域
本公开涉及视频直播技术领域,尤其涉及一种直播流处理方法与直播流处理装置、计算机可读存储介质及电子设备。
背景技术
观看视频直播逐渐成为人们日常生活中的主流娱乐方式。一般的直播视频的传输由主播通过网络将视频上传到内容分发网络服务,经过内容分发网络服务的分发传输处理,用户可以从内容分发网络服务下载视频进行观看。
但是由于依靠固定的内容分发网络服务实现分发传输处理,会对内容分发网络产生依赖性,导致内容分发网络服务的节点产生异常时无法灵活调度。同时,过分的依赖特定的内容分发网络的服务厂商,也降低了对内容分发网络的议价能力,使得成本控制难以维持。
鉴于此,本领域亟需开发一种新的直播流处理方法及装置。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种直播流处理方法、直播流处理装置、计算机可读存储介质及电子设备,进而至少在一定程度上克服由于相关技术的限制而导致的内容分发网络服务的调度不灵活和使用成本高等技术问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本发明实施例的第一个方面,提供一种直播流处理方法,所述方法包括:获取候选推流列表,并从所述候选推流列表中选择原画推流列表;
从所述原画推流列表中选择其他推流列表,以确定所述原画推流列表和所述其他推流列表为推流调度结果;
根据所述推流调度结果构造推流地址,以发送所述推流地址。
在本发明的一种示例性实施例中,所述从所述原画推流列表中选择其他推流列表,包括:
从所述原画推流列表中选择录制推流列表;
若未选择回源推流列表,确定所述原画推流列表为转码推流列表;
确定所述录制推流列表和所述转码推流列表为其他推流列表。
在本发明的一种示例性实施例中,所述从所述原画推流列表中选择其他推流列表,包括:
从所述原画推流列表中选择录制推流列表;
若选择回源推流列表,确定所述回源推流列表为其他推流列表。
在本发明的一种示例性实施例中,所述获取候选推流列表,包括:
获取待更新推流列表;
获取待补充推流列表,并将所述待补充推流列表增加至所述待更新推流列表中得到候选推流列表;
获取待剔除推流列表,并在所述待更新推流列表中剔除所述待剔除推流列表得到候选推流列表。
在本发明的一种示例性实施例中,所述方法还包括:
确定第一拉流列表,并根据所述推流调度结果确定第二拉流列表;
根据所述第一拉流列表和所述第二拉流列表确定第三拉流列表,并在所述第三拉流列表中确定目标拉流列表作为拉流调度结果;
根据所述拉流调度结果构造拉流地址,以发送所述拉流地址。
在本发明的一种示例性实施例中,所述在所述第三拉流列表中确定目标拉流列表作为拉流调度结果,包括:
获取与所述第三拉流列表对应的多个拉流带宽数据和带宽上限阈值,并比较所述多个拉流带宽数据和所述带宽上限阈值得到上限比较结果;
根据所述上限比较结果确定目标拉流列表作为拉流调度结果。
在本发明的一种示例性实施例中,所述根据所述上限比较结果确定目标拉流列表作为拉流调度结果,包括:
若所述上限比较结果为所述多个拉流带宽数据均大于所述带宽上限阈值,获取拉流调度比例;其中,所述拉流调度比例根据所述拉流带宽数据确定;
根据所述拉流调度比例在所述第三拉流列表中选择目标拉流列表作为拉流调度结果。
在本发明的一种示例性实施例中,所述根据所述上限比较结果确定目标拉流列表作为拉流调度结果,包括:
若所述上限比较结果为所述多个拉流带宽数据未均大于所述带宽上限阈值,在所述第三拉流列表中选择保底拉流列表;
获取与所述多个拉流带宽数据对应的带宽保底阈值,并根据所述保底拉流列表在所述多个拉流带宽数据中确定多个保底带宽数据;
比较所述多个保底带宽数据和所述带宽保底阈值得到保底比较结果,并根据所述保底比较结果在所述保底拉流列表中确定目标拉流列表作为拉流调度结果。
在本发明的一种示例性实施例中,所述根据所述保底比较结果在所述保底拉流列表中确定目标拉流列表作为拉流调度结果,包括:
若所述保底比较结果为所述多个保底带宽数据均小于所述带宽保底阈值,根据所述拉流调度比例在所述保底拉流列表中确定目标拉流列表作为拉流调度结果。
在本发明的一种示例性实施例中,所述根据所述保底比较结果在所述保底拉流列表中确定目标拉流列表作为拉流调度结果,包括:
若所述保底比较结果为所述多个保底带宽数据未均小于所述带宽保底阈值,根据所述多个拉流带宽数据和所述带宽上限阈值确定拉流余量比例;
根据所述拉流调度比例和所述拉流余量比例确定目标调度比例,并根据所述目标调度比例在所述保底拉流列表中确定目标拉流列表作为拉流调度结果。
在本发明的一种示例性实施例中,所述根据所述第一拉流列表和所述第二拉流列表确定第三拉流列表,包括:
根据所述第一拉流列表和所述第二拉流列表确定备选拉流列表;
在所述备选拉流列表中剔除临时屏蔽列表得到第三拉流列表;其中,所述临时屏蔽列表根据观众数据分析结果确定。
在所述备选拉流列表中增加指定补充列表得到第三拉流列表;其中,所述指定补充列表根据观众汇报数据确定。
在本发明的一种示例性实施例中,所述方法还包括:
获取观众汇报数据,并对所述观众汇报数据进行清洗处理得到观众数据指标;
对所述观众数据指标进行分析得到观众数据分析结果,并根据所述观众数据分析结果发送告警信息。
在本发明的一种示例性实施例中,所述观众数据指标包括运营数据指标;
所述对所述观众数据指标进行分析得到观众数据分析结果,包括:
对所述运营数据指标进行分析确定跨地区运营数据,并确定所述跨地区运营数据为观众数据分析结果。
在本发明的一种示例性实施例中,所述观众数据指标包括卡顿人数和观看人数;
所述对所述观众数据指标进行分析得到观众数据分析结果,包括:
根据所述卡顿人数和所述观看人数确定卡顿率,并确定所述卡顿率为观众数据分析结果。
在本发明的一种示例性实施例中,所述观众数据指标包括视频失败次数;
所述对所述观众数据指标进行分析得到观众数据分析结果,包括:
获取与所述视频失败次数对应的失败次数阈值,并确定所述视频失败次数大于所述失败次数阈值为观众数据分析结果。
在本发明的一种示例性实施例中,所述方法还包括:
获取主播汇报数据,并对所述主播汇报数据进行清洗处理得到主播数据指标;
对所述主播数据指标进行分析得到主播数据分析结果,并根据所述主播数据分析结果发送告警信息。
在本发明的一种示例性实施例中,所述主播数据指标包括缓冲区数据;
所述对所述主播数据指标进行分析得到主播数据分析结果,包括:
获取与所述缓冲区数据对应的缓冲区阈值,并确定所述缓冲区数据大于所述缓冲区阈值为主播数据分析结果。
在本发明的一种示例性实施例中,所述方法还包括:
获取推流带宽数据以及与所述推流带宽数据对应的推流带宽阈值;
若所述推流带宽数据大于所述推流带宽阈值,发送与所述推流带宽数据对应的告警信息。
在本发明的一种示例性实施例中,所述方法还包括:
获取视频流以及与所述视频流对应的视频流参数,并确定与所述视频流参数对应的参数阈值;
若所述视频流参数大于所述参数阈值,发送与所述视频流参数对应的告警信息。
在本发明的一种示例性实施例中,所述视频流参数包括首帧时长,所述参数阈值包括首帧时长阈值;
若所述视频流参数大于所述参数阈值,发送与所述视频流参数对应的告警信息,包括:
若所述首帧时长大于所述首帧时长阈值,发送与所述首帧时长对应的告警信息。
在本发明的一种示例性实施例中,所述视频流参数包括目标帧时长间隔,所述参数阈值包括时长间隔阈值;
若所述视频流参数大于所述参数阈值,发送与所述视频流参数对应的告警信息,包括:
若所述目标帧时长间隔大于所述时长间隔阈值,发送与所述目标帧时长间隔对应的告警信息。
在本发明的一种示例性实施例中,所述视频流参数包括视频流时间戳,所述参数阈值包括时间戳阈值;
若所述视频流参数大于所述参数阈值,发送与所述视频流参数对应的告警信息,包括:
获取当前时间戳,并根据所述视频流时间戳和所述当前时间戳确定延时时长;
若所述延时时长大于所述时间戳阈值,发送与所述延时时长对应的告警信息。
根据本发明实施例的第二个方面,提供一种直播流处理装置,所述装置包括:原画列表模块,被配置为获取候选推流列表,并从所述候选推流列表中选择原画推流列表;
推流调度模块,被配置为从所述原画推流列表中选择其他推流列表,以确定所述原画推流列表和所述其他推流列表为推流调度结果;
地址构造模块,被配置为根据所述推流调度结果构造推流地址,以发送所述推流地址。
根据本发明实施例的第三个方面,提供一种电子设备,包括:处理器和存储器;其中,存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时实现上述任意示例性实施例中的直播流处理方法。
根据本发明实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意示例性实施例中的直播流处理方法。
由上述技术方案可知,本公开示例性实施例中的直播流处理方法、直播流处理装置、计算机存储介质及电子设备至少具备以下优点和积极效果:
在本公开的示例性实施例提供的方法及装置中,一方面,利用候选推流列表作为确定推流调度结果的基础,提升了内容分发网络的调度灵活性,满足了动态调整的需求,也在一定程度上降低了使用成本;另一方面,确定出的推流调度结果适用于多种情况,提供了多种情况下精细化且多维度的调度方式,灵活应对突发及特殊情况,减少对主播端和客户端的影响。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中一种直播流处理方法的流程示意图;
图2示意性示出本公开示例性实施例中获取候选推流列表的方法的流程示意图;
图3示意性示出本公开示例性实施例中一种确定其他推流列表的方法的流程示意图;
图4示意性示出本公开示例性实施例中另一种确定其他推流列表的方法的流程示意图;
图5示意性示出本公开示例性实施例中发送拉流地址的方法的流程示意图;
图6示意性示出本公开示例性实施例中确定第三拉流列表的方法的流程示意图;
图7示意性示出本公开示例性实施例中确定拉流调度结果的方法的流程示意图;
图8示意性示出本公开示例性实施例中一种根据上限比较结果确定拉流调度结果的方法的流程示意图;
图9示意性示出本公开示例性实施例中另一种根据上限比较结果确定拉流调度结果的方法的流程示意图;
图10示意性示出本公开示例性实施例中进一步确定拉流调度结果的方法的流程示意图;
图11示意性示出本公开示例性实施例中确定观众端的观众数据分析结果的方法的流程示意图;
图12示意性示出本公开示例性实施例中确定主播端的主播数据分析结果的方法的流程示意图;
图13示意性示出本公开示例性实施例中发送与推流带宽数据对应的告警信息的方法的流程示意图;
图14示意性示出本公开示例性实施例中发送与视频流参数对应的告警信息的方法的流程示意图;
图15示意性示出本公开示例性实施例中发送与延长时长对应的告警信息的方法的流程示意图;
图16示意性示出本公开示例性实施例中应用场景下直播流处理方法的结构框架图;
图17示意性示出本公开示例性实施例中应用场景下确定推流调度结果的方法的流程示意图;
图18示意性示出本公开示例性实施例中应用场景下应用回源模式的结构框架图;
图19示意性示出本公开示例性实施例中应用场景下确定拉流调度结果的方法的流程示意图;
图20示意性示出本公开示例性实施例中应用场景下按照观众汇报数据发送告警信息的流程示意图;
图21示意性示出本公开示例性实施例中应用场景下按照主播汇报数据发送告警信息的流程示意图;
图22示意性示出本公开示例性实施例中应用场景下发送与推流带宽数据对应的告警信息的结构框架图;
图23示意性示出本公开示例性实施例中应用场景下发送与视频流参数对应的告警信息的结构框架图;
图24示意性示出本公开示例性实施例中应用场景下对历史数据进行分析的结构框架图;
图25示意性示出本公开示例性实施例中一种直播流处理装置的结构示意图;
图26示意性示出本公开示例性实施例中一种用于实现直播流处理方法的电子设备;
图27示意性示出本公开示例性实施例中一种用于实现直播流处理方法的计算机可读存储介质。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
大型直播网站为广大用户提供基于视频直播的娱乐服务。一般视频的传输流程是主播开启直播,通过网络将视频上传到CDN(Content Delivery Network,内容分发网络)服务,再经过CDN服务的分发传输处理,使得用户能够从CDN服务下载视频数据进行观看。因而,视频在网络中的传输质量、CDN处理效果及分发质量,成为影响主播和用户体验的重要一环。
具体的,当主播开启开播时,主播客户端,例如PC端、手机端等,会向服务端申请推流地址。服务端根据配置约定及主播端开播选择是否走代理固定选择使用一个或多个CDN构造并返回推流地址至主播端。主播端根据主播设置是否走代理,将视频流推至返回CDN推流地址,或将推流地址和视频流推送给代理节点,代理节点推流到各CDN推流地址。最终实现推流分发到CDN的过程,至此完成开播流程。
当观众通过客户端,例如Web、PC、手机客户端等,观看主播直播视频时,观众端会向服务端请求该主播的直播流地址。服务端根据配置约定的固定CDN以及主播开播方式选择CDN进行拉流地址构造,返回给观众端。观众端获取地址后,进行下载播放,完成观看请求的流程。
该方式依靠配置约定固定的CDN,以及约定主播的开播方式所选择CDN的方案,实现选择CDN分发。在生产实践中,偶尔会碰到个别主播直播画面卡顿、CDN带宽资源不足、CDN部分区域未覆盖或CDN区域节点异常等问题。这些问题都与CDN传输质量有着重要关系。每当遇到CDN节点异常,特定主播流在某CDN存在异常等场景时欠缺有效办法进行屏蔽或调度等操作,也不能轻易对CDN进行变更,对线上直播会产生影响。
此外,由于***无法进行有效及时的监控,因此无法及时了解CDN资源状况及其他关键数据指标,也不能及时发现并处理隐患,无法对直播质量的进行更高级别的保障。大量的直播会占用大量的网络带宽资源,因此带宽成本也带来了较大的运营压力。同时,过分依赖特定CDN厂商的功能,诸如录制等,也降低了直播产品对CDN厂商的议价能力,对成本控制产生一定的负面影响。
针对相关技术中存在的问题,本公开提出了一种直播流处理方法。图1示出了直播流处理方法的流程图,如图1所示,直播流处理方法至少包括以下步骤:
步骤S110.获取候选推流列表,并从候选推流列表中选择原画推流列表。
步骤S120.从原画推流列表中选择其他推流列表,以确定原画推流列表和其他推流列表为推流调度结果。
步骤S130.根据推流调度结果构造推流地址,以发送推流地址。
在本公开的示例性实施例中,一方面,利用候选推流列表作为确定推流调度结果的基础,提升了内容分发网络的调度灵活性,满足了动态调整的需求,也在一定程度上降低了使用成本;另一方面,确定出的推流调度结果适用于多种情况,提供了多种情况下精细化且多维度的调度方式,灵活应对突发及特殊情况,减少对主播端和客户端的影响。
下面对直播流处理方法的各个步骤进行详细说明。
在步骤S110中,获取候选推流列表,并从候选推流列表中选择原画推流列表。
在本公开的示例性实施例中,候选推流列表为选择原画推流列表的CDN列表。
在可选的实施例中,图2示出了获取候选推流列表的方法的流程示意图,如图2所示,该方法至少包括以下步骤:在步骤S210中,获取待更新推流列表。
待更新推流列表为当前启用的推流用的CDN列表,包括第三方服务商提供的CDN列表,也可以包括自建的CDN列表,本示例性实施例对此不做特殊限定。
在步骤S220中,获取待补充推流列表,并将待补充推流列表增加至待更新推流列表中得到候选推流列表。
待补充推流列表可以是主播端配置的CDN白名单的列表。若主播端配置该CDN白名单,因此,可以将CDN白名单中的待补充推流列表增加到已启动的待更新推流列表中得到候选推流列表。
在步骤S230中,获取待剔除推流列表,并在待更新推流列表中剔除待剔除推流列表得到候选推流列表。
待剔除推流列表为主播端配置的CDN黑名单的列表。若主播端配置该CDN黑名单,因此,可以将CDN黑名单中的待剔除推流列表从已启动的待更新推流列表中剔除,以得到候选推流列表。
当然,也可以同时配置CDN白名单和CDN黑名单,本示例性实施例对此不做特殊限定。
在本示例性实施例中,通过配置待补充推流列表和待剔除推流列表可以更新待更新推流列表得到候选推流列表,使得确定出的候选推流列表的准确度更高,并且为候选选择原画推流列表提供了数据基础。
在选择原画推流列表之前,可以根据主播端上传的主播汇报数据中的一周平均峰值带宽数据和已配置的带宽档位确定出要选择原画推流列表中的CDN数量。
其中,带宽档位可以是按照经验或者实际需求进行设定的。举例而言,若一周平均峰值带宽数据小于2G时,给原画推流列表分配1个原画推流CDN;若一周平均峰值带宽数据在2G到5G之间时,给原画推流列表中分配2个原画推流CDN。
因此,可以按照确定出的原画推流CDN数量在候选推流列表中随机且不重复的选择CDN作为原画推流列表中的原画推流CDN,直至原画推流列表中的原画推流CDN的数量等于确定出的原画推流CDN数量。该原画推流列表中的原画推流CDN用于推送主播端的原始视频流。
在步骤S120中,从原画推流列表中选择其他推流列表,以确定原画推流列表和其他推流列表为推流调度结果。
在本公开的示例性实施例中,在确定原画推流列表之后,还可以在原画推流列表中确定其他推流列表。
在可选的实施例中,图3示出了一种确定其他推流列表的方法的流程示意图,如图3所示,该方法至少包括以下步骤:在步骤S310中,从原画推流列表中选择录制推流列表。
根据录制存储成本、或是服务商录制效果、或者是服务商可靠度,亦或是其他经验及实际情况确定在录制推流列表中包含的录制CDN的数量,以在原画推流列表中选择该数量的CDN作为录制推流列表。该录制推流列表中的CDN用于录制一份原始视频流,以满足回放或者是监管等需求。
在步骤S320中,若未选择回源推流列表,确定原画推流列表为转码推流列表。
根据一周平均峰值带宽数据和带宽档位的设定可以确定是否启动了CDN回源模式,该CDN回源模式为冷门视频流的直播模式,用于冷门视频流的调度。
当一周平均峰值带宽数据和带宽档位设定未选择回源推流列表时,确定原画推流列表同时作为转码推流列表,而无需配置回源推流列表。其中,该转码推流列表用于对原始视频流进行转码处理,以得到降低了原始视频流的分辨率的视频流。
在步骤S330中,确定录制推流列表和转码推流列表为其他推流列表。
在确定录制推流列表和转码推流列表之后,可以确定录制推流列表和转码推流列表为其他推流列表,以作为不启动CDN回源模式时的其他推流列表。
在本示例性实施例中,确定在未选择回源推流列表情况下的其他推流列表,确定方式简单准确,并且为各个阶段配置推流列表,满足多种阶段的不同需求。
在可选的实施例中,图4示出了另一种确定其他推流列表的方法的流程示意图,如图4所示,该方法至少包括以下步骤:在步骤S410中,从原画推流列表中选择录制推流列表。
根据录制存储成本、或是服务商录制效果、或者是服务商可靠度,亦或是其他经验及实际情况确定在录制推流列表中包含的录制CDN的数量,以在原画推流列表中选择该数量的CDN作为录制推流列表。该录制推流列表中的CDN用于录制一份原始视频流,以满足回放或者是监管等需求。
在步骤S420中,若选择回源推流列表,确定回源推流列表为其他推流列表。
根据一周平均峰值带宽数据和带宽档位的设定可以确定是否启动了CDN回源模式,该CDN回源模式为冷门视频流的直播模式,用于冷门视频流的调度。
当一周平均峰值带宽数据和带宽档位设定选择回源推流列表时,可以配置支持回源模式的CDN添加至回源推流列表中作为其他推流列表。该种情况下,无需配置转码推流列表。
在本示例性实施例中,确定在选择回源推流列表的情况下的其他推流列表,确定方式简单准确,并且能够满足冷门视频流的推流需求。
在确定其他推流列表之后,可以确定原画推流列表和其他推流列表为推流调度结果。
在步骤S130中,根据推流调度结果构造推流地址,以发送推流地址。
在本公开的示例性实施例中,在确定推流调度结果之后,可以构造推流地址。
具体的,按照rtmp://CDN推流域名/应用名/视频流名?参数1=值1&参数2=值2的格式构造,包含CDN识别、鉴权等参数,可以与CDN厂商进行对接约定处理。
在根据推流调度结果构造出推流地址之后,可以将推流地址发送给主播端,以供主播端进行推流处理。
进一步的,在观众端拉流时,还可以根据拉流调度结果构造拉流地址,以发送该拉流地址。
在可选的实施例中,图5示出了发送拉流地址的方法的流程示意图,如图5所示,该方法至少包括以下步骤:在步骤S510中,确定第一拉流列表,并根据推流调度结果确定第二拉流地址。
该第一拉流列表可以是从启动的CDN中确定出观众端可使用的CDN列表。
具体的,确定观众端可使用的第一拉流列表可以是根据终端类型和版本号等确定的。由于部分CDN功能接入需要播放器适配,因此旧版播放器可能不完全支持新CDN的功能,因此会根据终端类型、接入功能的版本号进行限制。例如,新版支持则返回,旧版不支持则不返回。除此之外,一些特殊机型或者客户端对部分CDN有特殊情况,同时也会将不满足条件的剔除。
在确定第二拉流列表时,可以将推流调度结果包含的CDN作为第二拉流列表中的CDN。
具体的,若启动回源模式,确定回源推流列表为第二拉流列表;若未启动回源模式,确定原画推流列表或转码推流列表为第二拉流列表。除此之外,也可以根据实际情况确定其他CDN作为第二拉流列表,本示例性实施例对此不做特殊限定。
在步骤S520中,根据第一拉流列表和第二拉流列表确定第三拉流列表,并在第三拉流列表中确定目标拉流列表作为拉流调度结果。
在确定第一拉流列表和第二拉流列表之后,可以根据第一拉流列表和第二拉流列表确定出第三拉流列表。
在可选的实施例中,图6示出了确定第三拉流列表的方法的流程示意图,如图6所示,该方法至少包括以下步骤:在步骤S610中,根据第一拉流列表和第二拉流列表确定备选拉流列表。
具体的,可以对第一拉流列表和第二拉流列表取CDN的交集得到备选拉流列表。除此之外,也可以有其他确定备选拉流列表的方式,本示例性实施例对此不做特殊限定。
在步骤S620中,在备选拉流列表中剔除临时屏蔽列表得到第三拉流列表;其中,临时屏蔽列表根据观众数据分析结果确定。
观众数据分析结果是对观众端上传的观众汇报数据进行分析得到的,可以包括卡顿率和视频失败次数等。
若根据观众数据分析结果确定的临时屏蔽列表中的CDN存在于备选拉流列表中,可以将该CDN从备选拉流列表中剔除得到第三拉流列表。
在步骤S630中,在备选拉流列表中增加指定补充列表得到第三拉流列表;其中,指定补充列表根据观众汇报数据确定。
观众汇报数据是观众端上传的反映视频播放过程的状态数据。具体的,观众端可以指定选择CDN,该指定选择的CDN取决于观众端的实现,一般出现在用户主动在播放器中选择线路的情况。
若观众端存在由指定选择的CDN组成的指定补充列表时,可以将指定补充列表增加至备选拉流列表中得到第三拉流列表。
在本示例性实施例中,根据第一拉流列表和第二拉流列表可以确定出第三拉流列表,为精准确定拉流调度结果提供了数据基础。
在确定第三拉流列表之后,可以确定第三拉流列表中的目标拉流列表作为拉流调度结果。
在可选的实施例中,图7示出了确定拉流调度结果的方法的流程示意图,如图7所示,该方法至少包括以下步骤:在步骤S710中,获取与第三拉流列表对应的多个拉流带宽数据和带宽上限阈值,并比较多个拉流带宽数据和带宽上限阈值得到上限比较结果。
读取第三拉流列表中各CDN的带宽数据作为多个拉流带宽数据,并读取预设的带宽上限阈值。该带宽上限阈值是根据CDN可提供的拉流带宽数据确定的。
举例而言,当CDN的拉流带宽数据可提供50G的带宽时,设定带宽上限阈值为50G;当CDN的拉流带宽数据可提供100G的带宽时,设定带宽上限阈值为100G。而多个拉流带宽数据对应的带宽上线阈值可以根据第三拉流列表中的CDN对应的带宽上线阈值进行确定。
进一步的,可以将多个带宽数据与带宽上限阈值进行比较得到上限比较结果。
在步骤S720中,根据上限比较结果确定目标拉流列表作为拉流调度结果。
在可选的实施例中,图8示出了一种根据上限比较结果确定拉流调度结果的方法的流程示意图,如图8所示,该方法至少包括以下步骤:在步骤S810中,若上限比较结果为多个拉流带宽数据均大于带宽上限阈值,获取拉流调度比例;其中,拉流调度比例根据拉流带宽数据确定。
当多个拉流带宽数据都超出带宽上限阈值时,读取拉流调度比例。该拉流调度比例可以是根据CDN的成本和服务能力等因素设定的。
在步骤S820中,根据拉流调度比例在第三拉流列表中选择目标拉流列表作为拉流调度结果。
在确定拉流调度比例之后,可以按照该拉流调度比例在第三拉流列表中随机且不重复的选择目标拉流列表,以将目标拉流列表作为拉流调度结果。
在本示例性实施例中,给出了在多个拉流带宽数据均大于带宽上限阈值时选择目标拉流列表的方法,减少了对CDN的过分依赖,也在一定程度上减少了成本。
图9示出了另一种根据上限比较结果确定拉流调度结果的方法的流程示意图,如图9所示,该方法至少包括以下步骤:在步骤S910中,若上限比较结果为多个拉流带宽数据未均大于带宽上限阈值,在第三拉流列表中选择保底拉流列表。
当多个拉流带宽数据中存在未超出带宽上线阈值的上限比较结果时,剔除第三拉流列表中超出带宽上线阈值的CDN得到保底拉流列表。
在步骤S920中,获取与多个拉流带宽数据对应的带宽保底阈值,并根据保底拉流列表在多个拉流带宽数据中确定保底带宽数据。
该带宽保底阈值是根据日常使用量和成本考量进行设定的。举例而言,针对第一个CDN可以设定保底带宽阈值为20G,对第二个CDN可以设定保底带宽阈值为50G。而多个拉流带宽数据对应的带宽保底阈值可以根据保底拉流列表中的CDN对应的带宽保底阈值确定。
进一步的,获取保底拉流列表中的CDN的拉流带宽数据,并确定该拉流带宽数据为保底带宽数据。
在步骤S930中,比较多个保底带宽数据和带宽保底阈值得到保底比较结果,并根据保底比较结果在保底拉流列表中确定目标拉流列表作为拉流调度结果。
在确定保底带宽数据和带宽保底阈值之后,可以将保底带宽数据和带宽保底阈值进行比较得到保底比较结果,以进一步确定目标拉流列表作为拉流调度结果。
在可选的实施例中,若保底比较结果为多个保底带宽数据均小于带宽保底阈值,根据拉流调度比例在保底拉流列表中确定目标拉流列表作为拉流调度结果。
若保底拉流列表中的CDN的保底带宽数据全都小于带宽保底阈值,可以任意且不重复的在保底拉流列表中确定目标拉流列表作为拉流调度结果。
在可选的实施例中,图10示出了进一步确定拉流调度结果的方法的流程示意图,如图10所示,该方法至少包括以下步骤:在步骤S1010中,若保底比较结果为多个保底带宽数据未均小于带宽保底阈值,根据多个拉流带宽数据和带宽上限阈值确定拉流余量比例。
若存在保底拉流列表中的CDN的保底带宽数据大于或等于带宽保底阈值,可以对拉流带宽数据和带宽上限阈值进行计算得到拉流余量比例。
具体的,带宽余量=带宽上线阈值-当前已使用的CDN带宽,拉流余量比例可以是对带宽量和带宽上限阈值进行计算得到的。除此之外,也可以根据实际情况确定该带宽余量为拉流余量比例,本示例性实施例对此不做特殊限定。
在步骤S1020中,根据拉流调度比例和拉流余量比例确定目标调度比例,并根据目标调度比例在保底拉流列表中确定目标拉流列表作为拉流调度结果。
在确定拉流调度比例和拉流余量比例之后,可以对拉流调度比例和拉流余量比例进行乘法计算得到目标调度比例。
进一步的,根据目标调度比例在保底拉流列表中随机且不重复的选择CDN得到目标拉流列表,以确定该目标拉流列表为拉流调度结果。
在本示例性实施例中,在保底拉流列表中确定目标拉流列表作为拉流调度结果,为观众端拉流提供了参考,也实现了拉流时CDN的解耦,减少了对特定CDN的依赖,在一定程度上减少了成本。
在步骤S530中,根据拉流调度结果构造拉流地址,以发送拉流地址。
在本示例性实施例中,确定拉流调度结果之后,可以按照拉流调度结果构造出拉流地址,以将该拉流地址发送至观众端。
在示例性实施例中,为拉流调度结果提供了确定方式,提升了对CDN的调度能力,能够灵活处理各种突发情况和特出情况,也优化了服务成本。
在确定出推流和拉流的调度结果之后,还可以监控推流和拉流的过程,及时发现异常情况,并对异常情况进行干预和处理。该监控过程可以包括观众端、主播端、CDN数据和视频流四方面的监控。
在可选的实施例中,图11示出了确定观众端的观众数据分析结果的方法的流程示意图,如图11所示,该方法至少包括以下步骤:在步骤S1110中,获取观众汇报数据,并对观众汇报数据进行清洗处理得到观众数据指标。
在播放视频的过程中,观众端可以以固定时间间隔发送观众汇报数据,并且,该观众汇报数据可以是以日志的形式进行发送。其中,观众汇报数据包括当前播放视频流的地址、CDN服务商、CDN服务节点IP(Internet Protocol,网际互连协议)、当前缓冲区大小、最近一次汇报累计的卡顿人数、观众端IP、观众唯一标识、拉流失败CDN标识以及与观众端相关的数据。
在接收到观众汇报数据之后,可以进行汇总处理,并进行清洗处理。清洗处理可以统一将观众汇报数据的日志格式化和标准化处理,以得到清洗后的观众数据指标。
在步骤S1120中,对观众数据指标进行分析得到观众数据分析结果,并根据观众数据分析结果发送告警信息。
在可选的实施例中,观众数据指标包括运营数据指标,对该运营数据指标进行分析确定跨地区运营数据,并确定跨地区运营数据为观众数据分析结果。
运营数据指标包括观众端IP。具体的,在确定观众端IP之后,可以在IP地址库中查询对应的地区和运营商信息。该IP地址库可以是自身具备的,也可以是第三方提供的,本示例性实施例对此不做特殊限定。基本原理即为运营商拥有固定范围的公网IP,运营商也会划分不同地区使用不同的IP段。用户上网经过运营商网络出口时,就会带上运营商的出口IP,即可认为该出口IP为观众端IP。因此,反过来也可以根据观众端IP确定地区和运营商信息。
进一步的,为确定存在跨地区运营的情况,可以利用观众端IP和服务节点IP确定出对应的运营商信息。当运营商信息不同时,确定存在跨地区运营的情况。因此,该跨地区运营数据可以是反映观众端IP存在跨运营商调度的情况的数据,以将该跨地区运营数据作为观众数据分析结果。
在本示例性实施例中,根据运营数据指标确定观众数据分析结果,分析方式简单准确,并且由于已有数据进行分析,也不会增加分析成本。
在可选的实施例中,观众数据指标包括卡顿人数和观看人数,根据该卡顿人数和该观看人数确定卡顿率,并确定卡顿率为观众数据分析结果。
当观众数据指标包括卡顿人数和观看人数时,可以利用卡顿人数除以观看人数确定卡顿率,以将该卡顿率确定为观众数据分析结果。
在本示例性实施例中,将卡顿率确定为观众数据分析结果,计算方式简单,以便于及时反映卡顿情况,并对拉流调度结果进行作用。
在可选的实施例中,观众数据指标包括视频失败次数,获取与该视频失败次数对应的失败次数阈值,并确定视频失败次数大于失败次数阈值为观众数据分析结果。
根据拉流失败CDN标记和视频流地址可以统计出视频失败次数,并预设与该视频失败次数对应的失败次数阈值。当视频失败次数大于该视频次数阈值时,可以确定为观众数据分析结果。
在本示例性实施例中,对视频失败次数进行统计作为观众数据分析结果,以便于掌握视频失败情况进行调度。
在得到观众数据分析结果之后,可以发送与该观众数据分析结果对应的告警信息。
在可选的实施例中,图12示出了确定主播端的主播数据分析结果的方法的流程示意图,如图12所示,该方法至少包括以下步骤:在步骤S1210中,获取主播汇报数据,并对主播汇报数据进行清洗处理得到主播数据指标。
在直播过程中,主播端可以以固定间隔发送主播汇报数据,并且,该主播汇报数据也可以以日志的形式发送。其中,观众汇报数据包括当前推流代理节点、推流速率、推流缓冲区大小和最新推流视频时间戳等信息。
在接收到主播汇报数据之后,可以进行汇总以进行清洗处理。该清洗处理可以统一对主播汇报数据的日志格式化和标准化处理,以得到清洗处理后的主播数据指标。
在步骤S1220中,对主播数据指标进行分析得到主播数据分析结果,并根据主播数据分析结果发送告警信息。
在可选的实施例中,主播数据指标包括缓冲区数据,获取与该缓冲区数据对应的缓冲区阈值,并确定缓冲区数据大于缓冲区阈值为主播数据分析结果。
缓冲区数据为表征推流缓冲区的大小的数据,该数据包括两部分,分别是主播日志中的推流缓冲区和视频代理日志中的推流缓冲区。当没有视频代理时,也可以仅包括主播日志中的推流缓冲区,本示例性实施例对此不做特殊限定。
当缓冲区数据大于对应的缓冲区阈值时,可以确定该判断结果为主播数据分析结果。
在本示例性实施例中,对推流缓冲区的使用情况进行判断,以实时监控推流拥塞情况。
在得到主播数据分析结果之后,可以发送对应的告警信息,以提醒运维人员及时解决。
在可选的实施例中,图13示出了发送与推流带宽数据对应的告警信息的方法的流程示意图,如图13所示,该方法至少包括以下步骤:在步骤S1310中,获取推流带宽数据以及与推流带宽数据对应的推流带宽阈值。
按照固定时间间隔可以调用CDN厂商提供的API接口查询到当前的推流带宽数据,并进一步确定预设的与该推流带宽数据对应的推流贷款阈值。
在步骤S1320中,若推流带宽数据大于推流带宽阈值,发送与推流带宽数据对应的告警信息。
对推流带宽数据和推流带宽阈值进行比较,并且,当推流带宽数据大于推流带宽阈值时,发送告警信息。
在本示例性实施例中,根据推流带宽阈值对当前的推流带宽数据进行监控,满足了对CDN使用情况的排查需求。
在可选的实施例中,图14示出了发送与视频流参数对应的告警信息的方法的流程示意图,如图14所示,该方法至少包括以下步骤:在步骤S1410中,获取视频流以及与视频流对应的视频流参数,并确定与视频流参数对应的参数阈值。
该视频流可以是当前热门主播的视频流或者是重点关注主播的视频流。其中,当前热门主播是对观看人数进行统计确定的,而重点关注主播是提前配置的主播名单。
视频流参数可以是针对选取的视频流进行拉流得到的参数,可以包括帧率、码率、编解码器、首帧时长、目标帧时长间隔和视频流时间戳等。
其中,首帧时长对应的参数阈值为首帧时长阈值;目标帧时长间隔对应的参数阈值为时长间隔阈值;视频流时间戳对应的参数阈值为时间戳阈值。
在步骤S1420中,若视频流参数大于参数阈值,发送与视频流参数对应的告警信息。
在可选的实施例中,视频流参数包括首帧时长,参数阈值包括首帧时长阈值,若该首帧时长大于首帧时长阈值,发送与首帧时长对应的告警信息。
该首帧时长是在请求获取视频流参数的时刻至返回第一个I帧的时长。其中,I帧(I frame)又称为内部画面(intra picture),I帧通常是每个GOP(MPEG所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图像。
而该首帧时长阈值是预先设置好的阈值,以对首帧时长进行监控。当首帧时长大于该首帧时长阈值时,发送告警信息进行提醒。
在可选的实施例中,视频流参数包括目标帧时长间隔,参数阈值包括时长间隔阈值,若该目标帧时长间隔大于时长间隔阈值,发送与目标帧时长间隔对应的告警信息。
该目标帧时长间隔可以是最近的两个I帧之间的时间间隔,亦即GOP(Group ofPictures,最大可含帧数目)。
而该时长间隔阈值是预先设置好的,以对目标帧时长间隔进行监控。当目标帧时长间隔大于该时长间隔阈值时,发送告警信息进行提醒。
在可选的实施例中,视频流参数包括视频流时间戳,参数阈值包括时间戳阈值。图15示出了发送与延长时长对应的告警信息的方法的流程示意图,如图15所示,该方法至少包括以下步骤:在步骤S1510中,获取当前时间戳,并根据视频流时间戳和当前时间戳确定延时时长。
该视频流时间戳可以是从视频流中的SEI(Supplemental EnhancementInformation,补充增强信息)帧读取得到的。
进一步的,用当前时间戳减去视频流时间戳戳可以得到拉流的延时时长。
在步骤S1520中,若延时时长大于时间戳阈值,发送与延时时长对应的告警信息。
获取预先设定好的与延时时长对应的时间戳阈值,并对延时时长与时间戳阈值进行比较。当延时时长大于时间戳阈值时,发送与该延时时长对应的告警信息进行提醒。
在本示例性实施例中,对视频流参数进行实时监控和分析,以便于实时掌握视频流的推送情况。
下面结合一应用场景对本公开实施例中直播流处理方法做出详细说明。
图16示出了应用场景下的直播流处理方法的结构框架图,如图16所示,主播端为主播用于视频开播的软件,包括视频推流动作;视频代理用于接收主播视频流,并根据推流调度结果将视频流分发到指定的CDN。CDN部署于边缘机房,可以减少主播网络不稳定情况以及增加推流冗余;观众端是观众用于观看主播直播的软件,支持选择观看特定主播的直播视频;CDN用于分发直播视频流和视频加速等,保证用户观看稳定,并且可以包括自建CDN服务和第三方厂商提供服务;调度模块可以根据确定推流调度结果和拉流调度结果为主播推流和观众拉流提供所使用的的CDN服务;监控模块用于收集来自CDN实时数据、主播端或观众端的日志结果、视频流分析结果等,并对相关数据进行分析,以反馈至调度模块、监控图标及告警服务。
具体的,主播端可以设置开播信息之后,例如直播标题、品类和封面图等,点击开播,向服务端发起开播请求。服务端在接收到该开播请求时,可以根据图17确定对应的推流调度结果。
图17示出了应用场景下确定推流调度结果的方法的流程示意图,如图17所示,在步骤S1701中,获取候选CDN列表,亦即待更新推流列表。
其中,待更新推流列表为当前启用的推流用的CDN列表,包括第三方服务商提供的CDN列表,也可以包括自建的CDN列表。
在步骤S1702中,设定原画推流CDN数量。
根据主播端上传的主播汇报数据中的一周平均峰值带宽数据和已配置的带宽档位确定出要选择原画推流列表中的CDN数量。
在步骤S1703中,判断是否有配置黑白名单。
在确定待更新推流列表之后,还可以获取待补充推流列表或者待剔除推流列表,亦即白名单和黑名单。
在步骤S1704中,从候选CDN列表剔除。
若配置有待剔除推流列表,获取该待剔除推流列表,亦即黑名单,并在待更新推流列表中剔除待剔除推流列表得到候选推流列表。
在步骤S1705中,加入原画推流CDN列表。
若配置为待补充推流列表,将待补充推流列表增加至待更新推流列表中得到候选推流列表。
在步骤S1706中,选取原画推流CDN列表。
按照确定出的原画推流列表中的CDN数量在候选推流列表中进行随机且把不重复的选取得到原画推流列表。
在步骤S1707中,选取录制CDN。
在原画推流列表中选择录制CDN组成录制推流列表。
在步骤S1708中,判断是否启动CDN回源模式。
根据一周平均峰值带宽数据和带宽档位的设定可以确定是否启动了CDN回源模式,该CDN回源模式为冷门视频流的直播模式,用于冷门视频流的调度。
在步骤S1709中,配置CDN回源列表。
当一周平均峰值带宽数据和带宽档位设定选择回源推流列表时,可以配置支持回源模式的CDN添加至回源推流列表中作为其他推流列表。
图18示出了应用场景下应用回源模式的结构框架图,如图18所示,主播端在直播过程中,将视频流和推流调度结果推送到视频代理处。视频代理在接收到主播视频流推流时,根据推流调度结果判断是否启用了CDN回源模式。若使用该CDN回源模式,则不将视频流推动到外部CDN,只将视频流推送到自建CDN服务。当观众端请求主播视频流地址时,服务端可以根据在启动CDN回源模式的情况下,从回源推流列表中选择CDN,返回回源模式的拉流地址。观众端在得到该拉流地址时,可以使观众端进行拉流播放。
其中,外部CDN在回源模式下,若不存在该视频流时,可以直接向自建CDN服务申请拉流;若外部CDN不存在该视频流时,直接返回缓存在CDN上的视频流。
当用户需要从CDN观看视频,CDN进行回源,此时才会产生回源的这一条视频流的带宽。当用户不再观看时,CDN又会断开回源连接,不再产生带宽。而且,多个用户观看的时候,CDN也只会回源一次。
因此,在回源模式下,只会在有用户观看时产生带宽成本。该回源模式应用在冷门视频流中,可以节省大量无人观看而浪费的推流带宽成本。
在步骤S1710中,配置转码CDN列表。
当一周平均峰值带宽数据和带宽档位设定未选择回源推流列表时,确定原画推流列表同时作为转码推流列表,而无需配置回源推流列表。其中,该转码推流列表用于对原始视频流进行转码处理,以得到降低了原始视频流的分辨率的视频流。
在得到推流调度结果之后,服务端可以将该推流调度结果保存至数据库中,以按照该推流调度结果构造推流地址,并返回给主播端。
主播端在接收到该推流调度结果后,可以将该推流调度结果与视频流一并发送给视频代理,以便于视频代理将接收到的视频流分发到指定的CDN成功开始直播。
观众端在拉流时,可以请求服务端获取指定主播的视频流地址。并且,在请求时会携带观众端类型、版本号和观看清晰度等参数。服务端接收到观看请求时,判断主播不在直播时,返回不在播信息。当主播进行直播时,服务端可以根据推流调度结果确定出拉流调度结果,并构造出拉流地址返回给观众端。
图19示出了应用场景下确定拉流调度结果的方法的流程示意图,如图19所示,在步骤S1901中,选取播放器可用CDN作为备选CDN列表1,亦即第一拉流列表。
根据播放器参数,例如观众端类型和版本号等从启用的CDN中选择可使用的CDN组成第一拉流列表。
在步骤S1902中,选取主播当前推流CDN作为备选CDN列表2,亦即第二拉流列表。
在确定第二拉流列表时,可以将推流调度结果包含的CDN作为第二拉流列表中的CDN。
在步骤S1903中,实际可调度CDN作为备选CDN列表3,亦即第三拉流列表。
具体的,可以对第一拉流列表和第二拉流列表取CDN的交集得到备选拉流列表。
在步骤S1904中,判断是否存在屏蔽CDN规则,亦即临时屏蔽列表。
临时屏蔽列表是根据观众数据分析结果确定的。观众数据分析结果是对观众端上传的观众汇报数据进行分析得到的,可以包括卡顿率和视频失败次数等。
在步骤S1905中,剔除屏蔽CDN。
若根据观众数据分析结果确定的临时屏蔽列表中的CDN存在于备选拉流列表中,可以将该CDN从备选拉流列表中剔除得到第三拉流列表。
在步骤S1906中,读取基础调度比例系数,亦即拉流调度比例。
在步骤S1907中,判断是否存在CDN超出服务带宽上限。
获取与第三拉流列表对应的多个拉流带宽数据和带宽上限阈值,并比较多个拉流带宽数据和带宽上限阈值得到上限比较结果。
在步骤S1908中,判断是否全部拉流带宽数据大于带宽上限阈值。
在步骤S1909中,若全部拉流带宽数据大于带宽上限阈值,利用拉流调度比例在第三拉流列表中选择目标拉流列表作为拉流调度结果。
在步骤S1910中,若全部拉流带宽数据未大于带宽上限阈值,或者是不存在CDN超出带宽上限阈值时,从第三拉流列表中剔除超出带宽上限阈值的CDN得到保底拉流列表。
在步骤S1911中,判断是否全部达到带宽该带宽保底阈值是根据日常使用量和成本考量进行设定的。举例而言,针对第一个CDN可以设定保底带宽阈值为20G,对第二个CDN可以设定保底带宽阈值为50G。而多个拉流带宽数据对应的带宽保底阈值可以根据保底拉流列表中的CDN对应的带宽保底阈值确定保底阈值。
在步骤S1912中,当多个保底带宽数据未均小于带宽保底阈值时,计算CDN余量比例,亦即拉流余量比例。
若存在保底拉流列表中的CDN的保底带宽数据大于或等于带宽保底阈值,可以对拉流带宽数据和带宽上限阈值进行计算得到拉流余量比例。
在步骤S1913中,计算并使用加权调度系数,亦即目标调度比例。
在确定拉流调度比例和拉流余量比例之后,可以对拉流调度比例和拉流余量比例进行乘法计算得到目标调度比例。
在步骤S1914中,当多个保底带宽数据均小于带宽保底阈值,剔除达到保底CDN。
具体的,当多个保底带宽数据中存在部分小于带宽保底阈值时,可以剔除到小于保底带宽阈值的CDN。
在步骤S1915中,使用基础调度比例系数。
在步骤S1916中,选取服务CDN得到拉流调度结果。
按照步骤S1913中的目标调度比例或者是步骤S1915中的基础调度比例系数选择目标拉流列表作为拉流调度结果。
在得到拉流调度结果之后,可以构造对应的拉流地址,并返回给观众端。观众端可以成功从服务端获取该拉流地址,并进行拉流播放。
图20示出了应用场景下按照观众汇报数据发送告警信息的流程示意图,如图20所示,在步骤S2010中,在播放视频的过程中,观众端可以以固定时间间隔发送观众汇报数据,并且,该观众汇报数据可以是以日志的形式进行发送。其中,观众汇报数据包括当前播放视频流的地址、CDN服务商、CDN服务节点IP、当前缓冲区大小、最近一次汇报累计的卡顿人数、观众端IP、观众唯一标识、拉流失败CDN标识以及与观众端相关的数据。
在步骤S2020中,在接收到观众汇报数据之后,可以进行汇总处理,并进行清洗处理。清洗处理可以统一将观众汇报数据的日志格式化和标准化处理,以得到清洗后的观众数据指标。
在步骤S2030中,日志分析。
根据观众端IP分析所在地区、运营商,并进行汇总处理,进一步的,统计得到观众端在各地区、各运营商分布情况,从而分析得到热门地区及各个地区的重点运营商。
根据CDN服务节点IP及观众端IP,解析其各自的运营商,以分析得知是否存在跨运营商服务的情况。
根据视频流地址提取得到视频流名,然后通过统计可以得知热门视频流、各视频流观看人数和CDN调度分布情况。
根据最近一次汇报累计的卡顿次数、CDN服务商、视频流地址,统计各CDN服务商的卡顿率、各视频流在各CDN服务商的卡顿率情况。其中,卡顿率=发生卡顿人数/总观看人数。
根据拉流失败CDN标记和视频流地址,统计失败CDN及视频流情况。
在步骤S2040中,存储在数据库。
服务端还可以将观众汇报数据存储在数据库中,以通过图标等形式展示观众汇报数据。
在步骤S2050中,以定时任务的形式从数据库读取观众汇报数据,发起告警或反馈调用。
观众数据指标包括运营数据指标,对该运营数据指标进行分析确定跨地区运营数据,并确定跨地区运营数据为观众数据分析结果,以发送对应的告警信息提示CDN服务商进行自查。
观众数据指标包括卡顿人数和观看人数,根据该卡顿人数和该观看人数确定卡顿率,并确定卡顿率为观众数据分析结果。对于该观众数据分析结果发送告警信息,并调用调度接口,以使该调度结构在对应的视频流调度时,增加临时屏蔽列表。在屏蔽时间结束后可以自动恢复,该屏蔽时间可以根据实际情况设定调整。
观众数据指标包括视频失败次数,获取与该视频失败次数对应的失败次数阈值,并确定视频失败次数大于失败次数阈值为观众数据分析结果。对于该观众数据分析结果发送告警信息,也可以设定对应的临时屏蔽列表。
服务端针对卡顿明显的情况,可以通过播放器和服务端的通信通道下发CDN切换指令或者清晰度切换指令,使观众无感切换。
图21示出了应用场景下按照主播汇报数据发送告警信息的流程示意图,如图21所示,在步骤S2110中,主播端正在直播。
在直播过程中,主播端可以以固定间隔发送主播汇报数据,并且,该主播汇报数据也可以以日志的形式发送。其中,观众汇报数据包括当前推流代理节点、推流速率、推流缓冲区大小和最新推流视频时间戳等信息。
在步骤S2120中,日志清洗程序。
在接收到主播汇报数据之后,可以进行汇总以进行清洗处理。该清洗处理可以统一对主播汇报数据的日志格式化和标准化处理得到清洗后的主播数据指标。
在步骤S2130中,日志分析。
主播数据指标包括缓冲区数据,获取与该缓冲区数据对应的缓冲区阈值,并确定缓冲区数据大于缓冲区阈值为主播数据分析结果。
除此之外,根据还可以根据主播日志中的推流节点信息统计各个视频代理点当前推流数作为主播数据指标;或者是根据视频代理日志统计收流路数和分别推送到各CDN的视频流数作为主播数据指标。
其中,收流路数为视频代理节点接收到当前视频流的数量。
在步骤S2140中,存储在数据库中。
将主播数据指标存储在数据库中,以使该主播数据指标按照图标的形式进行展示。
在步骤S2150中,根据主播数据分析结果发送告警信息。
当缓冲区数据大于对应的缓冲区阈值时,可以确定该判断结果为主播数据分析结果,且该主播数据分析结果显示推流拥塞。在得到主播数据分析结果之后,可以发送对应的告警信息,以提醒运维人员及时解决。
图22示出了应用场景下发送与推流带宽数据对应的告警信息的结构框架图,如图22所示,服务端以固定时间间隔调用各家CDN厂商提供的API接口查询当前在推视频流数目、当前观看人数、当前热门视频流、当前热门区域和当前的推流带宽数据。
服务端对查询结果进行整理,并存储在数据库中,以使查询结果按照图标的形式进行展示。
对推流带宽数据和推流带宽阈值进行比较,并且,当推流带宽数据大于推流带宽阈值时,发送告警信息。
除此之外,还可以定时发送当前的拉流带宽数据,以调整拉流调度比例。
图23示出了应用场景下发送与视频流参数对应的告警信息的结构框架图,如图23所示,获取视频流以及与视频流对应的视频流参数,并确定与视频流参数对应的参数阈值。
该视频流可以是当前热门主播的视频流或者是重点关注主播的视频流。其中,当前热门主播是对观看人数进行统计确定的,而重点关注主播是提前配置的主播名单。
视频流参数可以是针对选取的视频流进行拉流得到的参数,可以包括帧率、码率、编解码器、首帧时长、目标帧时长间隔和视频流时间戳等。
其中,首帧时长对应的参数阈值为首帧时长阈值;目标帧时长间隔对应的参数阈值为时长间隔阈值;视频流时间戳对应的参数阈值为时间戳阈值。
将视频流参数存储在数据库中,以发送与视频流参数对应的告警信息。
视频流参数包括首帧时长,参数阈值包括首帧时长阈值,若该首帧时长大于首帧时长阈值,发送与首帧时长对应的告警信息。视频流参数包括目标帧时长间隔,参数阈值包括时长间隔阈值,若该目标帧时长间隔大于时长间隔阈值,发送与目标帧时长间隔对应的告警信息。根据视频流时间戳和当前时间戳确定延时时长,并在延时时长大于时间戳阈值时,发送与延时时长对应的告警信息。
图24示出了应用场景下对历史数据进行分析的结构框架图,如图24所示,服务端每日定时统计前一日主播的峰值带宽数据和近一周所有主播开播的平均峰值带宽,并将峰值带宽数据和平均峰值带宽存储在数据库中,以供推流调度或拉流调度使用及图标展示。
除此之外,也可以在实际情况的需求下,通过简易的调度比例或者是设定黑白名单的策略实现对CDN的调度。
在该应用场景下的直播流处理方法,一方面,利用候选推流列表作为确定推流调度结果的基础,提升了内容分发网络的调度灵活性,满足了动态调整的需求,也在一定程度上降低了使用成本;另一方面,确定出的推流调度结果适用于多种情况,提供了多种情况下精细化且多维度的调度方式,灵活应对突发及特殊情况,减少对主播端和客户端的影响。
此外,在本公开的示例性实施例中,还提供一种直播流处理装置。图25示出了直播流处理装置的结构示意图,如图25所示,直播流处理装置2500可以包括:原画列表模块2510、推流调度模块2520和地址构造模块2530。其中:
原画列表模块2510,被配置为获取候选推流列表,并从候选推流列表中选择原画推流列表;推流调度模块2520,被配置为从原画推流列表中选择其他推流列表,以确定原画推流列表和其他推流列表为推流调度结果;地址构造模块2530,被配置为根据推流调度结果构造推流地址,以发送推流地址。
上述直播流处理装置2500的具体细节已经在对应的直播流处理方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了直播流处理装置2500的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
下面参照图26来描述根据本发明的这种实施例的电子设备2600。图26显示的电子设备2600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图26所示,电子设备2600以通用计算设备的形式表现。电子设备2600的组件可以包括但不限于:上述至少一个处理单元2610、上述至少一个存储单元2620、连接不同***组件(包括存储单元2620和处理单元2610)的总线2630、显示单元2640。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元2610执行,使得所述处理单元2610执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
存储单元2620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2621和/或高速缓存存储单元2622,还可以进一步包括只读存储单元(ROM)2623。
存储单元2620还可以包括具有一组(至少一个)程序模块2625的程序/实用工具2624,这样的程序模块2625包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线2630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备2600也可以与一个或多个外部设备2800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备2600交互的设备通信,和/或与使得该电子设备2600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口2650进行。并且,电子设备2600还可以通过网络适配器2660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器2640通过总线2630与电子设备2600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备2600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施例的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的步骤。
参考图27所示,描述了根据本发明的实施例的用于实现上述方法的程序产品2700,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
Claims (23)
1.一种直播流处理方法,其特征在于,所述方法包括:
获取候选推流列表,并从所述候选推流列表中选择原画推流列表;
从所述原画推流列表中选择其他推流列表,以确定所述原画推流列表和所述其他推流列表为推流调度结果;
根据所述推流调度结果构造推流地址,以发送所述推流地址;
其中,所述从所述原画推流列表中选择其他推流列表,包括:
从所述原画推流列表中选择录制推流列表;
若未选择回源推流列表,确定所述原画推流列表为转码推流列表;
确定所述录制推流列表和所述转码推流列表为其他推流列表;或者
从所述原画推流列表中选择录制推流列表;
若选择回源推流列表,确定所述回源推流列表为其他推流列表。
2.根据权利要求1所述的直播流处理方法,其特征在于,所述获取候选推流列表,包括:
获取待更新推流列表;
获取待补充推流列表,并将所述待补充推流列表增加至所述待更新推流列表中得到候选推流列表;
获取待剔除推流列表,并在所述待更新推流列表中剔除所述待剔除推流列表得到候选推流列表。
3.根据权利要求1所述的直播流处理方法,其特征在于,所述方法还包括:
确定第一拉流列表,并根据所述推流调度结果确定第二拉流列表;
根据所述第一拉流列表和所述第二拉流列表确定第三拉流列表,并在所述第三拉流列表中确定目标拉流列表作为拉流调度结果;
根据所述拉流调度结果构造拉流地址,以发送所述拉流地址。
4.根据权利要求3所述的直播流处理方法,其特征在于,所述在所述第三拉流列表中确定目标拉流列表作为拉流调度结果,包括:
获取与所述第三拉流列表对应的多个拉流带宽数据和带宽上限阈值,并比较所述多个拉流带宽数据和所述带宽上限阈值得到上限比较结果;
根据所述上限比较结果确定目标拉流列表作为拉流调度结果。
5.根据权利要求4所述的直播流处理方法,其特征在于,所述根据所述上限比较结果确定目标拉流列表作为拉流调度结果,包括:
若所述上限比较结果为所述多个拉流带宽数据均大于所述带宽上限阈值,获取拉流调度比例;其中,所述拉流调度比例根据所述拉流带宽数据确定;
根据所述拉流调度比例在所述第三拉流列表中选择目标拉流列表作为拉流调度结果。
6.根据权利要求5所述的直播流处理方法,其特征在于,所述根据所述上限比较结果确定目标拉流列表作为拉流调度结果,包括:
若所述上限比较结果为所述多个拉流带宽数据未均大于所述带宽上限阈值,在所述第三拉流列表中选择保底拉流列表;
获取与所述多个拉流带宽数据对应的带宽保底阈值,并根据所述保底拉流列表在所述多个拉流带宽数据中确定多个保底带宽数据;
比较所述多个保底带宽数据和所述带宽保底阈值得到保底比较结果,并根据所述保底比较结果在所述保底拉流列表中确定目标拉流列表作为拉流调度结果。
7.根据权利要求6所述的直播流处理方法,其特征在于,所述根据所述保底比较结果在所述保底拉流列表中确定目标拉流列表作为拉流调度结果,包括:
若所述保底比较结果为所述多个保底带宽数据均小于所述带宽保底阈值,根据所述拉流调度比例在所述保底拉流列表中确定目标拉流列表作为拉流调度结果。
8.根据权利要求6所述的直播流处理方法,其特征在于,所述根据所述保底比较结果在所述保底拉流列表中确定目标拉流列表作为拉流调度结果,包括:
若所述保底比较结果为所述多个保底带宽数据未均小于所述带宽保底阈值,根据所述多个拉流带宽数据和所述带宽上限阈值确定拉流余量比例;
根据所述拉流调度比例和所述拉流余量比例确定目标调度比例,并根据所述目标调度比例在所述保底拉流列表中确定目标拉流列表作为拉流调度结果。
9.根据权利要求3所述的直播流处理方法,其特征在于,所述根据所述第一拉流列表和所述第二拉流列表确定第三拉流列表,包括:
根据所述第一拉流列表和所述第二拉流列表确定备选拉流列表;
在所述备选拉流列表中剔除临时屏蔽列表得到第三拉流列表;其中,所述临时屏蔽列表根据观众数据分析结果确定;
在所述备选拉流列表中增加指定补充列表得到第三拉流列表;其中,所述指定补充列表根据观众汇报数据确定。
10.根据权利要求1所述的直播流处理方法,其特征在于,所述方法还包括:
获取观众汇报数据,并对所述观众汇报数据进行清洗处理得到观众数据指标;
对所述观众数据指标进行分析得到观众数据分析结果,并根据所述观众数据分析结果发送告警信息。
11.根据权利要求10所述的直播流处理方法,其特征在于,所述观众数据指标包括运营数据指标;
所述对所述观众数据指标进行分析得到观众数据分析结果,包括:
对所述运营数据指标进行分析确定跨地区运营数据,并确定所述跨地区运营数据为观众数据分析结果。
12.根据权利要求10所述的直播流处理方法,其特征在于,所述观众数据指标包括卡顿人数和观看人数;
所述对所述观众数据指标进行分析得到观众数据分析结果,包括:
根据所述卡顿人数和所述观看人数确定卡顿率,并确定所述卡顿率为观众数据分析结果。
13.根据权利要求10所述的直播流处理方法,其特征在于,所述观众数据指标包括视频失败次数;
所述对所述观众数据指标进行分析得到观众数据分析结果,包括:
获取与所述视频失败次数对应的失败次数阈值,并确定所述视频失败次数大于所述失败次数阈值为观众数据分析结果。
14.根据权利要求1所述的直播流处理方法,其特征在于,所述方法还包括:
获取主播汇报数据,并对所述主播汇报数据进行清洗处理得到主播数据指标;
对所述主播数据指标进行分析得到主播数据分析结果,并根据所述主播数据分析结果发送告警信息。
15.根据权利要求14所述的直播流处理方法,其特征在于,所述主播数据指标包括缓冲区数据;
所述对所述主播数据指标进行分析得到主播数据分析结果,包括:
获取与所述缓冲区数据对应的缓冲区阈值,并确定所述缓冲区数据大于所述缓冲区阈值为主播数据分析结果。
16.根据权利要求1所述的直播流处理方法,其特征在于,所述方法还包括:
获取推流带宽数据以及与所述推流带宽数据对应的推流带宽阈值;
若所述推流带宽数据大于所述推流带宽阈值,发送与所述推流带宽数据对应的告警信息。
17.根据权利要求1所述的直播流处理方法,其特征在于,所述方法还包括:
获取视频流以及与所述视频流对应的视频流参数,并确定与所述视频流参数对应的参数阈值;
若所述视频流参数大于所述参数阈值,发送与所述视频流参数对应的告警信息。
18.根据权利要求17所述的直播流处理方法,其特征在于,所述视频流参数包括首帧时长,所述参数阈值包括首帧时长阈值;
若所述视频流参数大于所述参数阈值,发送与所述视频流参数对应的告警信息,包括:
若所述首帧时长大于所述首帧时长阈值,发送与所述首帧时长对应的告警信息。
19.根据权利要求17所述的直播流处理方法,其特征在于,所述视频流参数包括目标帧时长间隔,所述参数阈值包括时长间隔阈值;
若所述视频流参数大于所述参数阈值,发送与所述视频流参数对应的告警信息,包括:
若所述目标帧时长间隔大于所述时长间隔阈值,发送与所述目标帧时长间隔对应的告警信息。
20.根据权利要求17所述的直播流处理方法,其特征在于,所述视频流参数包括视频流时间戳,所述参数阈值包括时间戳阈值;
若所述视频流参数大于所述参数阈值,发送与所述视频流参数对应的告警信息,包括:
获取当前时间戳,并根据所述视频流时间戳和所述当前时间戳确定延时时长;
若所述延时时长大于所述时间戳阈值,发送与所述延时时长对应的告警信息。
21.一种直播流处理装置,其特征在于,包括:
原画列表模块,被配置为获取候选推流列表,并从所述候选推流列表中选择原画推流列表;
推流调度模块,被配置为从所述原画推流列表中选择其他推流列表,以确定所述原画推流列表和所述其他推流列表为推流调度结果;
地址构造模块,被配置为根据所述推流调度结果构造推流地址,以发送所述推流地址;
其中,所述从所述原画推流列表中选择其他推流列表,包括:
从所述原画推流列表中选择录制推流列表;
若未选择回源推流列表,确定所述原画推流列表为转码推流列表;
确定所述录制推流列表和所述转码推流列表为其他推流列表;或者
从所述原画推流列表中选择录制推流列表;
若选择回源推流列表,确定所述回源推流列表为其他推流列表。
22.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-20中任意一项所述的直播流处理方法。
23.一种电子设备,其特征在于,包括:
处理器;
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器被配置为经由执行所述可执行指令来执行权利要求1-20中任意一项所述的直播流处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011552607.2A CN112752111B (zh) | 2020-12-24 | 2020-12-24 | 直播流处理方法及装置、计算机可读存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011552607.2A CN112752111B (zh) | 2020-12-24 | 2020-12-24 | 直播流处理方法及装置、计算机可读存储介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112752111A CN112752111A (zh) | 2021-05-04 |
CN112752111B true CN112752111B (zh) | 2023-05-16 |
Family
ID=75645887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011552607.2A Active CN112752111B (zh) | 2020-12-24 | 2020-12-24 | 直播流处理方法及装置、计算机可读存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112752111B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760490B (zh) * | 2022-04-15 | 2024-03-19 | 上海哔哩哔哩科技有限公司 | 视频流处理方法及装置 |
CN115022666B (zh) * | 2022-06-27 | 2024-02-09 | 北京蔚领时代科技有限公司 | 一种虚拟数字人的互动方法及其*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105338368A (zh) * | 2015-11-02 | 2016-02-17 | 腾讯科技(北京)有限公司 | 一种视频的直播流转点播数据的方法、装置及*** |
CN107105309A (zh) * | 2017-04-25 | 2017-08-29 | 北京潘达互娱科技有限公司 | 直播调度方法及装置 |
CN107196794A (zh) * | 2017-05-18 | 2017-09-22 | 腾讯科技(深圳)有限公司 | 一种卡顿异常的分析方法及装置 |
CN107517228A (zh) * | 2016-06-15 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种内容分发网络中的动态加速方法及装置 |
CN108566558A (zh) * | 2018-04-24 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 视频流处理方法、装置、计算机设备及存储介质 |
EP3383049A1 (en) * | 2017-03-31 | 2018-10-03 | TVU Networks Corporation | Methods, apparatus and systems for exchange of video content |
CN109600642A (zh) * | 2018-12-17 | 2019-04-09 | 广州华多网络科技有限公司 | 一种cdn资源调度方法及装置 |
CN109819285A (zh) * | 2017-11-21 | 2019-05-28 | 乐蜜有限公司 | 一种直播方法、装置、电子设备及存储介质 |
CN111510734A (zh) * | 2020-04-17 | 2020-08-07 | 广州虎牙科技有限公司 | 一种cdn调度方法、装置、存储介质及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9774914B2 (en) * | 2015-08-25 | 2017-09-26 | Wowza Media Systems, LLC | Scheduling video content from multiple sources for presentation via a streaming video channel |
CN105657578B (zh) * | 2015-10-29 | 2018-06-29 | 乐视致新电子科技(天津)有限公司 | 基于hls协议的直播方法、***及客户端 |
-
2020
- 2020-12-24 CN CN202011552607.2A patent/CN112752111B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105338368A (zh) * | 2015-11-02 | 2016-02-17 | 腾讯科技(北京)有限公司 | 一种视频的直播流转点播数据的方法、装置及*** |
CN107517228A (zh) * | 2016-06-15 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 一种内容分发网络中的动态加速方法及装置 |
EP3383049A1 (en) * | 2017-03-31 | 2018-10-03 | TVU Networks Corporation | Methods, apparatus and systems for exchange of video content |
CN107105309A (zh) * | 2017-04-25 | 2017-08-29 | 北京潘达互娱科技有限公司 | 直播调度方法及装置 |
CN107196794A (zh) * | 2017-05-18 | 2017-09-22 | 腾讯科技(深圳)有限公司 | 一种卡顿异常的分析方法及装置 |
CN109819285A (zh) * | 2017-11-21 | 2019-05-28 | 乐蜜有限公司 | 一种直播方法、装置、电子设备及存储介质 |
CN108566558A (zh) * | 2018-04-24 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 视频流处理方法、装置、计算机设备及存储介质 |
CN109600642A (zh) * | 2018-12-17 | 2019-04-09 | 广州华多网络科技有限公司 | 一种cdn资源调度方法及装置 |
CN111510734A (zh) * | 2020-04-17 | 2020-08-07 | 广州虎牙科技有限公司 | 一种cdn调度方法、装置、存储介质及设备 |
Non-Patent Citations (1)
Title |
---|
"基于CDN和P2P混合***的流媒体调度策略";王伟岗;《科技信息》;20100125;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112752111A (zh) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10911789B2 (en) | Automatic failover for live video streaming | |
CN112752111B (zh) | 直播流处理方法及装置、计算机可读存储介质、电子设备 | |
CN105721811A (zh) | 直播视频的录制方法和*** | |
CN108810657B (zh) | 一种设置视频封面的方法和*** | |
US11044497B1 (en) | Method of unified video switching and advertisement splicing within consumer devices | |
JPWO2014021125A1 (ja) | 受信装置、受信方法、送信装置、及び送信方法 | |
US10887363B1 (en) | Streaming decision in the cloud | |
CN103067776A (zh) | 节目推送方法、***及智能显示设备、云端服务器 | |
CN111787404B (zh) | 直播流播放方法及装置 | |
CN113891175B (zh) | 直播推流方法、装置及*** | |
WO2023061060A1 (zh) | 音视频码流的调度方法、***、介质及电子装置 | |
CN114189705A (zh) | 直播卡顿处理方法及*** | |
CN110149524B (zh) | 直播流切片***、直播流切片方法、装置及可读介质 | |
CN110166837A (zh) | 一种流媒体质量监控方法及*** | |
CN115209231A (zh) | 数据传输方法、装置、设备和计算机可读存储介质 | |
CN106789913B (zh) | 用户账号管理方法及装置 | |
CN109948082B (zh) | 直播信息处理方法及装置、电子设备、存储介质 | |
US20220158952A1 (en) | Delivery of Multimedia Components According to User Activity | |
CN106549794A (zh) | 一种ott业务的质量监测***、装置和方法 | |
US20140115180A1 (en) | Multi-platform content streaming | |
CN110166561B (zh) | 可穿戴设备的数据处理方法、装置、***、设备及介质 | |
KR20180107160A (ko) | 멀티미디어 서비스의 컨텐츠 관련 정보 제공 방법 및 장치 | |
CN108540820B (zh) | 流数据管理方法、装置及计算机可读存储介质 | |
CN111800649A (zh) | 存储视频的方法和装置以及生成视频的方法和装置 | |
CN106412640B (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 |