CN112261418B - 一种传输直播视频数据的方法和直播加速系统 - Google Patents
一种传输直播视频数据的方法和直播加速系统 Download PDFInfo
- Publication number
- CN112261418B CN112261418B CN202010984708.0A CN202010984708A CN112261418B CN 112261418 B CN112261418 B CN 112261418B CN 202010984708 A CN202010984708 A CN 202010984708A CN 112261418 B CN112261418 B CN 112261418B
- Authority
- CN
- China
- Prior art keywords
- video stream
- target
- node
- stream
- video
- 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/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4345—Extraction or processing of SI, e.g. extracting service information from an MPEG stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
Abstract
本发明公开了一种传输直播视频数据的方法和直播加速系统,属于数据传输技术领域。所述方法包括:目标节点切换至目标上级节点进行拉流,接收所述目标上级节点发送的目标直播视频的目标视频流;所述目标节点根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,保留所述目标视频流的帧数据;所述目标节点将已保留的所述目标直播视频的帧数据,发送至所述目标节点的下级节点。采用本发明,可以解决因重复接收数据而导致的视频画面重复播放的问题,从而提高直播视频的播放效果。
Description
技术领域
本发明涉及数据传输技术领域,特别涉及一种传输直播视频数据的方法和直播加速系统。
背景技术
伴随着互联网技术的发展以及宽带的不断提速,互联网与人们的生活联系的日益密切,观看直播已成为当下一种主流的娱乐形式。为了提高直播服务质量,直播平台的运营方多基于CDN(Content Delivery Network,内容分发网络)集群来提供直播服务。
主播端可以将直播视频流推送至与其距离最近的CDN边缘节点(可称为推流边缘节点)处。该推流边缘节点接收到直播视频流后,可以根据预设算法选择CDN集群中的多个动态父节点,然后将直播视频流推送到这些动态父节点。每个动态父节点可以再通过其对应的转码服务器对直播视频流进行转码。这样,当观众想要观看该直播时,观众端可以向与其距离最近的CDN边缘节点(可称为拉流边缘节点)发送直播视频流的获取请求,拉流边缘节点可以向其上级的静态父节点转发直播视频流的拉流请求,从而静态父节点可以根据预设算法确定出上级一个维护直播视频流的动态父节点,然后从动态父节点处拉流,再将直播视频流通过拉流边缘节点反馈给观众端。
在实现本申请技术方案的过程中,发明人发现现有技术至少存在以下问题:
在拉流过程中,如果出现网络连接断开、节点故障等问题,则会出现切换上级节点进行拉流的问题,可能是拉流边缘节点切换至新静态父节点进行拉流,或者是静态父节点切换至新动态父节点进行拉流。而为了视频的快速播放,上级节点在响应拉流请求时,一般会将请求的视频数据之前几秒的视频数据作为快速启动数据(可简称为快启数据)发送给请求节点。而在切换场景下,请求节点本地一般已存储有与快启数据相同的数据,从而会导致快启数据对应的视频画面被重复播放,大幅影响了直播视频的播放效果。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种传输直播视频数据的方法和直播加速系统。所述技术方案如下:
第一方面,提供了一种传输直播视频数据的方法,所述方法包括:
目标节点切换至目标上级节点进行拉流,接收所述目标上级节点发送的目标直播视频的目标视频流;
所述目标节点根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据;
所述目标节点将已保留的所述目标直播视频的帧数据,发送至所述目标节点的下级节点。
第二方面,提供了一种直播加速系统,所述系统包括CDN集群,所述CDN集群的静态父节点或者拉流边缘节点,用于:
切换至目标上级节点进行拉流,接收所述目标上级节点发送的目标直播视频的目标视频流;
根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据;
将已保留的所述目标直播视频的帧数据,发送至所述目标节点的下级节点。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,目标节点切换至目标上级节点进行拉流,接收目标上级节点发送的目标直播视频的目标视频流;目标节点根据目标视频流和切换前视频流的新旧关系,和目标视频流中帧数据的DTS,选择性保留目标视频流的帧数据;目标节点将已保留的目标直播视频的帧数据,发送至目标节点的下级节点。这样,在切换上级节点拉流后,可以通过比对新旧视频流和帧数据的DTS来确定拉取的视频流中哪些帧数据已被缓存,从而可以丢弃相应的帧数据,以避免部分视频帧内容被重复缓存,进一步解决了因重复接收数据而导致的视频画面重复播放的问题,提高了直播视频的播放效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种直播加速系统的网络框架示意图;
图2是本发明实施例提供的一种传输直播视频数据的方法流程图;
图3是本发明实施例提供的一种直播加速系统的网络框架示意图;
图4是本发明实施例提供的一种针对回源视频流的获取流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种传输直播视频数据的方法,该方法可以应用于基于CDN集群的直播加速系统。如图1所示,直播加速系统可以包括CDN集群、主播端、观众端,CDN集群中可以至少包括边缘节点、静态父节点和动态父节点,其中,边缘节点可以是CDN集群距离用户侧最近的节点,每个边缘节点都可以独立地为一个区域内的用户提供CDN服务,可以直接与用户端进行数据交互,如推流边缘节点可以接收主播端推送的直播视频流、拉流边缘节点可以向观众端提供直播视频流等,静态父节点为边缘节点的上级节点,每个静态父节点可以服务多个边缘节点,用于从动态父节点拉取直播视频流,并将直播视频流提供给多个边缘节点,动态父节点可以是静态父节点的上级节点,用于从边缘节点拉取直播视频流,并将直播视频流提供给静态父节点。CDN集群中还可以设置有转码服务器,主要用于从动态父节点处拉取原始的视频流,并进行制定的转码处理,再将转码后的视频流反馈至动态父节点。转码服务器可以设置在动态父节点上,也可以设置为独立的节点。
下面将结合具体实施方式,对图2所示的处理流程进行详细的说明,内容可以如下:
步骤201,目标节点切换至目标上级节点进行拉流,接收目标上级节点发送的目标直播视频的目标视频流。
其中,目标节点可以是CDN集群的静态父节点或拉流边缘节点,相对而言,目标上级节点可以是CDN集群的动态父节点或静态父节点。
在实施中,直播平台的运营方购买了CDN服务后,直播平台的主播端录制并上传直播视频的过程中,可以将相应的直播视频(如目标直播视频)的视频流推送到主播端所在区域对应的CDN集群的推流边缘节点处。之后,推流边缘节点可以基于预设的推流规则,将目标直播视频的视频流推送至多个动态父节点上。如果目标直播视频存在转码需求,动态父节点在接收到视频流后,则可以将视频流(也可称为原始流)发送至转码服务器,以实现针对视频流的转码处理。接下来,动态父节点可以接收转码服务器反馈的转码后的视频流(可简称为转码流),并在本地维护转码流,以供其下级节点进行拉流。如果目标直播视频不存在转码需求,动态父节点接收到视频流之后,可以直接在本地对视频流进行维护。
当用户想要观看目标直播视频时,用户可以通过操作触发观众端向直播平台的后台系统发送目标直播视频的获取请求。DNS系统可以先接收到上述获取请求,然后将获取请求的目的域名转换为CDN集群的中心调度节点的网络通信地址,再将转换后的获取请求返回观众端,触发观众端向中心调度节点发送上述获取请求。中心调度节点接收到获取请求,可以向观众端反馈距离其最近的拉流边缘节点的网络通信地址,以触发观众端向拉流边缘节点发送目标直播视频的获取请求。
拉流边缘节点接收到目标直播视频的获取请求后,可以向其上级的一个静态父节点发送目标直播视频的拉流请求。接下来,静态父节点可以从维护有目标直播视频的视频流的动态父节点处拉取目标直播视频的视频流,并将拉取到的视频流发送给上述拉流边缘节点,以使拉流边缘节点将视频流提供给观众端,从而完成直播视频的整个拉流过程。
在上述过程中,当出现动态父节点故障,或者动态父节点与静态父节点间的网络中断等情况,静态父节点则可以切换至新动态父节点拉取目标直播视频的视频流(即目标视频流)。同理,当出现静态父节点故障,或者静态父节点与拉流边缘节点间的网络中断等情况,拉流边缘节点则可以切换至新静态父节点拉取目标直播视频的视频流。
步骤202,目标节点根据目标视频流和切换前视频流的新旧关系,和目标视频流中帧数据的DTS,选择性保留目标视频流的帧数据。
在实施中,静态父节点在从目标上级节点拉取目标视频流后,可以先判断目标视频流与切换前从原上级节点拉取的视频流(可称为切换前视频流)的新旧关系。其中,新旧关系包含目标视频流相对切换前视频流为新视频流、同一视频流和旧视频流,视频流的新旧可以是主播端生成视频流的先后顺序,后生成的视频流相对于先生成的视频流为新视频流。此外,静态父节点可以在接收视频流中的帧数据的同时,记录每一帧数据对应的DTS。这样,静态父节点在切换新动态父节点拉取目标视频流后,可以根据目标视频流和切换前视频流的新旧关系,和目标视频流中帧数据的DTS,选择性保留目标视频流的帧数据。
可选的,针对不同的新旧关系,可以存在不同的帧数据保留方式,相应的,步骤202的处理可以如下:若目标视频流相对切换前视频流为新视频流,目标节点则保留目标视频流的所有帧数据;若目标视频流相对切换前视频流为同一视频流,目标节点则保留目标视频流中DTS大于本地已记录的目标直播视频的最新DTS的帧数据;若目标视频流相对切换前视频流为旧视频流,目标节点则丢弃目标视频流的所有帧数据。
在实施中,如果目标视频流相对切换前视频流为新视频流,静态父节点则可以将接收到的目标视频流的所有帧数据全部保留下来。如果目标视频流相对切换前视频流为同一视频流,静态父节点则可以读取目标视频流中帧数据的DTS,然后将其与本地已记录的目标直播视频的最新DTS进行比对;当帧数据的DTS小于或等于该最新DTS时,静态父节点可以丢弃相应的帧数据,而当帧数据的DTS大于最新DTS时,静态父节点则可以保留该帧数据。如果目标视频流相对切换前视频流为旧视频流,静态父节点则可以直接丢弃目标视频流的所有帧数据。同理,拉流边缘节点的处理与静态父节点的处理相似,此处不再赘述。需要说明的是,在记录帧数据的DTS时,由于直播视频的音频流和视频流的时间戳可能不同轴,故而可以分开记录音频流和视频流的DTS,并在后续比对DTS、保留帧数据等处理中,可以针对音频流和视频流分别独立进行处理。
可选的,可以通过记录推流时间来区分同一直播视频的不同视频流的新旧关系,相应的,可以存在如下处理:推流边缘节点在接收到目标直播视频的任一视频流时,基于视频流的首包接收时间为视频流标记推流时间;目标节点根据目标视频流的推流时间和切换前视频流的推流时间,确定目标视频流和切换前视频流的新旧关系。
在实施中,推流边缘节点接收到主播端上传的目标直播视频的任一视频流时,可以将该视频流的首包接收时间记录为该视频流的推流时间,具体可以取值为节点设备接收视频流的首个数据包时操作系统的毫秒时间,并可以利用记录的推流时间标记该视频流。而当主播端因视频录制或网络等方面出现故障,重新上传目标直播视频的新视频流时,推流边缘节点检测到出现目标直播视频的新视频流,此时可以记录新视频流的推流时间,并利用记录的推流时间标记该新视频流。
基于上述处理,静态父节点从新动态父节点接收目标视频流时,可以先确定目标视频流的推流时间,并将该推流时间与本地已记录的切换前视频流的推流时间进行比对,以确定目标视频流和切换前视频流的新旧关系。如果目标视频流的推流时间小于本地已记录的切换前视频流的推流时间,则说明目标视频流相对切换前视频流为旧视频流;如果目标视频流的推流时间等于本地已记录的切换前视频流的推流时间,则说明目标视频流相对切换前视频流为同一视频流;如果目标视频流的推流时间大于本地已记录的切换前视频流的推流时间,则说明目标视频流相对切换前视频流为新视频流。同理,拉流边缘节点的处理与静态父节点的处理相似,此处不再赘述。这样,保留帧数据前,通过比对帧数据所属视频流的推流时间,可以保证保留的帧数据属于新视频流,避免了后续需要再次进行视频流切换,而出现视频播放卡顿、画面重复的问题。
可选的,可以通过在视频流的元数据包中添加推流时间的方式,实现对视频流的标记,相应的处理可以如下:当接收到目标直播视频的视频流的元数据包时,推流边缘节点在元数据包中添加当前的第一接收时间,并将第一接收时间作为元数据包后续所属视频流的推流时间;当接收到目标直播视频的视频流的新元数据包时,推流边缘节点在新元数据包中添加当前第二接收时间,并将第二接收时间作为新元数据包所属视频流的推流时间。
在实施中,主播端向推流边缘节点进行推流时,会先发送视频流的元数据包,该元数据包中可以记录有该视频流后续的帧数据的编码参数、大小、编码格式等元数据信息。推流边缘节点可以在接收到目标直播视频的视频流的元数据包时,确定当前的第一接收时间,然后将第一接收时间添加在元数据包中,从而可以将第一接收时间作为元数据包所属视频流的推流时间。换言之,在再次接收到元数据包之前,可以认为是接收到的帧数据均属于同一视频流。而当接收到目标直播视频的视频流的新元数据包时,则可以认为后续接收到的帧数据属于新视频流,推流边缘节点则可以重新确定当前的第二接收时间,并将第二接收时间添加在新元数据包中,从而可以将第二接收时间作为元数据包所属视频流的推流时间。值得一提的是,视频流在其它CDN节点间传输时,均是先传输视频流的元数据包,再传输视频流的帧数据,故而其它CDN节点同样可以通过元数据包中的信息,确定其所属视频流的后续帧数据的相关参数。
可选的,可以通过转码标识来标记不同转码流的帧数据,相应的,可以存在如下处理:转码服务器在对目标直播视频的任一视频流进行转码时,为视频流标记转码标识;步骤202的处理可以相应调整为:若目标视频流对应的转码标识与切换前视频流的转码标识相同,目标节点则保留目标视频流中DTS大于本地已记录的目标直播视频的最新DTS的帧数据,否则从目标视频流中首个DTS大于本地已记录的目标直播视频的最新DTS的I帧开始,保留帧数据。
在实施中,转码服务器在接收到针对目标直播视频的转码请求时,可以创建相应的转码任务,并设置与该转码任务唯一对应的转码标识。之后,转码服务器可以通过该转码标识,标记通过该转码任务生成的转码流。可以理解,相同转码服务器上的不同转码任务对应不同的转码标识,针对同一直播视频的旧视频流和新视频流的转码任务对应不同的转码标识
基于上述处理,静态父节点从新动态父节点接收目标视频流时,可以先获取目标视频流对应的转码标识,并将该转码标识与切换前视频流的转码标识进行比对。如果两个转码标识相同,则说明从新动态父节点接收的目标视频流与切换前视频流归属于同一转码任务,则可以进一步读取目标视频流中帧数据的DTS,然后将其与本地已记录的目标直播视频的最新DTS进行比对。当帧数据的DTS小于或等于该最新DTS时,静态父节点可以丢弃相应的帧数据,当帧数据的DTS大于最新DTS时,静态父节点则可以保留该帧数据。
而如果两个转码标识不相同,则说明从新动态父节点接收的目标视频流与切换前视频流分属于不同的转码任务,静态父节点则可以进一步检测接收到的每个I帧的DTS,并将其与本地已记录的目标直播视频的最新DTS进行比对。当出现DTS大于最新DTS的I帧时,静态父节点可以从该I帧开始,保留目标视频流中I帧后续的帧数据。同理,拉流边缘节点的处理与静态父节点的处理相似,此处不再赘述。这样,考虑到不同转码任务生成的视频流的帧序列可能不一致,从I帧开始保留新数据流的帧数据,可以避免因该问题而出现播放花屏的现象。上述处理的实现场景架构可以参考图3所示。
可选的,可以通过在视频流的元数据包中添加转码标识的方式,实现对帧数据的标记,相应的处理可以如下:当接收到目标直播视频的视频流的元数据包时,转码服务器创建第一转码任务,并在元数据包中添加第一转码任务对应的转码标识;当接收到目标直播视频的视频流的新元数据包时,转码服务器创建第二转码任务,并在新元数据包中添加第二转码任务对应的转码标识。
在实施中,动态父节点向转码服务器发送视频流的帧数据前,先发送视频流的元数据包,该元数据包中可以记录有该视频流后续的帧数据的编码参数、大小、编码格式等元数据信息。转码服务器可以在接收到目标直播视频的视频流的元数据包时,创建第一转码任务,并在元数据包中添加第一转码任务对应的转码标识,从而完成为该视频流的帧数据标记转码标识的处理。可以理解,在再次接收到元数据包之前,转码服务器可以认为是接收到的帧数据均属于同一视频流,也即可以均通过第一转码任务进行转码。而当接收到目标直播视频的视频流的新元数据包时,则可以认为后续接收到的帧数据属于新视频流,转码服务器可以为新视频流创建新的第二转码任务,并在新元数据包中添加第二转码任务对应的转码标识,从而完成为新视频流的帧数据标记转码标识的处理。值得一提的是,视频流在其它CDN节点间传输时,均是先传输视频流的元数据包,再传输视频流的帧数据,故而其它CDN节点同样可以通过元数据包中的信息,确定其所属视频流的后续帧数据的相关参数。
可选的,当检测到目标直播视频的视频流中帧数据出现时间戳回退或跳变时,转码服务器重新拉取目标直播视频的视频流,并更新视频流的转码标识。
在实施中,转码服务器从动态父节点处拉取目标直播视频的视频流中帧数据,并对帧数据逐一进行转码处理时,如果检测到目标直播视频的视频流中帧数据出现时间戳回退或跳变的现象,则可以重新从动态父节点拉取目标直播视频的视频流,并创建新转码任务,同时基于新转码任务的转码标识对重新拉取的视频流进行标记。
可选的,针对直接回源获取的视频流,在切换后无需判断视频流的新旧,相应的,步骤202的处理可以如下:目标节点判断目标视频流的域名信息是否属于预设回源域名;如果属于,目标节点则根据目标视频流中帧数据的DTS,选择性保留目标视频流的帧数据;如果不属于,目标节点则根据目标视频流和切换前视频流的新旧关系,和目标视频流中帧数据的DTS,选择性保留目标视频流的帧数据。
在实施中,CDN集群的直播加速系统还包含直接回客户源拉取视频流的业务场景。在该场景内,客户与CDN服务方可以协商确定需要回源拉取的视频流的域名信息(可称为预设回源域名),并由CDN服务方记录在各个静态父节点和拉流边缘节点中。这样,静态父节点从目标上级节点拉取目标视频流后,可以先判断目标视频流的域名信息是否属于预设回源域名。如果属于,则无需比对目标视频流与切换前视频流的新旧关系,可以直接根据目标视频流中帧数据的DTS,如约定DTS单调递增的方式,选择性保留目标视频流的帧数据。而如果不属于,则可以基于上述步骤202中的处理,选择性保留目标视频流的帧数据。上述处理的实现场景架构可以参考图4所示。
步骤203,目标节点将已保留的目标直播视频的帧数据,发送至目标节点的下级节点。
在实施中,在切换上级节点后,静态父节点可以将已保留的目标直播视频的帧数据,发送至其下级的拉流边缘节点。可以理解,已保留的目标直播视频的帧数据可以包括静态父节点在切换前从原动态父节点拉取的帧数据,和在切换后从新动态父节点拉取的帧数据。同理,拉流边缘节点的处理与静态父节点的处理相似,此处不再赘述。
本发明实施例中,目标节点切换至目标上级节点进行拉流,接收目标上级节点发送的目标直播视频的目标视频流;目标节点根据目标视频流和切换前视频流的新旧关系,和目标视频流中帧数据的DTS,选择性保留目标视频流的帧数据;目标节点将已保留的目标直播视频的帧数据,发送至目标节点的下级节点。这样,在切换上级节点拉流后,可以通过比对新旧视频流和帧数据的DTS来确定拉取的视频流中哪些帧数据已被缓存,从而可以丢弃相应的帧数据,以避免部分视频帧内容被重复缓存,进一步解决了因重复接收数据而导致的视频画面重复播放的问题,提高了直播视频的播放效果。
基于相同的技术构思,本发明实施例还提供了一种直播加速系统,所述系统包括CDN集群,所述CDN集群的静态父节点或者拉流边缘节点,用于:
切换至目标上级节点进行拉流,接收所述目标上级节点发送的目标直播视频的目标视频流;
根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据;
将已保留的所述目标直播视频的帧数据,发送至所述目标节点的下级节点。
可选的,所述CDN集群的静态父节点或者拉流边缘节点,具体用于:
若所述目标视频流相对切换前视频流为新视频流,则保留所述目标视频流的所有帧数据;
若所述目标视频流相对切换前视频流为同一视频流,则保留所述目标视频流中DTS大于本地已记录的所述目标直播视频的最新DTS的帧数据;
若所述目标视频流相对切换前视频流为旧视频流,则丢弃所述目标视频流的所有帧数据。
可选的,所述CDN集群的推流边缘节点,用于:在接收到所述目标直播视频的任一视频流时,基于视频流的首包接收时间为所述视频流标记推流时间。
可选的,所述CDN集群的静态父节点或者拉流边缘节点,还用于:根据所述目标视频流的推流时间和所述切换前视频流的推流时间,确定所述目标视频流和所述切换前视频流的新旧关系。
可选的,所述推流边缘节点,具体用于:
当接收到目标直播视频的视频流的元数据包时,在所述元数据包中添加当前的第一接收时间,并将所述第一接收时间作为所述元数据包所属视频流的推流时间;
当接收到所述目标直播视频的视频流的新元数据包时,在所述新元数据包中添加当前的第二接收时间,并将所述第二接收时间作为所述新元数据包所属视频流的推流时间。
可选的,所述CDN集群还包括转码服务器,所述转码服务器用于:
在对目标直播视频的任一视频流进行转码时,为所述视频流标记转码标识。
可选的,所述CDN集群的静态父节点或者拉流边缘节点,具体用于:
若所述目标视频流对应的转码标识与所述切换前视频流的转码标识相同,则保留所述目标视频流中DTS大于本地已记录的所述目标直播视频的最新DTS的帧数据,否则从所述目标视频流中首个DTS大于本地已记录的所述目标直播视频的最新DTS的I帧开始,保留帧数据。
可选的,所述转码服务器,具体用于:
当接收到目标直播视频的视频流的元数据包时,创建第一转码任务,并在所述元数据包中添加所述第一转码任务对应的转码标识;
当接收到所述目标直播视频的视频流的新元数据包时,创建第二转码任务,并在所述新元数据包中添加第二转码任务对应的转码标识。
可选的,所述转码服务器,还用于:
当检测到目标直播视频的视频流中帧数据出现时间戳回退或跳变时,重新拉取目标直播视频的视频流,并更新所述视频流的转码标识。
可选的,所述CDN集群的静态父节点或者拉流边缘节点,具体用于:
判断所述目标视频流的域名信息是否属于预设回源域名;
如果属于,则根据所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据;
如果不属于,则根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据。
本发明实施例中,目标节点切换至目标上级节点进行拉流,接收目标上级节点发送的目标直播视频的目标视频流;目标节点根据目标视频流和切换前视频流的新旧关系,和目标视频流中帧数据的DTS,选择性保留目标视频流的帧数据;目标节点将已保留的目标直播视频的帧数据,发送至目标节点的下级节点。这样,在切换上级节点拉流后,可以通过比对新旧视频流和帧数据的DTS来确定拉取的视频流中哪些帧数据已被缓存,从而可以丢弃相应的帧数据,以避免部分视频帧内容被重复缓存,进一步解决了因重复接收数据而导致的视频画面重复播放的问题,提高了直播视频的播放效果。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种传输直播视频数据的方法,其特征在于,所述方法包括:
目标节点切换至目标上级节点进行拉流,接收所述目标上级节点发送的目标直播视频的目标视频流;其中,所述目标节点为CDN集群的直播加速系统中的静态父节点或者拉流边缘节点;
所述目标节点根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据;
所述目标节点将已保留的所述目标直播视频的帧数据,发送至所述目标节点的下级节点。
2.根据权利要求1所述的方法,其特征在于,所述目标节点根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据,包括:
若所述目标视频流相对切换前视频流为新视频流,所述目标节点则保留所述目标视频流的所有帧数据;
若所述目标视频流相对切换前视频流为同一视频流,所述目标节点则保留所述目标视频流中DTS大于本地已记录的所述目标直播视频的最新DTS的帧数据;
若所述目标视频流相对切换前视频流为旧视频流,所述目标节点则丢弃所述目标视频流的所有帧数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
推流边缘节点在接收到所述目标直播视频的任一视频流时,基于视频流的首包接收时间为所述视频流标记推流时间。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述目标节点根据所述目标视频流的推流时间和所述切换前视频流的推流时间,确定所述目标视频流和所述切换前视频流的新旧关系。
5.根据权利要求3所述的方法,其特征在于,所述推流边缘节点在接收到所述目标直播视频的任一视频流时,基于视频流的首包接收时间为所述视频流标记推流时间,包括:
当接收到目标直播视频的视频流的元数据包时,所述推流边缘节点在所述元数据包中添加当前的第一接收时间,并将所述第一接收时间作为所述元数据包所属视频流的推流时间;
当接收到所述目标直播视频的视频流的新元数据包时,所述推流边缘节点在所述新元数据包中添加当前的第二接收时间,并将所述第二接收时间作为所述新元数据包所属视频流的推流时间。
6.根据权利要求2所述的方法,其特征在于,所述方法还包括:
转码服务器在对目标直播视频的任一视频流进行转码时,为所述视频流标记转码标识。
7.根据权利要求6所述的方法,其特征在于,所述目标节点保留所述目标视频流中DTS大于本地已记录的所述目标直播视频的最新DTS的帧数据,包括:
若所述目标视频流对应的转码标识与所述切换前视频流的转码标识相同,所述目标节点则保留所述目标视频流中DTS大于本地已记录的所述目标直播视频的最新DTS的帧数据,否则从所述目标视频流中首个DTS大于本地已记录的所述目标直播视频的最新DTS的I帧开始,保留帧数据。
8.根据权利要求6所述的方法,其特征在于,所述转码服务器在对目标直播视频的任一视频流进行转码时,为所述视频流标记转码标识,包括:
当接收到目标直播视频的视频流的元数据包时,所述转码服务器创建第一转码任务,并在所述元数据包中添加所述第一转码任务对应的转码标识;
当接收到所述目标直播视频的视频流的新元数据包时,所述转码服务器创建第二转码任务,并在所述新元数据包中添加第二转码任务对应的转码标识。
9.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当检测到目标直播视频的视频流中帧数据出现时间戳回退或跳变时,所述转码服务器重新拉取目标直播视频的视频流,并更新所述视频流的转码标识。
10.根据权利要求1所述的方法,其特征在于,所述目标节点则根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据,包括:
所述目标节点判断所述目标视频流的域名信息是否属于预设回源域名;
如果属于,所述目标节点则根据所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据;
如果不属于,所述目标节点则根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据。
11.一种直播加速系统,其特征在于,所述系统包括CDN集群,所述CDN集群的静态父节点或者拉流边缘节点,用于:
切换至目标上级节点进行拉流,接收所述目标上级节点发送的目标直播视频的目标视频流;
根据所述目标视频流和切换前视频流的新旧关系,和所述目标视频流中帧数据的DTS,选择性保留所述目标视频流的帧数据;
将已保留的所述目标直播视频的帧数据,发送至所述静态父节点或者所述拉流边缘节点的下级节点。
12.根据权利要求11所述的系统,其特征在于,所述CDN集群的静态父节点或者拉流边缘节点,具体用于:
若所述目标视频流相对切换前视频流为新视频流,则保留所述目标视频流的所有帧数据;
若所述目标视频流相对切换前视频流为同一视频流,则保留所述目标视频流中DTS大于本地已记录的所述目标直播视频的最新DTS的帧数据;
若所述目标视频流相对切换前视频流为旧视频流,则丢弃所述目标视频流的所有帧数据。
13.根据权利要求12所述的系统,其特征在于,所述CDN集群的推流边缘节点,用于:在接收到所述目标直播视频的任一视频流时,基于视频流的首包接收时间为所述视频流标记推流时间。
14.根据权利要求13所述的系统,其特征在于,所述CDN集群的静态父节点或者拉流边缘节点,还用于:根据所述目标视频流的推流时间和所述切换前视频流的推流时间,确定所述目标视频流和所述切换前视频流的新旧关系。
15.根据权利要求12所述的系统,其特征在于,所述CDN集群还包括转码服务器,用于:
在对目标直播视频的任一视频流进行转码时,为所述视频流标记转码标识。
16.根据权利要求15所述的系统,其特征在于,所述CDN集群的静态父节点或者拉流边缘节点,具体用于:
若所述目标视频流对应的转码标识与所述切换前视频流的转码标识相同,则保留所述目标视频流中DTS大于本地已记录的所述目标直播视频的最新DTS的帧数据,否则从所述目标视频流中首个DTS大于本地已记录的所述目标直播视频的最新DTS的I帧开始,保留帧数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010984708.0A CN112261418B (zh) | 2020-09-18 | 2020-09-18 | 一种传输直播视频数据的方法和直播加速系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010984708.0A CN112261418B (zh) | 2020-09-18 | 2020-09-18 | 一种传输直播视频数据的方法和直播加速系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112261418A CN112261418A (zh) | 2021-01-22 |
CN112261418B true CN112261418B (zh) | 2022-09-30 |
Family
ID=74232881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010984708.0A Active CN112261418B (zh) | 2020-09-18 | 2020-09-18 | 一种传输直播视频数据的方法和直播加速系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112261418B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113038246A (zh) * | 2021-02-23 | 2021-06-25 | 北京金山云网络技术有限公司 | 多媒体帧的传输方法、装置和计算机可读存储介质 |
CN112737897B (zh) * | 2021-04-06 | 2021-06-18 | 北京百家视联科技有限公司 | 一种链路监测调度方法、装置、设备及存储介质 |
CN113676777B (zh) * | 2021-08-18 | 2024-03-08 | 上海哔哩哔哩科技有限公司 | 数据处理方法及装置 |
CN113973215A (zh) * | 2021-10-25 | 2022-01-25 | 北京字节跳动网络技术有限公司 | 数据去重方法、装置及存储介质 |
CN114598428A (zh) * | 2022-05-10 | 2022-06-07 | 北京中科大洋科技发展股份有限公司 | 一种基于srt协议的冗余推流方法 |
CN115174569B (zh) * | 2022-06-27 | 2024-03-19 | 普联技术有限公司 | 一种视频流传输的控制方法、装置、服务器及存储介质 |
CN115842863B (zh) * | 2023-02-24 | 2023-06-23 | 天翼云科技有限公司 | 一种缓存节点调度方法、装置及设备、介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106210779A (zh) * | 2016-08-15 | 2016-12-07 | 暴风集团股份有限公司 | 优化网络视频直播数据分层传输的方法及系统 |
CN111601180A (zh) * | 2020-05-14 | 2020-08-28 | 上海济丽信息技术有限公司 | 一种基于pts的分布式拼接大屏幕视频流集群同步显示系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3964872B2 (ja) * | 2001-10-29 | 2007-08-22 | エムピーネット・インターナショナル・インコーポレイテッド | マルチメディア通信のためのデータ構造、方法及びシステム |
CN101282230B (zh) * | 2007-04-05 | 2011-04-20 | 中兴通讯股份有限公司 | 广播数据全网同步的实现方法 |
EP2040436A1 (en) * | 2007-09-18 | 2009-03-25 | THOMSON Licensing | Access network handover for a mobile television system |
CN103856806B (zh) * | 2012-11-28 | 2018-05-01 | 腾讯科技(北京)有限公司 | 视频流切换方法、装置及系统 |
WO2014117775A1 (en) * | 2013-01-31 | 2014-08-07 | Codemate A/S | Network content delivery method using a delivery helper node |
CN108234997B (zh) * | 2017-12-12 | 2019-11-26 | 北京百度网讯科技有限公司 | 直播视频的时延测量方法、设备、系统及计算机可读介质 |
CN108347622B (zh) * | 2018-03-06 | 2020-06-30 | 腾讯科技(深圳)有限公司 | 多媒体数据推送方法、装置、存储介质及设备 |
CN108737405B (zh) * | 2018-05-10 | 2020-02-18 | 网宿科技股份有限公司 | 一种对直播视频流进行导流的方法、ccl服务器和系统 |
CN109089130B (zh) * | 2018-09-18 | 2020-05-22 | 网宿科技股份有限公司 | 一种调整直播视频的时间戳的方法和装置 |
CN109246443B (zh) * | 2018-11-28 | 2021-03-23 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种直播流切片同步方法及系统 |
CN109889543B (zh) * | 2019-03-26 | 2020-11-13 | 广州华多网络科技有限公司 | 视频传输的方法、根节点、子节点、p2p服务器和系统 |
CN111372145B (zh) * | 2020-04-15 | 2021-07-27 | 烽火通信科技股份有限公司 | 一种多视点视频的视点切换方法和系统 |
-
2020
- 2020-09-18 CN CN202010984708.0A patent/CN112261418B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106210779A (zh) * | 2016-08-15 | 2016-12-07 | 暴风集团股份有限公司 | 优化网络视频直播数据分层传输的方法及系统 |
CN111601180A (zh) * | 2020-05-14 | 2020-08-28 | 上海济丽信息技术有限公司 | 一种基于pts的分布式拼接大屏幕视频流集群同步显示系统 |
Non-Patent Citations (1)
Title |
---|
移动流媒体内容分发子系统的研究设计;屈建萍等;《中国农业大学学报》;20081015(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112261418A (zh) | 2021-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112261418B (zh) | 一种传输直播视频数据的方法和直播加速系统 | |
CN108737405B (zh) | 一种对直播视频流进行导流的方法、ccl服务器和系统 | |
US8046453B2 (en) | Illustration supported P2P media content streaming | |
US9338206B2 (en) | Method and apparatus for playing live content | |
JP5493627B2 (ja) | 情報処理装置、データ管理方法、およびプログラム | |
CN108347622B (zh) | 多媒体数据推送方法、装置、存储介质及设备 | |
US20100043022A1 (en) | Personalized Ad Insertion During Start Over Service | |
WO2012031244A1 (en) | Improved bandwidth allocation with modified seek function | |
US20120030707A1 (en) | Methods and Arrangements for Channel Change in an IPTV Network | |
CN108370281B (zh) | 流式传输内容的多播传送的数据速率适配 | |
US20070008969A1 (en) | Apparatuses and methods for delivering data stream content to consumer devices | |
CN113141522B (zh) | 资源传输方法、装置、计算机设备及存储介质 | |
US20210274241A1 (en) | Client based storage of remote element resolutions | |
JP2015534312A (ja) | レンダリング時の制御 | |
US20130031580A1 (en) | Apparatus and method for inserting advertisement in a broadcasting system | |
CN103404158A (zh) | 用于恢复暂停的媒体的方法和设备 | |
CN114245153B (zh) | 切片方法、装置、设备及可读存储介质 | |
JP2010232781A (ja) | コンテンツ配信システム、ノード装置、離脱処理遅延方法及び離脱処理遅延制御プログラム | |
US20210337262A1 (en) | Systems and methods for media content hand-off based on type of buffered data | |
EP2341680B1 (en) | Method and apparatus for adaptation of a multimedia content | |
KR100848309B1 (ko) | 고속 버퍼링 스위치를 이용한 인터넷 방송 서비스 제공방법 및 그 장치 | |
KR101780247B1 (ko) | 동적 적응 버퍼링 기반의 ott 데이터 처리 방법 | |
AU2011245930B2 (en) | Method and apparatus for playing live content | |
CN113612728B (zh) | 流媒体播放方法、传输设备和系统 | |
CN113132806B (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 |