直播数据处理方法、装置、计算机设备和存储介质与流程

文档序号:15456059发布日期:2018-09-15 01:07阅读:251来源:国知局

本申请涉及计算机技术领域,特别是涉及一种直播数据处理方法、装置、计算机可读存储介质和计算机设备。



背景技术:

随着计算机技术的发展,网络视频直播由于综合了图像、声音和文字的优点,特别是向用户提供即时与互动的交流和沟通方式而受到用户的青睐,网络视频直播的活跃用户数量不断增加,观众的观看需求也不断多样化,越来越多的人不仅作为网络视频直播的观众,而且开始作为主播进入直播行业。然而,目前的网络视频直播经常发生直播延迟的现象大大地影响了主播和观众的积极性,对网络视频直播平台的业务也造成不良的影响。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够减少主播端到观众端直播延迟的直播数据处理方法、装置、计算机可读存储介质和计算机设备。

一种直播数据处理方法,包括:

接收播放终端发送的直播数据获取请求,根据直播数据获取请求获取当前待发送的直播数据,当前待发送的直播数据以帧为单位;

根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧;

将目标直播数据发送至播放终端,以使得播放终端播放目标直播数据。

一种直播数据处理系统,该系统包括:

播放终端,用于向处理服务器发送直播数据获取请求;

处理服务器,用于根据直播数据获取请求获取当前待发送的直播数据,其中当前待发送的直播数据以帧为单位,再根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,其中目标直播数据的起始数据帧包括视频关键帧,将目标直播数据发送至播放终端;

播放终端还用于播放服务器发送的目标直播数据。

一种直播数据处理装置,包括:

直播数据获取请求接收模块,用于接收播放终端发送的直播数据获取请求,根据直播数据获取请求获取当前待发送的直播数据,当前待发送的直播数据以帧为单位;

目标直播数据筛选模块,用于根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧;

目标直播数据发送模块,用于将目标直播数据发送至播放终端,以使得播放终端播放目标直播数据。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行所述程序时实现以下步骤:

接收播放终端发送的直播数据获取请求,根据直播数据获取请求获取当前待发送的直播数据,当前待发送的直播数据以帧为单位;

根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧;

将目标直播数据发送至播放终端,以使得播放终端播放目标直播数据。

一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,使得处理器执行以下步骤:

接收播放终端发送的直播数据获取请求,根据直播数据获取请求获取当前待发送的直播数据,当前待发送的直播数据以帧为单位;

根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧;

将目标直播数据发送至播放终端,以使得播放终端播放目标直播数据。

上述直播数据处理方法、装置、计算机可读存储介质和计算机设备,处理服务器接收播放终端发送的直播数据获取请求,根据该直播数据获取请求获取缓存的当前待发送的直播数据,其中当前待发送的直播数据以帧为单位,处理服务器再根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧,最后将目标直播数据发送至播放终端,播放终端接收到目标直播数据后并进行播放。通过处理服务器对缓存的当前待发送的直播数据根据预设条件进行筛选得到目标直播数据,只需将符合条件的目标直播数据发送至播放终端播放,能够有效地减少直播观众端的直播延迟。

附图说明

图1为一个实施例中直播数据处理方法的应用环境图;

图2为一个实施例中直播数据处理方法的流程示意图;

图3为一个实施例中直播数据的结构示意图;

图4为一个实施例中筛选目标直播数据步骤的流程示意图;

图5为另一个实施例中筛选目标直播数据步骤的流程示意图;

图6为一个实施例中直播数据处理方法的时序图;

图7为一个实施例中直播数据处理系统的结构框图;

图8为另一个实施例中直播数据处理系统的结构框图;

图9为又一个实施例中直播数据处理系统的结构框图;

图10为一个实施例中直播数据处理装置的结构框图;

图11为另一个实施例中直播数据处理装置的结构框图;

图12为一个实施例中目标直播数据筛选模块的结构框图;

图13为另一个实施例中目标直播数据筛选模块的结构框图;

图14为一个实施例中计算机设备的结构框图。

具体实施方式

为了使本申请的技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1为一个实施例中直播数据处理方法的应用环境图。参照图1,该直播数据处理方法应用于直播数据处理系统。该直播数据处理系统包括直播终端110、接流服务器120、拉流服务器130、处理服务器140和播放终端150,其中播放终端150是正在观看直播或者准备观看直播的终端,接流服务器120、拉流服务器130和处理服务器140可以集成在一个或多个服务器中,也可以分别单独为一个服务器。终端和服务器之间通过网络连接。终端具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种,进一步地,直播终端110和播放终端150中都安装有直播相关的客户端。其中,正在进行直播播放的播放终端150的直播数据是从对应的处理服务器140中拉取得到的,而处理服务器140中的直播数据是从拉流服务器130发送过来的。其中,拉流服务器130中的直播数据可以是从接流服务器120经过筛选处理后的直播数据中拉取得到的,而接流服务器120中的直播数据可是从直播终端110中经过筛选处理后的直播数据中拉取得到的。

具体地,播放终端向处理服务器发送直播数据获取请求,处理服务器根据直播数据获取请求获取当前待发送的直播数据,其中当前待发送的直播数据以帧为单位,再根据直播数据获取请求对当前待发送的直播数据进行筛选得到对应的目标直播数据,其中目标直播数据的起始数据帧包括视频关键帧,将目标直播数据发送至播放终端,播放终端在接收到目标直播数据后在相关的客户端中播放目标直播数据。应当说明的是,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

如图2所示,在一个实施例中,提供了一种直播数据处理方法。本实施例主要以该方法应用于上述图1中的处理服务器140来举例说明。参照图2,该直播数据处理方法具体包括如下步骤:

步骤202,接收播放终端发送的直播数据获取请求,根据直播数据获取请求获取当前待发送的直播数据,当前待发送的直播数据以帧为单位。

其中,直播数据是直播过程中与直播相关的数据,包括但不限于直播过程中产生的直播视频数据和对应的直播音频数据组成的直播数据块、直播视频帧或者直播音频帧本身等等,而且直播数据结构中携带了时间戳、直播数据大小、直播数据类型等等。其中,该直播数据是以帧为单位,帧是视频中的画面,一帧即一个画面,一帧包括直播视频帧及其对应的直播音频数据。在一个实施例中,播放终端首次观看直播,需从处理服务器中获取直播过程中与直播相关的数据,因此需向处理服务器发送直播数据获取请求,通常,播放终端可通过相关客户端中的直播界面触发直播数据获取请求,并将该直播数据获取请求发送至处理服务器。

在另一个实施例中,播放终端在进行观看直播时,由于网络出现短暂的异常导致播放终端与处理服务器断开连接,因此播放终端的直播无法继续。此时,播放终端也可以通过相关客户端中的直播界面获取触发的直播数据获取请求,并将该直播数据获取请求发送至处理服务器。

处理服务器在接收到播放终端发送的直播数据获取请求后,会根据该直播数据获取请求去缓存的存储模块中获取当前待发送的直播数据,这里的当前待发送的直播数据是指在接收到播放终端发送的直播数据获取请求之前缓存在存储模块中的所有等待发送的直播数据。其中,获取到的当前待发送的直播数据是以帧为单位。

步骤204,根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧。

其中,根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据的具体筛选规则可以为自定义,这里的筛选规则是用于从当前待发送的直播数据中筛选得到目标直播数据的,包括但不限于可预先将筛选规则设置为回退时间间隔,或者预先将筛选规则设置为回退直播数据帧数目等等。具体地,首先需获取直播数据获取请求对应的时间点,将该直播数据获取请求对应的时间点作为筛选起始时间点,再对筛选起始时间点时间之前的当前待发送的直播数据进行筛选,得到符合筛选规则的目标直播数据。其中该目标直播数据的起始数据帧包括视频关键帧,视频关键帧也叫I帧,是帧间压缩编码的关键帧。

具体地,假设筛选规则设置为回退时间间隔为1秒,则将接收到播放终端发送直播数据获取请求所在的时间点作为筛选起始时间点,由于直播数据中的直播视频帧携带了时间戳,因此,从筛选起始时间点向前回退1秒得到包括视频关键帧的起始数据帧,再根据该起始数据帧进而得到目标直播数据。如筛选起始时间点对应的直播数据中的直播视频帧为4秒,则以筛选起始时间点的直播数据为参考点,向前回退1秒得到时间戳为3秒的起始数据帧,再对起始数据帧中是否包括视频关键帧进行检测,若该起始数据帧包括视频关键帧,则获取起始数据帧对应的起始直播数据,并将起始直播数据之后的直播数据作为目标直播数据,其中起始数据帧包括起始直播视频帧以及对应的起始直播音频帧。

反之,若该起始数据帧中的起始直播视频帧未包括视频关键帧,则以该起始直播视频帧为参考点,继续向前筛选找到最近的一个初始直播视频帧,再获取包括初始直播视频帧以及对应的起始直播音频帧的初始直播数据,并将初始直播数据之后的直播数据作为目标直播数据。

步骤206,将目标直播数据发送至播放终端,以使得播放终端播放目标直播数据。

具体地,为了播放终端能够进行直播或者播放终端之前直播发生卡顿能够继续进行直播,因此处理服务器需将筛选得到的目标直播数据发送至播放终端。播放终端在接收到目标直播数据后,可对接收到的目标直播数据进行检测,例如可以是但不限通过检测播放终端接收到的目标直播数据中直播视频帧的数量是否到达预设直播视频帧阈值,若目标直播数据中的直播视频帧数量达到预设直播视频帧阈值时,则可在播放终端中相关的客户端的相关直播界面对目标直播数据进行播放。如,假设预设直播视频帧阈值为10个直播视频帧,若播放终端接收的目标直播数据中达到10个直播视频帧后,播放终端则对目标直播数据进行播放。

上述直播数据处理方法,处理服务器接收播放终端发送的直播数据获取请求,根据该直播数据获取请求获取缓存的当前待发送的直播数据,其中当前待发送的直播数据以帧为单位,处理服务器再根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧,最后将目标直播数据发送至播放终端,播放终端接收到目标直播数据后并进行播放。通过处理服务器对缓存的当前待发送的直播数据根据预设条件进行筛选得到目标直播数据,只需将符合条件的目标直播数据发送至播放终端播放,能够有效地减少直播观众端的直播延迟。

在一个实施例中,接收播放终端发送的直播数据获取请求之前,还包括:接收直播服务器发送的第一直播数据,第一直播数据是根据直播服务器发送第一直播数据的时间,对缓存的直播数据进行筛选得到的,第一直播数据的起始数据帧包括视频关键帧。

其中,在接收到播放终端发送的直播数据获取请求之前,缓存在处理服务器中的当前待发送直播数据是由直播服务器发送过来的,为了减少处理服务器中的延迟量,直播服务器需对发送至处理服务器的第一直播数据进行筛选丢弃处理。在另一个实施例中,直播服务器可包括图1中的接流服务器120和拉流服务器130。

具体地,直播服务器首先获取发送缓存的直播数据至处理服务器的发送时间,将该发送时间作为直播点,再根据该直播点时间之前缓存在直播服务器中的直播数据进行筛选得到包括视频关键帧的起始数据帧,直播服务器最后将起始数据帧对应的直播数据以及起始数据帧之后的所有直播数据作为第一直播数据。

进一步地,直播服务器再将第一直播数据发送至处理服务器。其中,对发送时间对应的直播点时间之前缓存的直播数据进行筛选得到的第一直播数据的具体筛选原则可以自定义,自定义具体可根据直播数据中的直播视频帧对应的时间戳向前回退预设时间间隔或者根据直播数据中的直播视频帧向前筛选预设数量个直播视频帧,直至筛选得到直播起始视频帧为视频关键帧。

在一个实施例中,当筛选规则为向前回退预设时间间隔时,直播服务器将发送缓存直播数据至处理服务器的发送时间作为直播点,直播服务器从缓存的直播数据中,以该直播点为参考点,向前回退预设时间间隔得到起始数据帧,若该起始数据帧包括视频关键帧,则将起始数据帧对应的直播数据以及起始数据帧之后的所有直播数据作为第一直播数据。

如,直播服务器将发送缓存的直播数据至处理服务器的发送时间点为5秒,向前筛选的原则为根据直播数据中的直播视频帧对应的时间戳向前回退预设时间间隔为1秒,则直播服务器根据该时间点从缓存的直播数据中向前回退1秒,得到时间戳为4秒对应的起始数据帧,若该起始数据帧包括视频关键帧,则将起始数据帧对应的直播数据,以及起始数据帧之后的所有直播数据作为第一直播数据。若该起始数据帧未包括视频关键帧,再以该起始数据帧为起始点,继续向前筛选得到离该起始数据帧最近的视频关键帧,再将该视频关键帧对应的直播数据和此直播数据之后的直播数据作为第一直播数据。

在另一个实施例中,当筛选规则为向前回退预设数目的直播视频帧时,直播服务器将发送缓存直播数据至处理服务器的发送时间作为直播点,直播服务器再从缓存的直播数据中,以直播点为起始点,向前筛选预设数量个直播视频帧得到起始直播视频帧,若该起始视频帧包括视频关键帧,则将起始视频帧对应的直播数据以及起始视频帧之后的直播数据作为第一直播数据。

如,直播服务器将发送缓存的直播数据至处理服务器的发送时间点为5秒,向前筛选的原则为根据直播数据中的直播视频帧向前筛选5个直播视频帧,再以5秒对应的直播数据中的直播视频帧为起始点,从缓存的直播数据中的直播视频帧中向前筛选5个直播视频帧,得到起始数据帧,若该起始数据帧包括视频关键帧,则将起始数据帧对应的直播数据,以及起始数据帧之后的所有直播数据作为第一直播数据。若该起始数据帧未包括视频关键帧,再以该起始数据帧为起始点,继续向前筛选得到离该起始数据帧最近的视频关键帧,再将该视频关键帧对应的直播数据和此直播数据之后的直播数据作为第一直播数据。

在一个实施例中,缓存的直播数据是由直播终端发送的与目标视频图像组对应的第二直播数据组成,目标视频图像组是根据直播终端发送缓存的直播数据的时间,从直播终端缓存的直播数据中筛选视频关键帧得到的。

其中,视频图像组是两个直播视频关键帧之间的直播视频帧,也可以说是两个I帧之间直播视频帧为一个视频图像组,视频图像组也可称为GOP。具体地,直播终端首先获取发送缓存直播数据至直播服务器的发送时间对应的直播点,直播终端再根据该直播点对缓存的直播数据进行筛选视频关键帧从而得到目标视频图像组。最后,直播终端将与目标视频图像组对应的第二直播数据发送至直播服务器。其中,直播终端筛选视频关键帧进而得到目标视频图像组的原则具体可以是但不限于,先将离直播点最近的直播视频关键帧之前的所有直播数据进行丢弃,再将直播点最近的直播视频关键帧之后的直播数据对应的视频图像组作为目标视频图像组等等。

在一个实施例中,直播终端筛选视频关键帧得到目标视频图像组的原则为,先将离直播点最近的直播视频关键帧之前的所有直播数据进行丢弃,再将直播点最近的直播视频关键帧之后的直播数据对应的视频图像组作为目标视频图像组。如,假设直播终端缓存的直播数据为I1帧、B帧、P1帧、P2帧、I2帧、P3帧,则根据直播终端发送时间对应的直播点为最后一个P3帧所在的直播点,因此将直播终端缓存的直播数据中离直播点最近的I2帧之前的所有直播数据丢弃,将剩余的I2帧和P3帧作为目标视频图像组。

在一个实施例中,当前待发送的直播数据包括以帧为单位形成的多个直播数据块,直播数据块包括视频帧数据和视频帧数据对应的音频帧数据。

本实施例中,处理服务器在接收到播放终端发送的直播数据获取请求之前,缓存在处理服务器中的当前待发送的直播数据包括以帧为单位形成的多个直播数据块chunk,其中各个直播数据块chunk包括视频帧数据和视频帧数据对应的音频帧数据,即每一个视频帧数据和其对应的音频帧数据组成一个直播数据块chunk。

具体地,如图3所示,图3示出一个实施例中直播数据的结构示意图。chunk1、chunk2、chunk3……chunkn为各个直播数据块,各个直播数据块是由直播数块头chunk header、音视频包tag1、音视频包tag2……音视频包tagn组成的,音视频包tag是由音视频包类型tag type、音视频包数据大小data size、音频包时间戳time stamp等等组成。其中,具体可通过音视频包类型tag type得知该音视频包tag为视频包还是音频包,例如tag1中的tag type字符为8bit的为音频包,tag2中的tag type字符为9bit的为视频包。

应当说明的是,处理服务器将从当前待发送的直播数据中筛选得到的目标直播数据也是以帧为单位形成的多个直播数据块,直播数据块包括视频帧数据和视频帧数据对应的音频帧数据,但是在将目标直播数据发送至播放终端之前,需将目标直播数据中的直播数据块头chunk header去除,将去除直播数据块头chunk header的目标直播数据发送至播放终端,以供播放终端播放该目标直播数据。

在一个实施例中,如图4所示,根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,包括:

步骤402,获取预设回退时间间隔,根据直播数据获取请求回退预设回退时间间隔得到初始直播起始点。

具体地,为了减小直播主播端到直播观众端直播延迟量,处理服务器需获取预先设置的回退时间间隔,在获取到预先设置的回退时间间隔后,将接收到的播放终端发送的直播数据获取请求所在时间点作为筛选起始时间点,根据该筛选起始时间点向前回退预设回退时间间隔得到初始直播起始点。如,假设获取到的预设回退时间间隔为1秒,则将处理服务器在接收到播放终端发送的直播数据获取请求所在的时间点作为筛选起始时间点,假设处理服务器在接收到播放终端发送的直播数据获取请求所在的时间点为5秒,则根据筛选起始时间点向前回退预设回退时间间隔1秒得到初始直播起始点为4秒。

步骤404,当初始直播起始点对应的初始直播数据帧包括视频关键帧,则将初始直播数据帧和初始直播数据帧之后的直播数据帧组成目标直播数据。

步骤406,当初始直播起始点对应的初始直播数据帧未包括视频关键帧,则从初始直播起始点时间之前的直播数据帧中查找最接近的包括视频关键帧的目标直播数据帧,将目标直播数据帧和目标直播数据帧之后的直播数据帧组成目标直播数据。

具体地,在根据处理服务器在接收到播放终端发送的直播数据获取请求所在的时间点向前回退预设回退时间间隔得到初始直播起始点后,为了保证播放终端的直播画面的高质量,因此需检测初始直播起始点对应的初始直播数据帧是否包括视频关键帧,若初始直播起始点对应的初始直播数据帧包括视频关键帧,则将初始直播数据帧和初始直播数据帧之后的直播数据帧组成目标直播数据。反之,若初始直播起始点对应的初始直播数据帧未包括视频关键帧,则从初始直播起始点时间之前的直播数据帧中继续查找最接近的包括视频关键帧的目标直播数据帧,再将目标直播数据帧和目标直播数据帧之后的直播数据帧组成目标直播数据。

例如,假设获取到的预设回退时间间隔为1秒,则将处理服务器在接收到播放终端发送的直播数据获取请求所在的时间点作为筛选起始时间点,若处理服务器在接收到播放终端发送的直播数据获取请求所在的时间点为5秒,则根据筛选起始时间点向前回退预设回退时间间隔1秒得到初始直播起始点为4秒。然后检测初始直播起始点为4秒对应的初始直播数据帧是否包括视频关键帧,若初始直播起始点为4秒对应的初始直播数据帧包括视频关键帧,则将初始直播起始点为4秒对应的直播数据帧以及初始直播起始点为4秒之后的直播数据帧组成目标直播数据帧。

若初始直播起始点为4秒对应的初始直播数据帧未包括视频关键帧,则从4秒向前继续查找最接近的包括视频关键帧的目标直播数据帧,即在直播点为3.8秒时查找到包括视频关键帧的目标直播数据帧,则将直播点为3.8秒对应的目标直播数据帧以及直播点为3.8秒之后的直播数据帧组成目标直播数据。

在一个实施例中,如图5所示,根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,包括:

步骤502,获取当前待发送的直播数据对应的第一起始直播数据帧对应的第一起始时间戳。

步骤504,获取目标直播数据对应的第二起始直播数据帧对应的第二起始时间戳。

步骤506,将第二起始时间戳修改为第一起始时间戳,将根据第一起始时间戳依次修改目标直播数据对应的第二起始直播数据帧之后的各个直播数据帧的时间戳。

具体地,如图3所示,直播数据是以帧为单位形成的多个直播数据块,各个直播数据块中包括视频帧数据和视频帧数据对应的音频帧数据,而各个直播数据块是由直播数据块头、各个音视频包组成,而各个音视频包中携带对应的时间戳。首先获取处理服务器中缓存的当前待发送的直播数据中的第一起始直播数据帧对应的第一起始时间戳,再获取目标直播数据对应的第二起始直播数据帧对应的第二起始时间戳。为了当播放终端的直播发生了网络异常等时,直播能够延迟时间小,因此将获取到的第二起始时间戳修改为第一起始时间戳,再根据第一起始时间戳依次修改目标直播数据对应的第二起始直播数据帧之后的各个直播数据帧的时间戳。

如,假设获取到当前待发送的直播数据对应的第一起始直播数据帧对应的第一起始时间戳为8秒,目标直播数据对应的第二起始直播数据帧对应的第二起始时间戳为6秒,因此需将第二起始时间戳修改为第一起始时间戳8秒,再以第一起始时间戳为8秒为起点,依次修改目标直播数据对应的第二起始直播数据帧之后的各个直播数据帧的时间戳。如原来第二起始直播数据帧之后的直播数据帧A的时间戳为6.02秒,则将直播数据帧A的时间戳修改为8.02秒,以此类似修改。

如图6所示为一个实施例中,直播数据处理方法的时序图,包括直播终端、直播服务器、处理服务器和播放终端,其中直播服务器包括接流服务器和拉流服务器。具体地,直播终端根据直播终端发送时间对应的直播点从自身缓存的直播数据中向前筛选视频关键帧得到目标视频图像组,再将目标视频图像组对应的第二直播数据组成的直播数据发送至接流服务器。接流服务器接收到目标视频图像组对应的第二直播数据组成的直播数据并缓存,接流服务器再根据拉流服务器对自身缓存直播数据进行筛选得到第一直播数据,该第一直播数据的起始数据帧包括视频关键帧。最后,拉流服务器将从接流服务器中缓存的直播数据中筛选得到的第一直播数据拉取过来,并进行缓存。最后,再将第一直播数据分发至处理服务器。处理服务器在未接收到播放终端发送的直播数据获取请求之前,会将拉流服务器发送的第一直播数据缓存至处理服务器中,即当前待发送的直播数据。

进一步地,处理服务器接收到播放终端发送的直播数据获取请求后,根据直播数据获取请求获取处理服务器中缓存的当前待发送的直播数据,其中当前待发送的直播数据以帧为单位。处理服务器将接收到播放终端发送的直播数据获取请求所在的时间点作为筛选起始时间点,再根据筛选规则从筛选起始时间点时间之前的当前待发送的直播数据中进行筛选得到目标直播数据。其中,筛选规则可以是但不限于预先设置回退时间间隔或者预先设置回退直播数据帧数等等。最后,处理服务器将筛选得到目标直播数据发送至播放终端,播放终端接收到处理服务器发送的目标直播数据后,对目标直播数据进行解码播放供观众进行直播观看。

在一个实施例中,处理服务器可以和直播服务器合为一个服务器,即处理服务器具有直播服务器的功能。具体地,直播终端根据直播终端发送时间对应的直播点从自身缓存的直播数据中向前筛选视频关键帧得到目标视频图像组,再将目标视频图像组对应的第二直播数据组成的直播数据发送至处理服务器,处理服务器在未接收到播放终端发送的直播数据获取请求之前,会将接收到直播数据进行缓存。

进一步地,处理服务器接收到播放终端发送的直播数据获取请求后,根据直播数据获取请求获取处理服务器中缓存的当前待发送的直播数据,其中当前待发送的直播数据以帧为单位。处理服务器根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据。最后,处理服务器将筛选得到目标直播数据发送至播放终端,播放终端接收到处理服务器发送的目标直播数据后,对目标直播数据进行解码播放供观众进行直播观看。

在一个具体的实施例中,提出了一种直播数据处理方法,具体包括以下内容:

步骤702,直播终端根据发送时间对自身缓存的直播数据进行筛选关键视频帧得到目标视频图像组,再将与目标视频图像组对应的第二直播数据发送至直播服务器。

步骤704,直播服务器接收到直播终端发送的与目标视频图像组对应的第二直播数据并缓存,直播服务器再根据发送时间对直播服务器缓存的直播数据进行筛选得到第一直播数据,其中第一直播数据的起始数据帧包括视频关键帧。

步骤706,直播服务器将第一直播数据发送至处理服务器,处理服务器在未接收到播放终端发送的直播数据获取请求之前将所有第一直播数据缓存至处理服务器中。

步骤708,处理服务器接收到播放终端发送的直播数据获取请求,根据直播数据获取请求获取处理服务器中缓存的所有当前待发送的直播数据,其中,当前待发送的直播数据以帧为单位。

步骤710,处理服务器获取预设回退时间间隔,处理服务器根据直播数据获取请求回退预设回退时间间隔得到初始直播起点。

步骤712,处理服务器对初始直播起点对应的初始直播数据帧进行检测,若初始直播数据帧包括视频关键帧时,则将初始直播数据帧和初始直播数据帧之后的直播数据帧组成目标直播数据,反之,若初始直播数据帧未包括视频关键帧,则从初始直播起始点时间之前的直播数据帧中查找最接近的包括视频关键帧的目标直播数据帧,将目标直播数据帧和目标直播数据帧之后的直播数据帧组成目标直播数据帧。

步骤714,处理服务器获取缓存的当前待发送的直播数据对应的第一起始直播数据帧对应的第一起始时间戳。

步骤716,处理服务器获取目标直播数据帧对应的第二起始直播数据帧对应的第二起始时间戳。

步骤718,处理服务器将第二起始时间戳修改为第一起始时间戳,将根据第一起始时间戳依次修改目标直播数据对应的第二起始直播数据帧之后的各个直播数据帧的时间戳。

步骤720,处理服务器将目标直播数据发送至播放终端,播放终端接收到目标直播数据后,对目标直播数据进行解码播放。

应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

如图7所示,在一个实施例中,提供了一种直播数据处理系统,该系统包括:

播放终端802,用于向处理服务器发送直播数据获取请求。

在一个实施例中,播放终端首次观看直播,需从处理服务器中获取直播过程中与直播相关的数据,因此需向处理服务器发送直播数据获取请求,通常,播放终端可通过相关直播界面可触发直播数据获取请求,并将该直播数据获取请求发送至处理服务器。

在另一个实施例中,播放终端在进行观看直播时,由于网络出现短暂的异常导致播放终端与处理服务器断开连接,因此播放终端的直播无法继续。此时,播放终端也可以通过该直播所在的直播界面触发下载请求,并将该直播数据获取请求发送至处理服务器。

处理服务器804,用于根据直播数据获取请求获取当前待发送的直播数据,其中当前待发送的直播数据以帧为单位,再根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,其中目标直播数据的起始数据帧包括视频关键帧,将目标直播数据发送至播放终端。

处理服务器在接收到播放终端发送的直播数据获取请求后,会根据该直播数据获取请求去缓存的存储模块中获取当前待发送的直播数据,这里的当前待发送的直播数据是指在接收到播放终端发送的直播数据获取请求之前缓存在存储模块中的所有等待发送的直播数据。其中,获取到的当前待发送的直播数据是以帧为单位。进一步地,处理服务器先将接收到播放终端发送的直播数据获取请求的时间点作为筛选起始时间点,再对筛选起始时间点时间之前的当前待发送的直播数据进行筛选从而得到目标直播数据,其中具体筛选是以筛选起始时间点为参考点,在筛选起始时间点之前缓存在处理服务器中的所有直播数据进行筛选,从而得到符合筛选规则的目标直播数据。其中该目标直播数据的起始数据帧必须包括视频关键帧,视频关键帧也叫I帧,是帧间压缩编码的关键帧。处理服务器最后将目标直播数据发送至播放终端。

播放终端802还用于播放处理服务器发送的目标直播数据。

具体地,播放终端在接收到目标直播数据后,可对接收到的目标直播数据进行检测,例如可以是但不限通过检测播放终端接收到的目标直播数据中直播视频帧的数量是否到达预设直播视频帧阈值,若目标直播数据中的直播视频帧数量达到预设直播视频帧阈值时,则可在播放终端上的相关直播界面对目标直播数据进行播放。

如图8所示,在一个实施例中,该系统还包括直播服务器806,直播服务器806用于根据向处理服务器的发送时间对缓存的直播数据进行筛选得到第一直播数据,再将第一直播数据发送至处理服务器,其中第一直播数据的起始数据帧包括视频关键帧。

具体地,在接收到播放终端发送的直播数据获取请求之前,缓存在处理服务器中的当前待发送直播数据是由直播服务器发送过来的,为了减少处理服务器中的延迟量,直播服务器需对发送至处理服务器的第一直播数据进行筛选丢弃处理。具体地,直播服务器首先获取发送缓存的直播数据至处理服务器的发送时间,将该发送时间作为直播点,再根据直播点对缓存的直播数据进行筛选得到包括视频关键帧的起始数据帧,直播服务器最后将起始数据帧对应的直播数据以及起始数据帧之后的所有直播数据作为第一直播数据。进一步地,直播服务器将第一直播数据发送至处理服务器。其中筛选的原则具体可根据直播数据中的直播视频帧对应的时间戳向前回退预设时间间隔或者根据直播数据中的直播视频帧向前筛选预设数量个直播视频帧,直至筛选得到第一直播数据的起始数据帧为视频关键帧等等。

如图9所示,在一个实施例中,该系统还包括直播终端808,其中:

直播终端808,用于根据向直播服务器发送时间对缓存的直播数据进行筛选视频关键帧得到目标视频图像组,再将与目标视频图像组对应的第二直播数据组成的直播数据发送至直播服务器。

直播服务器806还用于接收直播终端发送的目标视频图像组对应的第二直播数据组成的直播数据并缓存。

具体地,直播终端首先获取发送缓存直播数据至直播服务器的发送时间对应的直播点,直播终端再根据该直播点对缓存的直播数据进行筛选视频关键帧得到目标视频图像组。最后,直播终端将目标视频图像组对应的第二直播数据发送至直播服务器。其中,直播终端进行筛选视频关键帧得到目标视频图像组原则具体可以是但不限于,以其中两个直播视频关键帧之间的直播视频帧为单位进行丢弃,将剩余的视频图像组作为目标视频图像组。或者将离直播点最近的直播视频关键帧之前的所有直播数据进行丢弃,再将直播点最近的直播视频关键帧之后的直播数据对应的视频图像组作为目标视频图像组等等。进一步地,直播服务器接收到直播终端发送的目标视频图像组对应的第二直播数据组成的直播数据后,将该直播数据缓存在直播服务器中。

在一个实施例中,直播终端808还用于形成以帧为单位包括视频帧数据和视频帧数据对应的音频数据的多个直播数据块,再将多个直播数据块发送至直播服务器。

在一个实施例中,处理服务器804还用于获取预设回退时间间隔,根据直播数据获取请求回退预设回退时间间隔得到初始直播起始点;处理服务器804还用于当初始直播起始点对应的初始直播数据帧包括视频关键帧,则将初始直播数据帧和初始直播数据帧之后的直播数据帧组成目标直播数据;处理服务器804还用于当初始直播起始点对应的初始直播数据帧未包括视频关键帧,则从初始直播起始点时间之前的直播数据帧中查找最接近的包括视频关键帧的目标直播数据帧,将目标直播数据帧和目标直播数据帧之后的直播数据帧组成目标直播数据。

在一个实施例中,处理服务器804还用于获取当前待发送的直播数据对应的第一起始直播数据帧对应的第一起始时间戳;处理服务器804还用于获取目标直播数据对应的第二起始直播数据帧对应的第二起始时间戳;处理服务器804还用于将第二起始时间戳修改为第一起始时间戳,将根据第一起始时间戳依次修改目标直播数据对应的第二起始直播数据帧之后的各个直播数据帧的时间戳。

如图10所示,在一个实施例中,提供了一种直播数据处理装置1000,该装置包括:

直播数据获取请求接收模块1002,用于接收播放终端发送的直播数据获取请求,根据直播数据获取请求获取当前待发送的直播数据,当前待发送的直播数据以帧为单位。

目标直播数据筛选模块1004,用于根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧。

目标直播数据发送模块1006,用于将目标直播数据发送至播放终端,以使得播放终端播放目标直播数据。

如图11所示,在一个实施例中,该直播数据处理装置1000还包括:

第一直播数据接收模块1008,用于接收直播服务器发送的第一直播数据,第一直播数据是根据直播服务器发送时间对缓存的直播数据进行筛选得到的,第一直播数据的起始数据帧包括视频关键帧。

在一个实施例中,直播服务器中缓存的直播数据是由直播终端发送的与目标视频图像组对应的第二直播数据组成,目标视频图像组是根据直播终端发送时间从直播终端缓存的直播数据中筛选视频关键帧得到的。

在一个实施例中,当前待发送的直播数据包括以帧为单位形成的多个直播数据块,直播数据块包括视频帧数据和视频帧数据对应的音频帧数据。

如图12所示,在一个实施例中,目标直播数据筛选模块1004包括:

预设回退时间间隔获取单元1004a,用于根据直播数据获取请求回退预设回退时间间隔得到初始直播起始点。

目标直播数据生成单元1004b,用于当初始直播起始点对应的初始直播数据帧包括视频关键帧,则将初始直播数据帧和初始直播数据帧之后的直播数据帧组成目标直播数据。

目标直播数据生成单元1004b还用于当初始直播起始点对应的初始直播数据帧未包括视频关键帧,则从初始直播起始点时间之前的直播数据帧中查找最接近的包括视频关键帧的目标直播数据帧,将目标直播数据帧和目标直播数据帧之后的直播数据帧组成目标直播数据。

如图13所示,在一个实施例中,目标直播数据筛选模块1004还包括:

第一起始时间戳获取单元1302,用于获取当前待发送的直播数据对应的第一起始直播数据帧对应的第一起始时间戳。

第二起始时间戳获取单元1304,用于获取目标直播数据对应的第二起始直播数据帧对应的第二起始时间戳。

时间戳修改单元1306,用于将第二起始时间戳修改为第一起始时间戳,将根据第一起始时间戳依次修改目标直播数据对应的第二起始直播数据帧之后的各个直播数据帧的时间戳。

图14示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的处理服务器140。如图14所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现直播数据处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行直播数据处理方法。计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的直播数据处理装置可以实现为一种计算机程序的形式,计算机程序可在如图14所示的计算机设备上运行。计算机设备的存储器中可存储组成该直播数据处理装置的各个程序模块,比如,图10所示的直播数据获取请求接收模块、目标直播数据筛选模块和目标直播数据发送模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的直播数据处理方法中的步骤。

例如,图14所示的计算机设备可以通过如图10所示的直播数据处理装置中的直播数据获取请求接收模块执行接收播放终端发送的直播数据获取请求,根据直播数据获取请求获取当前待发送的直播数据,当前待发送的直播数据以帧为单位。计算机设备可通过目标直播数据筛选模块执行根据直播数据获取请求对所述当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧。计算机设备可通过目标直播数据发送模块执行将目标直播数据发送至播放终端,以使得播放终端播放目标直播数据。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:接收播放终端发送的直播数据获取请求,根据直播数据获取请求获取当前待发送的直播数据,当前待发送的直播数据以帧为单位;根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧;将目标直播数据发送至播放终端,以使得播放终端播放目标直播数据。

在一个实施例中,接收播放终端发送的直播数据获取请求之前,还包括:接收直播服务器发送的第一直播数据,第一直播数据是根据发送时间对缓存的直播数据进行筛选得到的第一直播数据,第一直播数据的起始数据帧包括视频关键帧。

在一个实施例中,缓存的直播数据是由直播终端发送的与目标视频图像组对应的第二直播数据组成,目标视频图像组是根据直播终端发送时间从直播终端缓存的直播数据中筛选视频关键帧得到的。

在一个实施例中,当前待发送的直播数据包括以帧为单位形成的多个直播数据块,直播数据块包括视频帧数据和视频帧数据对应的音频帧数据。

在一个实施例中,根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,包括:获取预设回退时间间隔,根据直播数据获取请求回退预设回退时间间隔得到初始直播起始点;当初始直播起始点对应的初始直播数据帧包括视频关键帧,则将初始直播数据帧和初始直播数据帧之后的直播数据帧组成目标直播数据;当初始直播起始点对应的初始直播数据帧未包括视频关键帧,则从初始直播起始点时间之前的直播数据帧中查找最接近的包括视频关键帧的目标直播数据帧,将目标直播数据帧和目标直播数据帧之后的直播数据帧组成目标直播数据。

在一个实施例中,根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,包括:获取当前待发送的直播数据对应的第一起始直播数据帧对应的第一起始时间戳;获取目标直播数据对应的第二起始直播数据帧对应的第二起始时间戳;将第二起始时间戳修改为第一起始时间戳,将根据第一起始时间戳依次修改目标直播数据对应的第二起始直播数据帧之后的各个直播数据帧的时间戳。

在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:接收播放终端发送的直播数据获取请求,根据直播数据获取请求获取当前待发送的直播数据,当前待发送的直播数据以帧为单位;根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,目标直播数据的起始数据帧包括视频关键帧;将目标直播数据发送至播放终端,以使得播放终端播放目标直播数据。

在一个实施例中,接收播放终端发送的直播数据获取请求之前,还包括:接收直播服务器发送的第一直播数据,第一直播数据是根据直播服务器发送时间对缓存的直播数据进行筛选得到的,第一直播数据的起始数据帧包括视频关键帧。

在一个实施例中,缓存的直播数据是由直播终端发送的与目标视频图像组对应的第二直播数据组成,目标视频图像组是根据直播终端发送时间从直播终端缓存的直播数据中筛选视频关键帧得到的。

在一个实施例中,当前待发送的直播数据包括以帧为单位形成的多个直播数据块,直播数据块包括视频帧数据和视频帧数据对应的音频帧数据。

在一个实施例中,根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,包括:获取预设回退时间间隔,根据直播数据获取请求在当前待发送的直播数据中回退预设回退时间间隔得到初始直播起始点;当初始直播起始点对应的初始直播数据帧包括视频关键帧,则将初始直播数据帧和初始直播数据帧之后的直播数据帧组成目标直播数据;当初始直播起始点对应的初始直播数据帧未包括视频关键帧,则从初始直播起始点时间之前的直播数据帧中查找最接近的包括视频关键帧的目标直播数据帧,将目标直播数据帧和目标直播数据帧之后的直播数据帧组成目标直播数据。

在一个实施例中,根据直播数据获取请求对当前待发送的直播数据进行筛选得到目标直播数据,包括:获取当前待发送的直播数据对应的第一起始直播数据帧对应的第一起始时间戳;获取目标直播数据对应的第二起始直播数据帧对应的第二起始时间戳;将第二起始时间戳修改为第一起始时间戳,将根据第一起始时间戳依次修改目标直播数据对应的第二起始直播数据帧之后的各个直播数据帧的时间戳。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1