CN111464759A - 一种直播导播方法、装置、存储介质及设备 - Google Patents

一种直播导播方法、装置、存储介质及设备 Download PDF

Info

Publication number
CN111464759A
CN111464759A CN202010225072.1A CN202010225072A CN111464759A CN 111464759 A CN111464759 A CN 111464759A CN 202010225072 A CN202010225072 A CN 202010225072A CN 111464759 A CN111464759 A CN 111464759A
Authority
CN
China
Prior art keywords
cdn node
stream
target
server
frame rate
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010225072.1A
Other languages
English (en)
Other versions
CN111464759B (zh
Inventor
陈毅贤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202010225072.1A priority Critical patent/CN111464759B/zh
Publication of CN111464759A publication Critical patent/CN111464759A/zh
Application granted granted Critical
Publication of CN111464759B publication Critical patent/CN111464759B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2181Source of audio or video content, e.g. local disk arrays comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/21Server components or server architectures
    • H04N21/218Source of audio or video content, e.g. local disk arrays
    • H04N21/2187Live feed
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64746Control signals issued by the network directed to the server or the client
    • H04N21/64761Control signals issued by the network directed to the server or the client directed to the server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/268Signal distribution or switching

Abstract

本说明书提供一种直播导播方法、装置、存储介质及设备。该方法中,通过检测拉流或推流时的视频流的帧率,在拉流帧率异常时,探测所有服务器从视频源拉流时的状况并确定出目标服务器用以替换当前的指定服务器;在推流帧率异常时,获取各个CDN节点的目标地址和网络状态并确定出目标CDN节点用以替换当前的指定CDN节点,如此,能够及时、准确地将视频流切换至合适的节点进行传输,保证了视频流的帧率在传输过程中的稳定性;这一方法可应用于实现一种自动化导播系统,可方便运营者对各直播间的管理。

Description

一种直播导播方法、装置、存储介质及设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种直播导播方法、装置、存储介质及设备。
背景技术
随着网络直播技术的发展,直播的质量也变得越来越重要。导播是直播的一个重要环节,其对整个直播的质量负责,好的直播导播,需要让直播能进行得更流畅,效果更好。换而言之,直播导播的任务可以包括:保证视频流在推流和拉流中的稳定性。
RTMP(Real Time Messaging Protocol,实时消息传输协议)是直播场景所常用的流传输协议。但在直播场景中,由于主播(或者其他推流硬件)和观众往往分布在不同地区,并且使用的是不同运营商的网络,因此,通常需要通过分布在不同地区的集群中的服务器拉取主播端的视频流,以及将视频流推送到运营商网络下的CDN(Content DeliveryNetwork,内容分发网络)节点,由CDN节点分发至观众端。也就是说,在传输过程中,视频流需要经过大量的不同网络节点进行数据传输才能到达目标客户端上,从而导致视频流的帧率的稳定性得不到保证。当RTMP推流或RTMP拉流过程中出现帧率不稳的情况时,会造成直播画面卡顿,影响直播效果,这是当前完成直播导播的过程中亟待解决的问题。
发明内容
为克服相关技术中存在的问题,本说明书提供了一种直播导播方法、装置、存储介质及设备。
根据本说明书实施例的第一方面,提供一种直播导播方法,所述方法应用于导播平台,所述导播平台用于通过指定服务器从指定的视频源拉流,以及将所拉取的视频流向指定CDN节点推流,所述方法包括:
检测拉流或推流时的视频流的帧率是否异常;
如果检测到拉流时视频流的帧率异常,则探测所有服务器从所述指定的视频源拉流时的帧率是否异常,从帧率正常的服务器中确定目标服务器,将当前的指定服务器切换为所述目标服务器;
如果检测到推流时视频流的帧率异常,则通过网络探测获取各个CDN节点的目标地址,并根据各个CDN节点的网络状态的优劣确定目标CDN节点后,再将当前指定CDN节点的目标地址切换为所述目标CDN节点的目标地址。
在某些例子中,上述从帧率正常的服务器中确定目标服务器包括:
获取帧率正常的服务器的拉流状况,将拉流状况最好的服务器确定为目标服务器,所述拉流状况基于拉流时的平均帧率和帧率的稳定性确定。
在某些例子中,上述通过网络探测获取各个CDN节点的目标地址包括:
向所有CDN节点发送域名解析请求,获取CDN节点返回的IP列表。
在某些例子中,上述根据各个CDN节点的网络状态的优劣确定目标CDN节点包括:
向所述IP列表中各IP发送PING请求,检测各IP的响应速度,将所述响应速度最快的IP对应的CDN节点确定为所述目标CDN节点。
在某些例子中,上述方法还包括:
将获取的各个CDN节点的目标地址和网络状态记录在本地缓存,并设置缓存期限,则在所述缓存期限内,所述目标CDN节点优先基于所述本地缓存的记录确定。
在某些例子中,上述方法还包括:
检测所述指定服务器从备用视频源拉流时的视频流的帧率是否正常,当检测结果为是时,将当前指定的视频源切换为所述备用视频源;
通过网络探测获取各个CDN节点的目标地址的步骤在所述检测结果为否时执行。
根据本说明书实施例的第二方面,提供一种直播导播装置,所述装置应用于导播平台,所述导播平台用于通过指定服务器从指定的视频源拉流,以及将所拉取的视频流向指定CDN节点推流,所述装置包括:
检测模块,用于检测拉流或推流时的视频流的帧率是否异常;
拉流模块,用于如果检测到拉流时视频流的帧率异常,则探测所有服务器从所述指定的视频源拉流时的帧率是否异常,从帧率正常的服务器中确定目标服务器,将当前的指定服务器切换为所述目标服务器;
推流模块,用于如果检测到推流时视频流的帧率异常,则通过网络探测获取各个CDN节点的目标地址,并根据各个CDN节点的网络状态的优劣确定目标CDN节点后,再将当前指定CDN节点的目标地址切换为所述目标CDN节点的目标地址。
在某些例子中,上述装置还包括:
记录模块,用于将获取的各个CDN节点的目标地址和网络状态记录在本地缓存,并设置缓存期限,则在所述缓存期限内,所述目标CDN节点优先基于所述本地缓存的记录确定。
根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现说明书实施例中任一项方法。
根据本说明书实施例的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现说明书实施例中任一项方法。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例中,公开了一种直播导播方法、装置、存储介质及设备。该方法中,通过检测拉流或推流时的视频流的帧率,在拉流帧率异常时,探测所有服务器从视频源拉流时的状况并确定出目标服务器用以替换当前的指定服务器;在推流帧率异常时,获取各个CDN节点的目标地址和网络状态并确定出目标CDN节点用以替换当前的指定CDN节点。如此,能够及时、准确地将视频流切换至合适的节点进行传输,保证了视频流的帧率在传输过程中的稳定性;这一方法可应用于实现一种自动化导播系统,可方便运营者对各直播间的管理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书实施例示出的直播场景的网络拓扑图;
图2是本说明书实施例示出的一种直播导播方法的流程图;
图3是本说明书实施例示出的一个直播系统的示意图;
图4是本说明书实施例直播导播装置所在计算机设备的一种硬件结构图;
图5是本说明书实施例示出的一种直播导播装置的框图;
图6是本说明书实施例示出的一种直播导播装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
导播一般是指导播设备将多台摄像机传输的视频流进行导播处理,即将视频流编辑后发送到服务器供观众观看,目的是为了给观众呈现多画面多视角的视频。而随着网络直播技术的发展,导播的概念不再局限于笨重的导播设备。在直播场景中,导播可以认为是一个管理系统,其管理的内容可以包括开播、关播、切换线路、编辑视频流等,也就是说,其对整个直播的质量负责。
参考图1,图1是本说明书实施例示出的直播场景的网络拓扑图,在直播场景中,由于主播(或者其他推流硬件)和观众往往分布在不同地区,并且使用的是不同运营商的网络,因此,通常需要通过分布在不同地区的集群中的服务器拉取主播端的视频流,再将视频流推送到运营商网络下的CDN(Content Delivery Network,内容分发网络)节点,由CDN节点分发至观众端。可见,在传输过程中,视频流需要经过大量的不同网络节点进行数据传输才能到达目标客户端上,这就导致视频流的帧率的稳定性往往得不到保证,当推流或拉流过程中出现帧率不稳的情况时,会造成直播画面卡顿,影响直播效果,这是当前完成直播导播的过程中亟待解决的问题。
接下来对本说明书实施例进行详细说明。
如图2所示,图2是本说明书实施例示出的一种直播导播方法的流程图,所述方法应用于导播平台,所述导播平台用于通过指定服务器从指定的视频源拉流,以及将所拉取的视频流向指定CDN节点推流,所述方法包括:
在步骤201、检测拉流或推流时的视频流的帧率是否异常;
在直播中,拉流通常是指服务器已有直播内容,根据协议类型与服务器建立连接并接收数据,进行拉取的过程;而推流通常是指把采集阶段封包好的内容传输到服务器的过程。直播中拉流和推流时使用广泛的协议一般是RTMP。RTMP是一个基于TCP的协议族,用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。因此,本说明书实施例中的拉流和推流可以是指RTMP拉流和RTMP推流。当然,在其他实施例中也可以使用其他流传输协议,比如HLS(HTTPLive Streaming)协议,本说明书对此不作限制。
在直播环境中,对直播效果影响最大的就是直播的卡顿。帧率是用于测量显示帧数的量度,其测量单位为每秒显示帧数(Frames per Second,FPS)或“赫兹”(Hz)。帧率表示图形处理器处理场时每秒钟能够更新的次数,高的帧率可以得到更流畅、更逼真的动画。当视频流的帧率偏低,或者帧率的波动较大时,可认为是帧率异常,这个时候呈现出来的画面不够流畅,对观看效果易造成不好的影响。因此,在某些例子中,步骤201可以是指:导播平台持续监听拉流或推流时的视频流,检测其平均帧率和帧率的稳定性,当平均帧率高于预设的阈值以及帧率的稳定性较好时,判断该视频流的帧率正常;反之,当持续一段时间内检测得平均帧率低于预设的阈值或者帧率的稳定性较差时,则判断该视频流的帧率异常。
在步骤202、如果检测到拉流时视频流的帧率异常,则探测所有服务器从所述指定的视频源拉流时的帧率是否异常,从帧率正常的服务器中确定目标服务器,将当前的指定服务器切换为所述目标服务器;
本步骤中的服务器是指分布在不同地区的集群中的服务器,是直播网络中向推流端拉取视频流的节点。本步骤可以是指:当检测到指定服务器从指定的视频源拉流时的帧率异常,则在多个不同地区的集群分别启动一个拉流检测任务,这里的拉流检测任务是用于测试集群中各服务器从该指定的视频源拉流时的帧率是否正常,这样,再从帧率正常的服务器中选择出目标服务器,并将当前的指定服务器切换为所述目标服务器,以通过该目标服务器替换原先指定服务器执行拉流任务。在某些例子中,本步骤中的从帧率正常的服务器中确定目标服务器可以包括:获取帧率正常的服务器的拉流状况,将拉流状况最好的服务器确定为目标服务器,所述拉流状况基于拉流时的平均帧率和帧率的稳定性确定。如此,可以获得最优的服务器进行拉流,在一定程度上保证了拉流时帧率的稳定性。
通常来说,从发现帧率异常、调度切换,到重新显示是需要较长的反应时间的,这期间的卡顿画面容易影响观众的观感。为提高切换的灵活性,本说明书实施例还包括步骤:检测所述指定服务器从备用视频源拉流时的视频流的帧率是否正常,当检测结果为是时,将当前指定的视频源切换为所述备用视频源;通过网络探测获取各个CDN节点的目标地址的步骤在所述检测结果为否时执行。也就是说,当检测到拉流时视频流的帧率异常,先异步探测从备用视频源拉流时的拉流状况,如果其帧率正常,则自动切换成从备用视频源拉流,如果其帧率异常,再执行步骤202的操作。这里的备用视频源可以是当前指定的视频源的备份,也可以是其他视频源,比如广告、主播自行设置的辅助内容等。可以理解的,在发现拉流帧率异常时,可以及时由帧率稳定的备用视频源进行替代,缩短了处理的反应时间,提升了观众的观感。
在步骤203、如果检测到推流时视频流的帧率异常,则通过网络探测获取各个CDN节点的目标地址,并根据各个CDN节点的网络状态的优劣确定目标CDN节点后,再将当前指定CDN节点的目标地址切换为所述目标CDN节点的目标地址。
CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,使用户可就近获取所需内容,降低用户访问响应速度和命中率。通常来说,当观众进入某个直播间观看视频时,导播平台会从该直播间对应的视频源拉流,再将拉取到的视频流向指定CDN节点推流,再由该指定CDN节点将该视频流分发至该观众所在的客户端。本步骤是指:当检测到推流时视频流的帧率异常,则探测所有CDN节点的目标地址和网络状态,确定出目标CDN节点,再将当前指定CDN节点的目标地址切换为该目标CDN节点的目标地址,以向替换后的目标CDN节点重新进行推流。
本步骤中的目标地址可以是指IP地址。在某些例子中,本步骤中的通过网络探测获取各个CDN节点的目标地址可以包括:向所有CDN节点发送域名解析请求,获取CDN节点返回的IP列表。推流帧率出现异常时,可以在不断流的同时,创建一异步线程,基于该异步线程做HTTPDNS,以获取各CDN节点的域名对应的IP。在获取IP地址之后,向所述IP列表中各IP发送PING请求,检测各IP的响应速度,将所述响应速度最快的IP对应的CDN节点确定为所述目标CDN节点。不难理解的,IP的响应速度越快,表明该IP对应的CDN节点的网络状况越好。这样,在切换成该目标CDN节点进行推流后,由于该目标CDN节点的网络状态最优,其推流帧率的稳定性也能相对得到提升。
本步骤中的目标CDN节点也可以是基于历史状态决策出来。在某些例子中,本说明书实施例还包括:将获取的各个CDN节点的目标地址和网络状态记录在本地缓存,并设置缓存期限,则在所述缓存期限内,所述目标CDN节点优先基于所述本地缓存的记录确定。通过本地缓存,可以在推流帧率出现异常时,第一时间切换成网络状态最优的IP进行推流,提升了切换的效率。
值得注意的是,在切换推流IP时,可以是先与目标CDN节点建立RTMP连接,再断开原有的推流连接。如此,可以实现无缝切换,对于视频流来说不会出现断开的情况,提升了用户体验感。
本说明书实施例,通过检测拉流或推流时的视频流的帧率,在拉流帧率异常时,探测所有服务器从视频源拉流时的状况并确定出目标服务器用以替换当前的指定服务器;在推流帧率异常时,获取各个CDN节点的目标地址和网络状态并确定出目标CDN节点用以替换当前的指定CDN节点。如此,能够及时、准确地将视频流切换至合适的节点进行传输,保证了视频流的帧率在传输过程中的稳定性,提升了直播效果。
为方便理解,接下来举一个具体的例子进行说明。
如图3所示,图3是本说明书实施例示出的一个直播系统的示意图,在使用了本说明书实施例方法的直播系统中,分布在不同地区的集群包括区域1的集群301和区域2的集群302,其中,集群301包括服务器3011和服务器3012,集群302包括服务器3021和服务器3022;而部署在运营商网络下的CDN系统包括CDN节点311、CDN节点312、CDN节点313和CDN节点314。本说明书实施例的方法应用于导播平台321,该导播平台321调度视频流从主播端331到观众端341的传输过程。
这里的导播平台321旨在实现一种自动化导播系统,方便运营者对各直播间的管理。可以理解的,导播系统可以以任务的形式,包括任务生成、任务派发、任务获取、任务管理等工作过程进行开播、关播、切换线路、编辑视频流之类的处理。具体地,任务生成可以是读取数据库的任务信息以及请求内容和开播返回的信息综合生成任务;任务派发可以是在Zookeeper(一个开源的分布式应用程序协调服务)创建任务树,用任务信息生成Json后序列化放到相应的任务节点上;任务获取可以是监听Zookeeper的节点变化,根据任务个数、CPU、内存等状态抢占自身有权限的任务,对任务信息进行反序列化生成相应类型的任务对象放到任务管理器中;任务管理可以是维护多个不同状态的任务列表,通过定时轮询各个任务的状态进行批量转移,实现任务的启动、错误处理、挂起、结束等操作。在本说明书实施例中,后续内容中导播平台321的操作即通过这种方式实现。
当前,视频流的传输过程为:服务器3011从主播端331拉取视频流,再将视频流推送到CDN节点311上,由CDN节点311分发至观众端341,本例中,视频流是基于RTMP协议进行传输的。
本说明书实施例方法在应用时体现为以下步骤:
第一,导播平台321检测该视频流在传输过程中的帧率是否异常;
第二,当检测到服务器3011从主播端331拉取视频流时帧率异常,导播平台321在集群301和集群302各自创建一个线程,该线程用于启动一个拉流检测任务,以测试集群中各服务器从主播端331拉流时的帧率是否正常;这里,
导播平台321获取得测试结果为:服务器3011拉流时异常;服务器3012拉流时正常;服务器3021拉流时正常;服务器3022拉流时正常。因此,从服务器3012、3021、3022中确定目标服务器。通过汇总并比对这三个服务器的拉流状况得知,服务器3021拉流时的帧率最为稳定,则将服务器3021确定为目标服务器;
导播平台321停止服务器3011的拉流任务,并把从主播端331拉流的任务分发到服务器3021上;
第三,当检测到服务器3021向CDN节点311推送视频流时帧率异常,导播平台321先从本地缓存中查询上一次探测的各个CDN节点的目标地址和网络状态,当查询时仍在缓存期限内时,从查询到的内容中确定目标CDN节点,当不在缓存期限内时,重新探测各个CDN节点的目标地址和网络状态;这里的探测过程包括:创建一个异步线程,基于该异步线程向所有CDN节点发送域名解析请求,获取CDN节点返回的IP列表,向返回的IP列表中各IP发送PING请求,检测各IP的响应速度,基于各IP的响应速度的快慢得到各IP网络状态的优劣。探测好之后,将网络状态最好的IP对应的CDN节点确定为目标CDN节点,并将探测结果记录在本地缓存;
探测结果为:CDN节点314对应的IP1的响应速度最快,因此,将CDN节点314确定为目标CDN节点;
导播平台321先与CDN节点314建立RTMP连接,将推流指向的目标地址切换成CDN节点的目标地址IP1,再与原先的CDN节点311断开RTMP推流连接。
基于上述步骤,导播能够在视频流的传输过程中帧率出现异常时,及时、准确地将视频流切换至合适的节点上,获取到最佳的传输线路,从而保证了视频流帧率的稳定性。
与前述方法的实施例相对应,本说明书还提供了一种直播导播装置及其所应用的终端的实施例。
本说明书直播导播的装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本说明书实施例直播导播装置所在计算机设备的一种硬件结构图,除了图4所示的处理器510、内存530、网络接口520、以及非易失性存储器540之外,实施例中装置531所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。
本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
如图5所示,图5是本说明书实施例示出的一种直播导播装置的框图,所述装置应用于导播平台,所述导播平台用于通过指定服务器从指定的视频源拉流,以及将所拉取的视频流向指定CDN节点推流,所述装置包括:
检测模块51,用于检测拉流或推流时的视频流的帧率是否异常;
拉流模块52,用于如果检测到拉流时视频流的帧率异常,则探测所有服务器从所述指定的视频源拉流时的帧率是否异常,从帧率正常的服务器中确定目标服务器,将当前的指定服务器切换为所述目标服务器;
推流模块53,用于如果检测到推流时视频流的帧率异常,则通过网络探测获取各个CDN节点的目标地址,并根据各个CDN节点的网络状态的优劣确定目标CDN节点后,再将当前指定CDN节点的目标地址切换为所述目标CDN节点的目标地址。
如图6所示,图6是本说明书实施例示出的另一种直播导播装置的框图,所述装置应用于导播平台,所述导播平台用于通过指定服务器从指定的视频源拉流,以及将所拉取的视频流向指定CDN节点推流,所述装置包括:
检测模块61,用于检测拉流或推流时的视频流的帧率是否异常;
拉流模块62,用于如果检测到拉流时视频流的帧率异常,则探测所有服务器从所述指定的视频源拉流时的帧率是否异常,从帧率正常的服务器中确定目标服务器,将当前的指定服务器切换为所述目标服务器;
推流模块63,用于如果检测到推流时视频流的帧率异常,则通过网络探测获取各个CDN节点的目标地址,并根据各个CDN节点的网络状态的优劣确定目标CDN节点后,再将当前指定CDN节点的目标地址切换为所述目标CDN节点的目标地址;
记录模块64,用于将获取的各个CDN节点的目标地址和网络状态记录在本地缓存,并设置缓存期限,则在所述缓存期限内,所述目标CDN节点优先基于所述本地缓存的记录确定。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (10)

1.一种直播导播方法,其特征在于,所述方法应用于导播平台,所述导播平台用于通过指定服务器从指定的视频源拉流,以及将所拉取的视频流向指定CDN节点推流,所述方法包括:
检测拉流或推流时的视频流的帧率是否异常;
如果检测到拉流时视频流的帧率异常,则探测所有服务器从所述指定的视频源拉流时的帧率是否异常,从帧率正常的服务器中确定目标服务器,将当前的指定服务器切换为所述目标服务器;
如果检测到推流时视频流的帧率异常,则通过网络探测获取各个CDN节点的目标地址,并根据各个CDN节点的网络状态的优劣确定目标CDN节点后,再将当前指定CDN节点的目标地址切换为所述目标CDN节点的目标地址。
2.根据权利要求1所述的方法,其特征在于,所述从帧率正常的服务器中确定目标服务器包括:
获取帧率正常的服务器的拉流状况,将拉流状况最好的服务器确定为目标服务器,所述拉流状况基于拉流时的平均帧率和帧率的稳定性确定。
3.根据权利要求1所述的方法,其特征在于,所述通过网络探测获取各个CDN节点的目标地址包括:
向所有CDN节点发送域名解析请求,获取CDN节点返回的IP列表。
4.根据权利要求3所述的方法,其特征在于,所述根据各个CDN节点的网络状态的优劣确定目标CDN节点包括:
向所述IP列表中各IP发送PING请求,检测各IP的响应速度,将所述响应速度最快的IP对应的CDN节点确定为所述目标CDN节点。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将获取的各个CDN节点的目标地址和网络状态记录在本地缓存,并设置缓存期限,则在所述缓存期限内,所述目标CDN节点优先基于所述本地缓存的记录确定。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述指定服务器从备用视频源拉流时的视频流的帧率是否正常,当检测结果为是时,将当前指定的视频源切换为所述备用视频源;
通过网络探测获取各个CDN节点的目标地址的步骤在所述检测结果为否时执行。
7.一种直播导播装置,其特征在于,所述装置应用于导播平台,所述导播平台用于通过指定服务器从指定的视频源拉流,以及将所拉取的视频流向指定CDN节点推流,所述装置包括:
检测模块,用于检测拉流或推流时的视频流的帧率是否异常;
拉流模块,用于如果检测到拉流时视频流的帧率异常,则探测所有服务器从所述指定的视频源拉流时的帧率是否异常,从帧率正常的服务器中确定目标服务器,将当前的指定服务器切换为所述目标服务器;
推流模块,用于如果检测到推流时视频流的帧率异常,则通过网络探测获取各个CDN节点的目标地址,并根据各个CDN节点的网络状态的优劣确定目标CDN节点后,再将当前指定CDN节点的目标地址切换为所述目标CDN节点的目标地址。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
记录模块,用于将获取的各个CDN节点的目标地址和网络状态记录在本地缓存,并设置缓存期限,则在所述缓存期限内,所述目标CDN节点优先基于所述本地缓存的记录确定。
9.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1~6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现权利要求1~6任一项所述的方法。
CN202010225072.1A 2020-03-26 2020-03-26 一种直播导播方法、装置、存储介质及设备 Active CN111464759B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010225072.1A CN111464759B (zh) 2020-03-26 2020-03-26 一种直播导播方法、装置、存储介质及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010225072.1A CN111464759B (zh) 2020-03-26 2020-03-26 一种直播导播方法、装置、存储介质及设备

Publications (2)

Publication Number Publication Date
CN111464759A true CN111464759A (zh) 2020-07-28
CN111464759B CN111464759B (zh) 2022-03-18

Family

ID=71680869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010225072.1A Active CN111464759B (zh) 2020-03-26 2020-03-26 一种直播导播方法、装置、存储介质及设备

Country Status (1)

Country Link
CN (1) CN111464759B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112351296A (zh) * 2020-10-29 2021-02-09 北京达佳互联信息技术有限公司 视频流的拉流转推方法、装置、服务器及存储介质
CN112738548A (zh) * 2021-04-06 2021-04-30 北京百家视联科技有限公司 一种流媒体调度方法、装置、设备及存储介质
CN112752115A (zh) * 2020-12-29 2021-05-04 广州博冠信息科技有限公司 直播数据传输方法、装置、设备及介质
CN112752113A (zh) * 2020-12-28 2021-05-04 上海哔哩哔哩科技有限公司 直播服务器异常因素的确定方法及装置
CN112749044A (zh) * 2020-12-31 2021-05-04 北京七维视觉传媒科技有限公司 多通道渲染系统的热备份方法及装置
CN113242443A (zh) * 2021-05-28 2021-08-10 北京达佳互联信息技术有限公司 数据流传输的异常检测方法及其装置
CN113259769A (zh) * 2021-04-07 2021-08-13 苏州华兴源创科技股份有限公司 视频源切换方法、装置、电子设备及计算机可读存储介质
CN113301377A (zh) * 2021-05-24 2021-08-24 广州市百果园信息技术有限公司 直播管理系统、方法、设备及存储介质
CN113923470A (zh) * 2021-11-24 2022-01-11 上海哔哩哔哩科技有限公司 直播流处理方法及装置
CN114222157A (zh) * 2021-12-22 2022-03-22 厦门视诚科技有限公司 一种多输入信号便携式导播推流预监系统
CN114245182A (zh) * 2021-12-16 2022-03-25 上海哔哩哔哩科技有限公司 直播视频流获取方法及装置
CN114257835A (zh) * 2021-12-31 2022-03-29 广东省教育研究院 基于教育云平台的直播系统及其直播方法
CN114222157B (zh) * 2021-12-22 2024-05-10 厦门视诚科技有限公司 一种多输入信号便携式导播推流预监系统

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166980A (zh) * 2011-12-08 2013-06-19 腾讯科技(深圳)有限公司 互联网数据拉取方法和系统
US20140304372A1 (en) * 2013-04-04 2014-10-09 Ericsson Television Inc. Methods, apparatus, and computer program products for allocating bandwidth for push and pull content requests in a content delivery network
CN105376092A (zh) * 2015-11-19 2016-03-02 杭州当虹科技有限公司 一种基于交换机端口镜像的hls流实时监控报警系统
US20170180470A1 (en) * 2015-12-21 2017-06-22 Le Holdings (Beijing) Co., Ltd. Method and electronic device for sending CDN address
CN107105309A (zh) * 2017-04-25 2017-08-29 北京潘达互娱科技有限公司 直播调度方法及装置
CN107172015A (zh) * 2017-04-25 2017-09-15 北京潘达互娱科技有限公司 直播视频推送方法及装置
US20170302554A1 (en) * 2016-04-18 2017-10-19 Nyansa, Inc. System and method for using real-time packet data to detect and manage network issues
CN107707926A (zh) * 2017-03-09 2018-02-16 贵州白山云科技有限公司 一种直播流传输方法、装置和系统
CN108012161A (zh) * 2017-11-10 2018-05-08 广州华多网络科技有限公司 视频直播方法、系统和终端设备
CN109428864A (zh) * 2017-08-30 2019-03-05 武汉斗鱼网络科技有限公司 提高nginx-rtmp拉流服务质量的方法及装置
CN110198311A (zh) * 2019-05-21 2019-09-03 腾讯科技(深圳)有限公司 一种数据流处理方法、装置、设备及介质
CN110213596A (zh) * 2018-03-28 2019-09-06 腾讯科技(深圳)有限公司 直播切换方法、装置、计算机设备和存储介质
CN110798698A (zh) * 2019-11-25 2020-02-14 盈动电子竞技(海南自贸区)有限公司 一种直播应用程序的多服务器推流方法和设备

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166980A (zh) * 2011-12-08 2013-06-19 腾讯科技(深圳)有限公司 互联网数据拉取方法和系统
US20140304372A1 (en) * 2013-04-04 2014-10-09 Ericsson Television Inc. Methods, apparatus, and computer program products for allocating bandwidth for push and pull content requests in a content delivery network
CN105376092A (zh) * 2015-11-19 2016-03-02 杭州当虹科技有限公司 一种基于交换机端口镜像的hls流实时监控报警系统
US20170180470A1 (en) * 2015-12-21 2017-06-22 Le Holdings (Beijing) Co., Ltd. Method and electronic device for sending CDN address
US20170302554A1 (en) * 2016-04-18 2017-10-19 Nyansa, Inc. System and method for using real-time packet data to detect and manage network issues
CN107707926A (zh) * 2017-03-09 2018-02-16 贵州白山云科技有限公司 一种直播流传输方法、装置和系统
CN107172015A (zh) * 2017-04-25 2017-09-15 北京潘达互娱科技有限公司 直播视频推送方法及装置
CN107105309A (zh) * 2017-04-25 2017-08-29 北京潘达互娱科技有限公司 直播调度方法及装置
CN109428864A (zh) * 2017-08-30 2019-03-05 武汉斗鱼网络科技有限公司 提高nginx-rtmp拉流服务质量的方法及装置
CN108012161A (zh) * 2017-11-10 2018-05-08 广州华多网络科技有限公司 视频直播方法、系统和终端设备
CN110213596A (zh) * 2018-03-28 2019-09-06 腾讯科技(深圳)有限公司 直播切换方法、装置、计算机设备和存储介质
CN110198311A (zh) * 2019-05-21 2019-09-03 腾讯科技(深圳)有限公司 一种数据流处理方法、装置、设备及介质
CN110798698A (zh) * 2019-11-25 2020-02-14 盈动电子竞技(海南自贸区)有限公司 一种直播应用程序的多服务器推流方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李海彬等: ""壮族三月三"直播中网络视频传输方案的设计与实现", 《影视制作》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112351296A (zh) * 2020-10-29 2021-02-09 北京达佳互联信息技术有限公司 视频流的拉流转推方法、装置、服务器及存储介质
CN112752113B (zh) * 2020-12-28 2022-08-02 上海哔哩哔哩科技有限公司 直播服务器异常因素的确定方法及装置
CN112752113A (zh) * 2020-12-28 2021-05-04 上海哔哩哔哩科技有限公司 直播服务器异常因素的确定方法及装置
CN112752115A (zh) * 2020-12-29 2021-05-04 广州博冠信息科技有限公司 直播数据传输方法、装置、设备及介质
CN112752115B (zh) * 2020-12-29 2023-09-08 广州博冠信息科技有限公司 直播数据传输方法、装置、设备及介质
CN112749044A (zh) * 2020-12-31 2021-05-04 北京七维视觉传媒科技有限公司 多通道渲染系统的热备份方法及装置
CN112749044B (zh) * 2020-12-31 2023-08-18 北京七维视觉传媒科技有限公司 多通道渲染系统的热备份方法及装置
CN112738548A (zh) * 2021-04-06 2021-04-30 北京百家视联科技有限公司 一种流媒体调度方法、装置、设备及存储介质
CN112738548B (zh) * 2021-04-06 2021-06-18 北京百家视联科技有限公司 一种流媒体调度方法、装置、设备及存储介质
CN113259769A (zh) * 2021-04-07 2021-08-13 苏州华兴源创科技股份有限公司 视频源切换方法、装置、电子设备及计算机可读存储介质
CN113301377A (zh) * 2021-05-24 2021-08-24 广州市百果园信息技术有限公司 直播管理系统、方法、设备及存储介质
CN113242443B (zh) * 2021-05-28 2022-09-30 北京达佳互联信息技术有限公司 数据流传输的异常检测方法及其装置
CN113242443A (zh) * 2021-05-28 2021-08-10 北京达佳互联信息技术有限公司 数据流传输的异常检测方法及其装置
CN113923470A (zh) * 2021-11-24 2022-01-11 上海哔哩哔哩科技有限公司 直播流处理方法及装置
CN114245182A (zh) * 2021-12-16 2022-03-25 上海哔哩哔哩科技有限公司 直播视频流获取方法及装置
CN114245182B (zh) * 2021-12-16 2023-11-21 上海哔哩哔哩科技有限公司 直播视频流获取方法及装置
CN114222157A (zh) * 2021-12-22 2022-03-22 厦门视诚科技有限公司 一种多输入信号便携式导播推流预监系统
CN114222157B (zh) * 2021-12-22 2024-05-10 厦门视诚科技有限公司 一种多输入信号便携式导播推流预监系统
CN114257835A (zh) * 2021-12-31 2022-03-29 广东省教育研究院 基于教育云平台的直播系统及其直播方法

Also Published As

Publication number Publication date
CN111464759B (zh) 2022-03-18

Similar Documents

Publication Publication Date Title
CN111464759B (zh) 一种直播导播方法、装置、存储介质及设备
US11665378B2 (en) Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision
CA3036924C (en) Detecting service vulnerabilities in a distributed computing system
US8806045B2 (en) Predictive popular content replication
US8255457B2 (en) Adaptive content load balancing
US20220191085A1 (en) Automatic diagnostics alerts for streaming content encoded by multiple entities
CN106454493B (zh) 当前播放的电视节目信息查询方法及智能电视
CN104301741B (zh) 一种数据直播系统和方法
CN104581388B (zh) 播放状态的处理方法、装置及系统
US20220021721A1 (en) Remote multi-target client monitoring for streaming content
JP7181989B2 (ja) 新規コンテンツを取得する際の予想待ち時間に基づくコンテンツ修正の事前準備
TW201511539A (zh) 用以處理動作視訊之方法及裝置
GB2532132A (en) A method and system for facilitating content distribution
JP2014511063A (ja) 一時停止メディアを再開する方法および装置
CN111339357A (zh) 基于直播用户行为的推荐方法及装置
CN107438201A (zh) 消息处理系统、方法及装置
US11445246B1 (en) Activity-based selection of replacement content
US11838562B1 (en) Activity-based streaming video replacement
CN108521570A (zh) 一种视频播放器的监控系统
US20230409269A1 (en) Terminal control method, apparatus, and system
CN113992990A (zh) 资源播放时长的确定方法、装置、电子设备及存储介质
CN116389799A (zh) 音视频码流的转码处理方法、装置、电子设备及存储介质
CN113676695A (zh) 一种音视频会议管理方法和装置
KR20230094695A (ko) 멀티뷰 스트림을 위한 적응적 스트리밍 처리 방법 및 장치
CN110944157A (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