CN110198311A - 一种数据流处理方法、装置、设备及介质 - Google Patents

一种数据流处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN110198311A
CN110198311A CN201910421712.3A CN201910421712A CN110198311A CN 110198311 A CN110198311 A CN 110198311A CN 201910421712 A CN201910421712 A CN 201910421712A CN 110198311 A CN110198311 A CN 110198311A
Authority
CN
China
Prior art keywords
frame
data stream
target frame
data
sequence buffer
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
CN201910421712.3A
Other languages
English (en)
Other versions
CN110198311B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910421712.3A priority Critical patent/CN110198311B/zh
Publication of CN110198311A publication Critical patent/CN110198311A/zh
Application granted granted Critical
Publication of CN110198311B publication Critical patent/CN110198311B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种数据流处理方法、装置、设备及介质,所述方法包括获取来自相同源站的至少两路参考数据流,各个所述参考数据流具备相同的帧数据;为每个参考数据流设置帧序列缓存器,并根据实时获取的参考数据流更新其对应的帧序列缓存器;实时从各个所述帧序列缓存器中获取目标帧,并输出所述目标帧。本发明实时获取参考流数据,并实时更新帧序列缓存器,从而实时输出目标帧,各个时刻被选择输出的目标帧形成了目标数据流,该目标数据流可以被推流至推流接入点服务器。若某个源站边缘节点出现故障,或者某个通信链路出现故障,只会影响到某个参考数据流,而不会影响到其它参考数据流,不影响目标数据流的输出,从而保证了目标数据流的稳定性。

Description

一种数据流处理方法、装置、设备及介质
技术领域
本发明涉及数据处理领域,尤其涉及一种数据流处理方法、装置、设备及介质。
背景技术
在视频分享场景中,经常需要把流媒体从其他位置(通常称为源站)拉过来再转推到自身平台进行加工后再分发出去,这个环节称之为拉流转推。拉流转推是视频分享的第一跳,其稳定性非常重要。而现有技术中从源站拉流时,通常只拉取一路流,并将其转推到视频分享平台,这样经常会遭遇边缘节点网络不稳定、负载过高、死机等各种不稳定因素导致流媒体出现卡顿。比如,当源站出现波动或者源站和拉流转推环节之间的网络链路出现波动时,拉流转推的出流会出现波动,从而引发下行观众观看卡顿。
为了提升流媒体播放稳定性,如图1所示,现有技术中还可以通过拉取多路流,并将多路流通过拉流转推模块一并推流到推流接入点,比如某个视频分享平台或直播平台,通过获取冗余数据以达到在不稳定时推流接入点可以通过切换流保障下行客户端的视频正常播放,但是,多路流之间难以避免存在延时,直接进行流切换很有可能导致视频的跳跃,难以保证视频平稳播放。
发明内容
为了解决现有技术中在拉流转推环节稳定性不够,容易导致下行观众收看的视频出现卡顿、跳跃等播放异常的技术问题,本发明实施例提供一种数据流处理方法、装置、设备及介质。
一方面,本发明提供一种数据流处理方法,包括:
获取来自相同源站的至少两路参考数据流,各个所述参考数据流具备相同的帧数据;
为每个参考数据流数据流设置帧序列缓存器,并根据实时获取的参考数据流更新其对应的帧序列缓存器;
实时从各个所述帧序列缓存器中获取目标帧,并输出所述目标帧。
另一方面,本发明提供一种数据流处理装置,所述装置包括:
多路数据源获取模块,用于获取来自相同源站的至少两路参考数据流,各个所述参考数据流具备相同的帧数据;
缓存模块,用于为每个参考数据流数据流设置帧序列缓存器,并根据实时获取的参考数据流更新其对应的帧序列缓存器;
目标帧输出模块,用于实时从各个所述帧序列缓存器中获取目标帧,并输出所述目标帧。
另一方面,本发明提供了一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现一种数据流处理方法。
另一方面,本发明提供了一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行一种数据流处理方法。
本发明提供了一种数据流处理方法、装置、设备及介质。本发明实时获取参考流数据,并实时更新帧序列缓存器,从而实时输出目标帧,各个时刻被选择输出的目标帧形成了目标数据流,该目标数据流可以被推流至推流接入点服务器。显然,若某个源站边缘节点出现故障,或者某个通信链路出现故障,只会影响到某一个参考数据流,而不会影响到其它参考数据流,因此,并不影响目标数据流的输出,从而保证了目标数据流的稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本发明提供的现有技术中通过拉取多路流提升播放平稳性的技术方案示意图;
图2是本发明提供的直播间的一种拉流和推流配合逻辑示意图;
图3是本发明提供的一种实施环境的示意图;
图4是本发明提供的一种数据流处理方法;
图5是本发明提供的一种播放器预加载方法的示意图;
图6是本发明提供的在两路参考数据流的场景中的数据流处理示意图;
图7是本发明提供的所述帧序列缓存器为帧序列缓存队列,则所述从各个所述帧序列缓存器中获取目标帧流程图;
图8是本发明提供的一种数据流处理装置框图;
图9是本发明提供的目标帧输出模块框图;
图10是本发明提供的另一个目标帧输出模块框图;
图11是本发明提供的一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明实施例,并不用于限定本发明实施例。为了更清楚地说明本发明实施例中的技术方案及其所取得的技术进步,本发明实施例首先对本发明实施例中用到的或实现的技术术语与技术背景做下述阐述:
拉流:根据协议类型,与服务器建立连接并接收数据;解析数据,从中找到相关流信息,以便于进行后续转码、解压以及播放。
推流:经过输出设备将数据以流的形式进行推送和分发。
拉流和推流广泛应用于视频交互场景。请参考图2,其示出了在某个直播间的一种拉流和推流配合逻辑示意图。推流端软件开发工具包(Software DevelopmentKit,SDK)通过拉流获取主播产生的数据流,并将所述数据流通过推流推送至分布式推流节点,并由分布式推流节点将数据流推流至直播云服务器,以便于各个直播源站通过拉流获取数据流,从而对外提供直播服务。并且,直播云服务器还可以将数据流实时推送至其它分布式推流节点,相应的,各个观众都可以通过播放器SDK拉取来自分布式推流节点的数据流从而实时观看直播。此外,在直播场景中,还可以支持点播的收看。具体地直播云服务器与转码集群双向连接,并与录制集群双向连接,从而对直播产生的数据流进行转码和存储,并生成点播流,点播流被用户拉取后即可支持点播的收看。
图3是本发明实施例提供的一种实施环境的示意图,参见图1,该实施环境包括:源站服务器01,推流接入点服务器03,中转服务器05以及客户端07。
所述源站服务器01,推流接入点服务器03,中转服务器05均可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群。客户端07与中转服务器05基于浏览器/服务器模式(Browser/Server,B/S)或客户端/服务器模式(Client/Server,C/S)通信。
所述客户端07可以包括:智能手机、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、车载终端等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。比如,所述客户端07可以运行直播类软体,视频分享类软体。
源站服务器01用于向外提供音频、视频或音视频数据源,推流接入点服务器03用于获取来自源站服务器01或其它源节点的数据源,以便于中转服务器05拉取数据源,比如在直播场景中,主播即为一个源节点,其产生的数据源传输至推流接入点服务器03。推流接入点服务器03获取到的视频可以被客户端或其它服务器拉取,推流接入点服务器03可以具体为提供某个分享服务的内部数据源服务器,比如直播服务平台或视频聊天服务器。
中转服务器05可以分为转码服务器051和分发服务器053,其中转码服务器051用于进行转码。推流接入点服务器03中的数据源的码率、帧率、格式等基本参数可能与客户端是不够匹配的,因此需要进行转码,这一功能可以在中转服务器05中实现,并将转码后的数据流通过分发服务器053分发给各个客户端07。
分发服务器053可以具体为内容分发网络(Content Delivery Network,CDN),CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
本发明实施例公开一种数据流处理方法,所述方法应用于所述实施环境中以便于对源站输出的数据流进行处理,以提升推流入推流接入点服务器的数据流的稳定性,如图4所示,所述方法包括:
S101.获取来自相同源站的至少两路参考数据流,各个所述参考数据流具备相同的帧数据。
在一个可行的实施方式中,所述源站可以通过至少两个边缘接入点以供拉流,若边缘接入点数量不小于参考数据流的数量,则所述获取来自相同源站的至少两路数据可以包括:从所述源站的各个边缘接入点中选取至少两个参考边缘接入点,从每个参考边缘接入点拉取一个参考数据流。
若边缘接入点的数量小于参考数据流的数量,则所述获取来自相同源站的至少两路数据可以包括:从所述源站的每个边缘接入点均拉取至少一个参考数据流以得到至少两路参考数据流。
在其它可行的实施方式中,可以只在源站的某个接入点,或者只在源站拉取一路数据流作为参考数据流,并对所述参考数据流进行至少一份拷贝以得到至少两路参考数据流。
为了提升参考数据流对于推流入推流接入点服务器的数据流的稳定性的提升效果,达到最大化容灾的目的,本发明优选的实施方式中各个参考数据流可以基于不同的通信链路得到,比如一条参考数据流基于海底光纤获取,另一个参考数据流基于卫星获取。
具体地,步骤S101可以基于拉流技术实现,拉流技术可以解析二进制数据,从中找到相关流信息;根据不同的封装格式来得到视频数据和音频数据,其中视频数据可以为H.264编码格式的视频数据,音频数据可以为AAC编码格式的音频数据。
S103.为每个参考数据流数据流设置帧序列缓存器,并根据实时获取的参考数据流更新其对应的帧序列缓存器。
具体地,所述帧序列缓存器优选为队列缓存器,队列先入先出的特性可以保证帧序列缓存器中的帧序列的时序关系和与其对应的参考数据流中帧序列的时序关系一致。
S105.实时从各个所述帧序列缓存器中获取目标帧,并输出所述目标帧。
在本发明实施例中实时获取参考流数据,并实时更新帧序列缓存器,从而实时输出目标帧,各个时刻被选择输出的目标帧形成了目标数据流,该目标数据流可以被推流至推流接入点服务器。显然,若某个源站边缘节点出现故障,或者某个通信链路出现故障,只会影响到某一个参考数据流,而不会影响到其它参考数据流,因此,并不影响目标数据流的输出,从而保证了目标数据流的稳定性。
并且,本发明实施例中是在各个帧序列缓存器中选取合适的某个帧作为目标帧从而形成了目标数据流,在选择目标帧的各个时刻都对各个帧序列缓存器中的数据进行了考虑,从而可以选取到与前一时刻输出的目标帧相连贯的新的目标帧,从而避免现有技术中直接切换数据流导致的视频跳跃现象。
具体地,所述目标帧形成的目标数据流可以基于推流协议被推送出去,本发明实施例至少支持下述推流协议:
实时消息传输协议(Real Time Messaging Protocol,RTMP):RTMP是音、视频及数据传输开发的实时消息传送协议。RTMP协议基于传输控制协议(Transmission ControlProtocol,TCP),包括RTMP基本协议及多种变种。RTMP是目前主流的流媒体传输协议,对CDN支持良好,实现难度较低,是大多数的直播平台的选择。
流媒体实时传输协议(Http Live Streaming,HLS):其原理是将整个流分为多个小的文件来下载,每次只下载若干个。服务器端会将最新的直播数据生成新的小文件,客户端只要不停的按顺序播放从服务器获取到的文件,就实现了直播。基本上,HLS是以点播的技术实现了直播的体验。因为每个小文件的时长很短,客户端可以很快地切换码率,以适应不同带宽条件下的播放。其分段推送的技术特点,决定了HLS的延迟一般会高于普通的流媒体直播协议。
源自网页即时通信(Web Real-Time Communicatio,WebRTC):是一个支持浏览器进行实时语音、视频对话的开源协议,可以实现点对点通信,通信双方延时低,此外,WebRTC可以实现点对点通信,通信双方延时低,是实现“连麦”功能比较好的选择。
具体地,所述目标帧为各个所述帧序列缓存器中显示时间戳最小的帧,并且所述目标帧的显示时间戳大于已经被输出的其它目标帧。显示时间戳Presentation TimeStamp(PTS),这个显示时间戳为帧数据的参数,其用于指示播放器在什么时候显示这一帧的数据。这个值的大小反应了该帧图显示的先后关系。
具体地,所述从各个所述帧序列缓存器中获取目标帧,如图5所示,包括:
S1051.获取各个所述帧序列缓存器中的帧数据对应的显示时间戳。
S1053.将显示时间戳最小的帧数据确定为疑似目标帧。
S1055.获取上一时刻目标帧的显示时间戳,并将所述上一时刻目标帧的显示时间戳作为参考时间戳。
S1057.若所述疑似目标帧的显示时间戳大于所述参考时间戳,则将所述疑似目标帧确定为目标帧。
以所述参考数据流有两路为例,本发明实施例对上述数据流处理方法进行详述:
如图6所示,其示出了在两路参考数据流的场景中的数据流处理示意图。
从源站边缘点A拉取参考数据流A,从源站边缘点B拉取参考数据流B。参考数据流A被实时存入存入的帧序列缓存队列A,参考数据流B被实时存入存入的帧序列缓存队列B。获取帧序列缓存队列A和序列缓存队列B各个帧数据的显示时间戳,选择显示时间戳小的作为输出。
假设帧序列缓存队列A首帧DtsA1的显示时间戳大于序列缓存队列B首帧DtsB1的显示时间戳,则将序列缓存队列B首帧DtsB1作为目标帧输出。
然后紧接着取序列缓存队列B的DtsB2和帧序列缓存队列A首帧DtsA1比较,如果DtsB2比DtsA1显示时间戳小,则DtsA1作为输出流的第二帧;否则DtsA1作为目标帧输出。以此类推。
基于以上流程,当其中一路拷贝数据到达慢时,则以到达快的那路拷贝的数据作为输出,防止了源站某个边缘节点或者网络的卡顿造成了输出卡顿。
在一个优选的实施方式中,所述帧序列缓存器为帧序列缓存队列,则所述从各个所述帧序列缓存器中获取目标帧,如图7所示,包括:
S1052.取各个帧序列缓存队列中最靠近队首位置的非空帧数据,获取各个非空帧数据对应的显示时间戳。
若队首位置不为空,则队首位置存储的数据即为非空帧数据。
S1054.将显示时间戳最小的非空帧数据确定为疑似目标帧。
S1056.获取上一时刻目标帧的显示时间戳,并将所述上一时刻目标帧的显示时间戳作为参考时间戳。
S1058.若所述疑似目标帧的显示时间戳大于所述参考时间戳,则将所述疑似目标帧确定为目标帧。
S1060.删除目标帧以及各个所述帧序列缓存器中与所述目标帧显示时间戳相同的帧数据。
在一个可选的实施方式中,还可以若所述疑似目标帧的显示时间戳大于所述参考时间戳,则删除疑似目标帧以及各个帧序列缓存队列中显示时间戳与所述疑似目标帧相同的帧数据。
进一步地,在一个可行的实施例中,还可以对帧序列缓存队列进行更新方法,包括:
(1)实时获取参考数据流,并将所述参考数据流中的数据压入其对应的所述帧序列缓存队列的队尾。
(2)在目标帧被输出后,删除所述目标帧,并删除除去所述目标帧所在的帧序列缓存队列之外其它帧序列中与所述目标帧显示时间戳相同的其它帧数据。
(4)若某个帧序列缓存队列中被某个帧数据被删除,则所述帧数据之后其它帧数据位置均被前移一位。
(5)若某个帧序列缓存队列被填满,则清空所述帧缓存队列。
本发明实施例公开的一种数据流处理方法,可以显著提升推出的目标数据流的稳定性,某个参考流出现波动或故障并不影响目标数据流的平稳输出,也不会产生目标数据流中数据的跳变,不会造成播放卡顿或者播放画面跳跃,不仅能够提升用户粘度,而且具有广阔的应用前景。
以直播场景为例,对应直播服务,使用拉流转推技术从源站拉流推到直播服务平台是一项基本能力。保障源站链路上的稳定和流畅是保障下行低卡顿,观看流程的基础。直播平台的容灾能力和卡顿率是衡量直播平台的好坏的最重要的两个参数,稳定和卡顿低的直播平台,显然可以更好的维持用户粘度。本发明实施例中作为一种对现有拉流转推技术的优化技术,可以从源站获取多条参考数据流,并且获取高质量高稳定性的目标数据流,并将目标数据流推到直播服务平台。通过不同参考数据流合并的方法保障目标数据流的流畅,以便于若某一路参考数据流出现抖动,数据延时到达时,能用其它参考数据流的数据作为输出,保证目标输出流的连续性。通过对不同路径来的相同参考数据流的合并,来降低下行卡顿,从而优化用户观看直播的体验。
本发明实施例还公开了一种数据流处理装置,如图8所示,所述装置包括:
多路数据源获取模块201,用于获取来自相同源站的至少两路参考数据流,各个所述参考数据流具备相同的帧数据;
缓存模块203,用于为每个参考数据流数据流设置帧序列缓存器,并根据实时获取的参考数据流更新其对应的帧序列缓存器;
目标帧输出模块205,用于实时从各个所述帧序列缓存器中获取目标帧,并输出所述目标帧。
在一个可行的实施方式中,所述目标帧输出模块205如图9所示,包括:
第一显示时间戳获取单元2051,用于获取各个所述帧序列缓存器中的帧数据对应的显示时间戳;
疑似目标帧确定单元2053,用于将显示时间戳最小的帧数据确定为疑似目标帧;
参考时间戳获取单元2055,用于获取上一时刻目标帧的显示时间戳,并将所述上一时刻目标帧的显示时间戳作为参考时间戳;
目标帧确定单元2057,用于若所述疑似目标帧的显示时间戳大于所述参考时间戳,则将所述疑似目标帧确定为目标帧。
在一个优选的实施方式中,所述帧序列缓存器为帧序列缓存队列,目标帧输出模块205如图10所示,包括:
第二显示时间戳获取单元2052,用于取各个帧序列缓存队列中最靠近队首位置的非空帧数据,获取各个非空帧数据对应的显示时间戳;
疑似目标帧确定单元2054,用于将显示时间戳最小的非空帧数据确定为疑似目标帧;
参考时间戳获取单元2056,用于获取上一时刻目标帧的显示时间戳,并将所述上一时刻目标帧的显示时间戳作为参考时间戳;
目标帧确定单元2058,用于若所述疑似目标帧的显示时间戳大于所述参考时间戳,则将所述疑似目标帧确定为目标帧;
第一删除单元2060,用于删除目标帧以及各个所述帧序列缓存器中与所述目标帧显示时间戳相同的帧数据。
第二删除单元2062,用于若所述疑似目标帧的显示时间戳大于所述参考时间戳,则删除疑似目标帧以及各个帧序列缓存队列中显示时间戳与所述疑似目标帧相同的帧数据。
具体地,本发明实施例所述一种数据流处理装置与方法实施例均基于相同发明构思。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质可以存储有多条指令,所述指令适于由处理器加载并执行本发明实施例所述的一种数据流处理方法的各种步骤,具体执行过程包括:
.一种数据流处理方法,所述方法包括:
获取来自相同源站的至少两路参考数据流,各个所述参考数据流具备相同的帧数据;
为每个参考数据流数据流设置帧序列缓存器,并根据实时获取的参考数据流更新其对应的帧序列缓存器;
实时从各个所述帧序列缓存器中获取目标帧,并输出所述目标帧。
进一步地,所述获取来自相同源站的至少两路数据,包括:从所述源站的各个边缘接入点中选取至少两个参考边缘接入点,从每个参考边缘接入点拉取一个参考数据流。
进一步地,所述获取来自相同源站的至少两路数据包括:
在源站的某个接入点,或者只在源站拉取一路数据流作为参考数据流,并对所述参考数据流进行至少一份拷贝以得到至少两路参考数据流。
进一步地,各个参考数据流基于至少二种通信链路得到。
进一步地,所述从各个所述帧序列缓存器中获取目标帧,包括:
获取各个所述帧序列缓存器中的帧数据对应的显示时间戳;
将显示时间戳最小的帧数据确定为疑似目标帧;
获取上一时刻目标帧的显示时间戳,并将所述上一时刻目标帧的显示时间戳作为参考时间戳;
若所述疑似目标帧的显示时间戳大于所述参考时间戳,则将所述疑似目标帧确定为目标帧。
进一步地,所述帧序列缓存器为帧序列缓存队列,则所述从各个所述帧序列缓存器中获取目标帧,包括:
取各个帧序列缓存队列中最靠近队首位置的非空帧数据,获取各个非空帧数据对应的显示时间戳;
将显示时间戳最小的非空帧数据确定为疑似目标帧;
获取上一时刻目标帧的显示时间戳,并将所述上一时刻目标帧的显示时间戳作为参考时间戳;
若所述疑似目标帧的显示时间戳大于所述参考时间戳,则将所述疑似目标帧确定为目标帧;
删除目标帧以及各个所述帧序列缓存器中与所述目标帧显示时间戳相同的帧数据。
进一步地,图11示出了一种用于实现本发明实施例所提供的方法的设备的硬件结构示意图,所述设备可以参与构成或包含本发明实施例所提供的装置。如图11所示,设备10可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,设备10还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到设备10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中所述的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的一种数据流处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与设备10(或移动设备)的用户界面进行交互。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据流处理方法,其特征在于,所述方法包括:
获取来自相同源站的至少两路参考数据流,各个所述参考数据流具备相同的帧数据;
为每个参考数据流数据流设置帧序列缓存器,并根据实时获取的参考数据流更新其对应的帧序列缓存器;
实时从各个所述帧序列缓存器中获取目标帧,并输出所述目标帧。
2.根据权利要求1所述的方法,其特征在于,所述获取来自相同源站的至少两路数据,包括:从所述源站的各个边缘接入点中选取至少两个参考边缘接入点,从每个参考边缘接入点拉取一个参考数据流。
3.根据权利要求1所述的方法,其特征在于,所述获取来自相同源站的至少两路数据包括:
在源站的某个接入点,或者只在源站拉取一路数据流作为参考数据流,并对所述参考数据流进行至少一份拷贝以得到至少两路参考数据流。
4.根据权利要求1所述的方法,其特征在于,各个参考数据流基于至少二种通信链路得到。
5.根据权利要求1所述的方法,其特征在于,所述从各个所述帧序列缓存器中获取目标帧,包括:
获取各个所述帧序列缓存器中的帧数据对应的显示时间戳;
将显示时间戳最小的帧数据确定为疑似目标帧;
获取上一时刻目标帧的显示时间戳,并将所述上一时刻目标帧的显示时间戳作为参考时间戳;
若所述疑似目标帧的显示时间戳大于所述参考时间戳,则将所述疑似目标帧确定为目标帧。
6.根据权利要求1所述的方法,其特征在于,所述帧序列缓存器为帧序列缓存队列,则所述从各个所述帧序列缓存器中获取目标帧,包括:
取各个帧序列缓存队列中最靠近队首位置的非空帧数据,获取各个非空帧数据对应的显示时间戳;
将显示时间戳最小的非空帧数据确定为疑似目标帧;
获取上一时刻目标帧的显示时间戳,并将所述上一时刻目标帧的显示时间戳作为参考时间戳;
若所述疑似目标帧的显示时间戳大于所述参考时间戳,则将所述疑似目标帧确定为目标帧;
删除目标帧以及各个所述帧序列缓存器中与所述目标帧显示时间戳相同的帧数据。
7.根据权利要求6所述的方法,其特征在于:
若所述疑似目标帧的显示时间戳大于所述参考时间戳,则删除疑似目标帧以及各个帧序列缓存队列中显示时间戳与所述疑似目标帧相同的帧数据。
8.一种数据流处理装置,其特征在于,所述装置包括:
多路数据源获取模块,用于获取来自相同源站的至少两路参考数据流,各个所述参考数据流具备相同的帧数据;
缓存模块,用于为每个参考数据流数据流设置帧序列缓存器,并根据实时获取的参考数据流更新其对应的帧序列缓存器;
目标帧输出模块,用于实时从各个所述帧序列缓存器中获取目标帧,并输出所述目标帧。
9.一种设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-7任一项所述的一种数据流处理方法。
10.一种计算机存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如权利要求1-7任一项所述的一种数据流处理方法。
CN201910421712.3A 2019-05-21 2019-05-21 一种数据流处理方法、装置、设备及介质 Active CN110198311B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910421712.3A CN110198311B (zh) 2019-05-21 2019-05-21 一种数据流处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910421712.3A CN110198311B (zh) 2019-05-21 2019-05-21 一种数据流处理方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN110198311A true CN110198311A (zh) 2019-09-03
CN110198311B CN110198311B (zh) 2022-03-29

Family

ID=67752822

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910421712.3A Active CN110198311B (zh) 2019-05-21 2019-05-21 一种数据流处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN110198311B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111404882A (zh) * 2020-03-02 2020-07-10 广州华多网络科技有限公司 媒体流处理方法及装置
CN111464759A (zh) * 2020-03-26 2020-07-28 广州虎牙科技有限公司 一种直播导播方法、装置、存储介质及设备
CN112491601A (zh) * 2020-11-16 2021-03-12 北京字节跳动网络技术有限公司 流量拓扑生成方法、装置、存储介质及电子设备
CN113824985A (zh) * 2021-09-18 2021-12-21 北京百度网讯科技有限公司 直播拉流方法、装置、设备、存储介质及计算机程序产品
CN114070827A (zh) * 2022-01-17 2022-02-18 苏州浪潮智能科技有限公司 一种转推流数据的传输方法、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180048927A1 (en) * 2014-07-28 2018-02-15 Enseo, Inc. Server for Providing Television and System and Method for Use of Same
CN108769726A (zh) * 2018-06-14 2018-11-06 腾讯科技(深圳)有限公司 多媒体数据推送方法、装置、存储介质及设备
CN109218764A (zh) * 2017-07-07 2019-01-15 腾讯科技(深圳)有限公司 一种直播数据传输的方法、服务器及系统
CN109756758A (zh) * 2017-11-01 2019-05-14 腾讯科技(深圳)有限公司 直播控制方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180048927A1 (en) * 2014-07-28 2018-02-15 Enseo, Inc. Server for Providing Television and System and Method for Use of Same
CN109218764A (zh) * 2017-07-07 2019-01-15 腾讯科技(深圳)有限公司 一种直播数据传输的方法、服务器及系统
CN109756758A (zh) * 2017-11-01 2019-05-14 腾讯科技(深圳)有限公司 直播控制方法及装置
CN108769726A (zh) * 2018-06-14 2018-11-06 腾讯科技(深圳)有限公司 多媒体数据推送方法、装置、存储介质及设备

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111404882A (zh) * 2020-03-02 2020-07-10 广州华多网络科技有限公司 媒体流处理方法及装置
CN111404882B (zh) * 2020-03-02 2022-03-25 广州华多网络科技有限公司 媒体流处理方法及装置
CN111464759A (zh) * 2020-03-26 2020-07-28 广州虎牙科技有限公司 一种直播导播方法、装置、存储介质及设备
CN111464759B (zh) * 2020-03-26 2022-03-18 广州虎牙科技有限公司 一种直播导播方法、装置、存储介质及设备
CN112491601A (zh) * 2020-11-16 2021-03-12 北京字节跳动网络技术有限公司 流量拓扑生成方法、装置、存储介质及电子设备
CN112491601B (zh) * 2020-11-16 2022-08-30 北京字节跳动网络技术有限公司 流量拓扑生成方法、装置、存储介质及电子设备
CN113824985A (zh) * 2021-09-18 2021-12-21 北京百度网讯科技有限公司 直播拉流方法、装置、设备、存储介质及计算机程序产品
CN113824985B (zh) * 2021-09-18 2023-08-22 北京百度网讯科技有限公司 直播拉流方法、装置、设备、存储介质及计算机程序产品
CN114070827A (zh) * 2022-01-17 2022-02-18 苏州浪潮智能科技有限公司 一种转推流数据的传输方法、设备及介质
CN114070827B (zh) * 2022-01-17 2022-04-22 苏州浪潮智能科技有限公司 一种转推流数据的传输方法、设备及介质

Also Published As

Publication number Publication date
CN110198311B (zh) 2022-03-29

Similar Documents

Publication Publication Date Title
CN110198311A (zh) 一种数据流处理方法、装置、设备及介质
US10999342B2 (en) Caching media in a media fling system
CN109565620B (zh) 计算设备、用于生成和接收低延迟视频流的方法
US9912421B2 (en) Broadcast seeding for peer-to-peer networks
EP2805471B1 (en) Method and apparatus for enabling pre-fetching of media
US9047236B2 (en) Client side stream switching
CN104604263A (zh) 用于dash格式化的内容流送期间的无缝单播-广播切换的方法
CN109600388A (zh) 数据传输方法、装置、计算机可读介质及电子设备
CN112311874B (zh) 媒体数据处理方法、装置、存储介质及电子设备
US11863841B2 (en) Video playing control method and system
CN108200444B (zh) 一种视频直播的方法、装置和系统
WO2015042962A1 (en) System and method of a link surfed http live streaming broadcasting system
EP1879353B1 (en) Contents distribution system, contents distribution server, contents reproduction terminal, and contents distribution method
CN110213662A (zh) 一种视频点播方法、服务器、客户端及视频点播系统
US20220141273A1 (en) Streaming media data processing method, processing system and storage server
CN113727199A (zh) 一种hls切片快速起播方法
CN108574883A (zh) 实现多个cdn并行下载视频切片的方法
KR102051985B1 (ko) 이질적인 네트워킹 환경들에서 미디어 렌더링의 동기화
CN112073727B (zh) 转码方法、装置、电子设备及存储介质
CN113973215A (zh) 数据去重方法、装置及存储介质
US10750246B2 (en) Distributed architecture for mobile streaming content delivery
CN114979712A (zh) 视频起播方法、装置、设备及存储介质
Seung et al. Randomized routing in multi-party internet video conferencing
CN117714815A (zh) 直播时移方法和装置
CN116319701A (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