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

文档序号:14881523发布日期:2018-07-07 09:49阅读:203来源:国知局

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



背景技术:

随着计算机技术的发展,网络直播由于综合了图像、声音和文字的优点,特别是向用户提供即时与互动的交流和沟通方式而受到用户的青睐,近年来出现了一种新直播互动形式,如直播答题等,各大网络直播平台分别上线了各自的产品,但是如直播答题这种新直播互动形式的网络直播需要很好地保证各个直播播放终端的一致性。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够减小直播播放端之间播放时间误差,从而提高直播播放终端之间的一致性的直播数据处理方法、装置、计算机可读存储介质和计算机设备。

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

接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据;

根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片;

接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合;

将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片。

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

处理服务器,用于接收直播流数据,根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片数据;

播放终端,用于发送下载请求至处理服务器;

处理服务器还用于接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合,再将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端;

播放终端还用于检测接收到处理服务器发送的直播分片是否满足预设播放条件,若满足预设播放条件时,则开始播放接收到的直播分片。

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

直播流数据接收模块,用于接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据;

直播流数据切片模块,用于根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片;

下载请求接收模块,用于接收播放终端发送的下载请求;

目标直播分片筛选模块,用于根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合;

直播分片发送模块,用于将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片。

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

接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据;

根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片;

接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合;

将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片。

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

接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据;

根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片;

接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合;

将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片。

上述直播数据处理方法、装置、计算机可读存储介质和计算机设备,处理服务器通过将直播音视频数据和对应的信息数据封装成直播流数据,再对直播流数据根据预设切片条件进行切片,得到多个直播分片,因为可通过预设切片条件对直播分片的播放时长进行控制,因此可减少直播分片的播放时长。进一步地,当播放终端发送下载请求至处理服务器时,处理服务器根据下载请求对缓存的多个直播分片进行筛选得到目标直播分片集合,如返回离接收到下载请求所在的时间点最近的预设数量个直播分片。最后将目标直播分片集合中的数据以各个直播分片单位发送至播放终端,播放终端依次接收直播分片,当接收到的直播分片满足预设播放条件时即可对接收到的直播分片进行播放。处理服务器不仅可对直播分片的播放时长进行控制,且播放终端也可对接收到的直播分片播放进行控制,进而减小直播播放端之间播放时间误差,并且提高直播播放终端之间的一致性。

附图说明

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

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

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

图4为一个实施例中直播流数据切片步骤的流程示意图;

图5为一个实施例中目标直播分片集合生成步骤的流程示意图;

图6为一个实施例中播放终端播放直播分片步骤的流程示意图;

图7为一个实施例中播放终端播放接收到的直播分片的示意图;

图8a为一个实施例中直播数据处理方法的应用场景图;

图8b为另一个实施例中直播数据处理方法的应用场景图;

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

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

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

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

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

图13为一个实施例中直播流数据切片模块的结构框图;

图14为一个实施例中目标直播分片筛选模块的结构框图;

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

具体实施方式

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

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

具体地,处理服务器接收直播流数据,其中直播流数据包括直播音视频数据和对应的信息数据,处理服务器再根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片并缓存。此时播放终端发送下载请求至处理服务器,处理服务器根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合,最后将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,播放终端需检测接收到直播分片是否满足预设播放条件,若满足预设播放条件才播放接收到的直播分片。应当说明的是,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

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

步骤202,接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据。

其中,直播流数据是直播过程中与直播相关的数据,包括但不限于直播过程中产生的直播视频数据和对应的直播音频数据组成的直播数据块以及对应的信息数据、直播视频帧或者直播音频帧本身和对应的信息数据等等。应当说明的是,这里的直播流数据中的关键帧时间间隔可在处理服务器接收到直播流数据之前对其进行设置,且直播流数据中的携带了对应的时间戳。进一步地,直播流数据不仅包括直播音视频数据,还包括各个直播音视频数据对应的信息数据,信息数据是直播过程中直播所需相关的信息数据,包括但不限于直播过程所需题目信息、文本内容信息、数值转移信息或者直播资源信息等等,其中,这里的信息数据可以用但不限于一些私有字段进行表示。其中,直播流数据可以是但不限于由直播音视频数据和对应的信息数据组成,或者直播视频数据中的直播视频帧先和对应的直播音频帧组成直播数据块后,直播数据块再和对应的信息数据组成直播流数据等等。处理服务器为了能给播放终端进行直播,需接收直播相关的直播流数据,具体可从其他服务器接收到该直播流数据或者从其他终端接收到该直播流数据,其中其他服务器可以为图1中的直播服务器。

步骤204,根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片。

其中,切片条件是用来对直播流数据进行切片的条件,该切片条件可以预先设置,具体设置切片条件包括但不限于根据直播流数据中的直播视频图像组gop进行切分,如一个或多个gop形成一个对应的直播分片,或者根据预设切分时间间隔进行切分,其中各个直播分片对应的预设切分时间间隔可以相同或不同。为了保证直播视频的正确播放,各个直播分片对应的视频数据的起始数据帧为关键视频帧。处理服务器获取到预先设置的切片条件后,根据获取到的预设切片条件对直播流数据的视频关键帧进行切片,得到对应的多个直播分片。直播分片是指直播流数据进行切片后得到的直播视频片段,该直播分片中包括但不限于直播音视频相关的音视频信息、直播音视频数据对应的信息数据、或者直播辅助播放信息等等,其中直播辅助播放信息包括但不限于直播音视频数据对应的信息数据的持续时长等等。

在一个实施例中,当预设切片时间间隔大于直播视频图像组gop,预设切片时间间隔与直播流数据中的直播视频图像组gop的比值为整数时,则以预设切片时间间隔与直播视频图像组gop的比值为单位进行切分,即一个直播分片中有与预设切片时间间隔与直播视频图像组gop的比值相同数量个gop。

在另一个实施例中,当预设切片时间间隔大于直播视频图像组gop,预设切片时间间隔与直播流数据中的直播视频图像组gop的比值为非整数时,则先将非整数按照预设方法进行取整,如向下取整或向上取整,得到目标整数,再以目标整数为单位进行切分,即一个直播分片中有目标整数个gop。

在又一个实施例中,当预设切片时间间隔小于直播视频图像组gop时,则以单个视频图像组gop为单位对直播流数据进行切片,得到对应的直播分片,即一个直播分片中只有一个gop。

步骤206,接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合。

其中,在一个实施例中,播放终端首次观看直播,需向处理服务器发送下载请求,下载请求是播放终端向处理服务器发出下载直播相关的数据的请求。通常,播放终端可以通过播放终端中的客户端上相关直播界面从而触发下载请求,并将该下载请求发送至处理服务器。处理服务器在未接收到播放终端发送的下载请求之前,会将根据预设切片条件对直播流数据进行切片得到的多个直播分片并缓存在处理服务器自身中。

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

具体地,一旦处理服务器接收到播放终端发送的下载请求后,需根据该下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片,并将目标直播分片组成目标直播分片集合,其中筛选的具体规则可以为自定义。其中,自定义可以为但不限于回退预设时间间隔、或者回退预设筛选直播分片数目等等。具体地,处理服务器先将接收到播放终端发送的下载请求时所在的时间点作为筛选起始时间点,再根据筛选规则从该筛选起始时间点时间之前的直播分片中进行筛选,进而得到符合筛选规则的目标直播分片,最后再将筛选得到的目标直播分片组成目标直播分片集合。

如,假设筛选规则为回退预设筛选直播分片数据为3个,处理服务器则将接收到的播放终端发送的下载请求时所在的时间点作为筛选起始时间点,从当前缓存的多个直播分片中根据筛选起始时间点向前筛选3个直播分片,即离筛选起始时间点最近的3个直播分片,再将筛选得到的3个直播分片作为目标直播分片,最后将3个目标直播分片组成目标直播分片集合。

步骤208,将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片。

具体地,为了播放终端的播放更加准确,提高各个播放终端的一致性,播放终端的播放器包括但不限于可控制播放器中缓存直播数据量的功能、或者可控制播放器中直播数据播放时长的功能等等。因此,处理服务器需将目标直播分片集合中的数据,以各个直播分片为单位发送至播放终端,当播放终端接收到的直播分片满足预设播放条件时,就可以开始播放接收到的直播分片。其中,预设播放条件是播放器中可预先设置用来控制接收到的直播分片的播放条件,包括但不限于检测接收到的直播分片中的视频帧数量达到预设视频帧数量阈值,或者检测接收到的直播分片数量达到预设直播分片数量等等。

如,假设预设播放条件为播放器中接收到的直播分片中的视频帧数量达到40帧视频帧,处理服务器将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,播放终端在接收到第一个直播分片时并未满足40帧视频帧,因此继续接收第二个直播分片,大概接收到第二个直播分片的一半时就满足了预设播放条件,因此播放终端可将接收到的直播分片开始进行播放。

上述直播数据处理方法,处理服务器接收包括直播音视频数据和对应的信息数据的直播流数据,再根据预设切片条件对直播流数据进行切片得到若干个直播分片并缓存,接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合,最后将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片。具体可通过预设切片条件和预设条件控制处理服务器所带的时延误差,而播放终端也需满足预设播放条件后才能进行播放,进而减小直播观众端之间的播放时间误差,提高各个播放终端之间的一致性。

如图3所示,在一个实施例中,在图2所示的直播数据处理方法的基础上还包括:

步骤302,接收直播音视频数据和对应的信息数据,直播音视频数据包括多个直播数据块。

具体地,处理服务器可接收直播服务器发送的直播流数据,或者可接收其他终端发送的直播流数据,然后处理服务器在接收到直播流数据时,直播服务器对直播流数据进行相关处理。具体地,直播服务器接收到直播终端发送的直播音视频数据和对应的信息数据,直播服务器将直播音视频数据中的各个直播视频帧和对应的直播音频帧组成各个直播数据块,或者直播服务器将直播音视频数据中的所有直播视频帧本身或者所有直播音频帧本身组成各个直播数据块等等,直播数据块也可以是但不限于单帧直播视频帧与对应的直播音频帧组成的,或者是多帧直播视频帧帧与对应的直播音频帧组成的等等。

步骤304,从信息数据中获取各帧直播视频帧对应的同步信息,将同步信息封装至对应的直播视频帧所在的直播数据块形成直播流数据。

具体地,为了播放终端进行直播时能够将直播音视频数据和对应的信息数据进行同步播放或者同步展示等等,直播服务器接收到直播音视频数据和对应的信息数据后,直播服务器获取直播音视频数据中各帧直播视频帧对应的同步信息,即从信息数据中获取与直播音视频数据中各帧直播视频帧对应的同步信息。进一步地,直播服务器再将同步信息封装至对应的直播视频帧所在的直播数据块形成的直播流数据中。其中,由于信息数据是可以用私有字段来表示,因此封装可以是但不限于将同步信息包装在与同步信息对应的直播视频帧所在的直播数据块中的直播数据块头,或者直播数据块末尾,或者直播数据块某一特定的位置中。直播服务器再先将封装更新后的各个直播数据块形成直播流数据,然后再将直播流数据发送至处理服务器。

上述直播数据处理方法,将直播音视频帧数据中各帧直播视频帧对应的同步信息封装至对应的直播视频帧所在的直播数据块形成直播流数据,这样可以将直播音视频数据和对应的信息数据完全进行同步,播放终端接收到直播分片时解析直播音视频数据和信息数据,并同步播放直播音视频数据和对应的信息数据。这样在已经达到减小直播观众端之间的时延误差的基础上,进而达到直播音视频数据和对应的信息数据之间的同步播放。

如图4所示,在一个实施例中,根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片,包括:

步骤402,获取预设切片时间间隔。

步骤404,获取直播流数据中各个视频图像组对应的关键帧时长间隔。

步骤406,根据预设切片时间间隔和关键帧时长间隔确定关键帧切片间隔。

步骤408,根据关键帧切片间隔对直播流数据进行切片,得到多个直播分片。

其中,预设切片时间间隔为处理服务器预先设置的对直播流数据进行切片的切片时间间隔,而关键帧时长间隔是指直播流数据中的各个视频图像组对应的关键帧时长的间隔,视频图像组是两个视频关键帧之间的间隔,又可称为gop。由于处理服务器在接收到直播流数据之前,直播终端在对采集到的直播音视频数据进行编码之前,对直播视频关键帧之间的时间间隔进行了设置,可将直播视频关键帧之间的设置成较小的时间间隔,再对更新了关键帧时间间隔的直播视频数据进行编码。

在一个实施例中,处理服务器获取预先设置的对直播流数据进行切片的预设切片时间间隔,当预设切片时间间隔大于直播视频图像组gop,预设切片时间间隔与直播流数据中的直播视频图像组gop的比值为整数时,则以预设切片时间间隔与直播视频图像组gop的比值为单位进行切分,即一个直播分片中有与预设切片时间间隔与直播视频图像组gop的比值相同数量个gop。

如,假设预设切分时间间隔为2s,直播流数据中视频关键帧的时间间隔为1s,即视频图像组gop为1s,则根据预设切片条件对直播流数据进行切片,得到各个直播分片,则各个直播分片中包括两个直播视频关键帧的间隔,即一个直播分片中有两个视频图像组gop。

在另一个实施例中,当预设切片时间间隔大于直播视频图像组gop,预设切片时间间隔与直播流数据中的直播视频图像组gop的比值为非整数时,则先将非整数按照预设方法进行取整,如向下取整或向上取整,得到目标整数,再以目标整数为单位进行切分,即一个直播分片中有目标整数个gop。

如,假设预设切片条件为预设切分时间间隔为7s,直播流数据中视频图像组gop为2s,因为预设切片时间间隔与直播流数据中的gop的比值为非整数时,则先将非整数按照预设方法进行取整,如向下取整或向上取整,得到目标整数,再以目标整数为单位进行切分,则各个直播分片中包括三个视频图像组gop或者各个直播分片中包括四个视频图像组gop。

在又一个实施例中,当预设切片时间间隔小于直播视频图像组gop时,则以单个视频图像组gop为单位对直播流数据进行切片,得到对应的直播分片,即一个直播分片中只有一个gop。

如,预设切片条件为预设切片时间间隔为1.5s,直播流数据中视频图像组gop为2s,则以gop为单位对直播流数据进行切片,得到各个直播分片,即各个直播分片中包括一个视频图像组gop。

如图5所示,在一个实施例中,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合,包括:

步骤502,获取预设筛选数目,根据下载请求在当前缓存的多个直播分片中筛选预设筛选数目的直播分片得到目标直播分片,将目标直播分片组成目标直播分片集合。

具体地,处理服务器在接收到下载请求后,由于处理服务器预先设置从当前缓存的多个直播分片中筛选得到目标直播分片的筛选策略,因此处理服务器首先需要获取筛选策略中的预设筛选数目,再将接收到播放终端发送的下载请求所在的时间点作为筛选起始时间点,从筛选起始时间点时间之前缓存在处理服务器的直播分片中筛选预设筛选数目的直播分片,进而得到目标直播分片,再将筛选得到的目标直播分片组成目标直播分片集合。

如,假设从处理服务器预先设置的筛选策略中获取到预设筛选数目为3个,则将接收到播放终端发送的下载请求所在的时间点作为筛选起始时间点,从筛选起始时间点从处理服务器中缓存的直播分片中向前筛选3个直播分片得到对应的目标直播分片,即离筛选起始时间点最近的3个直播分片作为目标直播分片,最后将3个目标直播分片组成目标直播分片集合。

步骤504,获取预设回退时间间隔,根据下载请求回退预设回退时间间隔得到起始直播分片起点。

步骤506,将起始直播分片起点对应的起始直播分片和起始直播分片之后的直播分片数据作为目标直播分片,将目标直播分片组成目标直播分片集合。

在本实施例中,具体地,处理服务器预先设置对当前缓存的多个直播分片进行筛选,从而得到目标直播分片。其中对当前缓存的多个直播分片进行筛选的筛选策略可以为预先设置回退时间间隔,由于直播流数据中的结构中携带了时间戳,因此可先获取接收到播放终端发送的下载请求所在的时间点,再以该时间点作为参考点,向历史时间方向回退预设时间间隔得到起始直播分片起点。进一步地,再将起始直播分片起点对应的起始直播分片和起始直播分片之后的直播分片数据作为目标直播分片,最后将目标直播分片组成目标直播分片集合。

如,假设从处理服务器预先设置的筛选策略中获取到预设回退时间间隔为1s,处理服务器接收到播放终端发送的下载请求所在的筛选起始时间点为5s,则从筛选起始时间点向前回退预设回退时间间隔1s得到起始直播分片起点4s,再将起始直播分片起点4s对应的起始直播分片和起始直播分片之后的直播分片数据作为目标直播分片,最后将目标直播分片组成目标直播分片集合。

应当说明,步骤502和步骤504、步骤506之间是和/或关系,也就是说可以只执行步骤502,或者只执行步骤504和步骤506,也可以同时执行步骤502、步骤504和步骤506,或者先执行步骤502再执行步骤504和步骤506。

如图6所示,在一个实施例中,将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片,本实施例主要以该方法应用于上述图1中的播放终端110来举例说明。包括:

步骤602,播放终端解析接收到的直播分片,确定接收到的直播分片对应的直播视频帧数量。

步骤604,当直播视频帧数量满足预设视频帧数量阈值时,开始播放接收到的直播分片。

本实施例中,处理服务器将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,如上所述,播放终端上的播放器具有可控制播放器中缓存直播数据量的功能、或者可控制播放器中直播数据播放时长的功能等等。因此,当播放终端需对接收到处理服务器发送的直播分片进行检测,具体地,播放终端需解析处理服务器发送的直播分片,得到接收到的直播分片对应的直播视频帧数量,当直播视频帧数量满足预设视频帧数量阈值时,则开始播放接收到的直播分片。

如图7所示,图7示出一个实施例中播放终端播放接收到的直播分片的示意图,处理服务器接收到播放终端发送的下载请求后,从缓存的各个直播分片中根据预设条件从接收到下载请求所在的时间点开始向前筛选得到对应的目标直播分片分别为t7、t6,将目标直播分片t7、t6组成目标直播分片集合,再将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,即先发送直播分片t7给播放终端,播放终端接收到t7后对直播分片t7进行解析,确定直播分片t7对应的直播视频帧数量。当直播分片t7中的直播视频帧数量未满足预设视频帧数量阈值时,则继续接收直播分片t6,再对直播分片t6进行解析,确定直播分片t6对应的直播视频帧数量,当直播分片t7中的直播视频帧加上直播分片t6中的部分直播视频帧已经达到预设视频帧数量阈值,则将直播分片t6部分直播视频帧所在的时间点作为直播播放点,开始播放接收到的直播分片。

其中,如图7所示,当播放终端的网络出现异常时,由于直播流数据中的视频图像组设置的时长较短,且根据预设条件对直播流数据进行切分得到的直播分片的时长也较短,因此当播放终端网络恢复正常时,播放终端可以很好地追上播放内容,能够避免弱网情况下播放终端的用户由于长时间播放延迟导致各个播放终端的延迟时间增大。

进一步地,播放终端除了解析直播分片中得到直播分片中对应的直播视频帧数量,还解析接收到的直播分片中直播视频帧对应的同步信息,将解析到的同步信息与对应的直播视频帧进行同步播放或者同步显示等等。例如,在直播答题这个应用场景中时,播放终端会对满足预设播放条件的直播分片进行开始播放,即直播分片中直播音视频帧为主持人说出类似“请听题后”的话语时,播放终端会将该直播音视频帧对应的同步信息如题目1同时同步在播放终端供播放终端的观众进行直播答题。

在一个直播答题的应用场景中,直播终端将直播相关的直播音视频数据进行编码,将编码后的直播音视频数据以及对应的直播题目信息一起发送至直播服务器,直播服务器接收到直播音视频数据以及对应的直播题目信息作为直播流数据一起发送至第一服务器,其中,直播服务器可对直播音视频数据以及对应的直播题目信息做些少量的纠正处理等等。第一服务器接收到包括直播音视频数据和对应的直播题目信息数据后,根据预先设置的预设切片条件对直播流数据进行切片,得到对应的多个直播分片,将各个直播分片发送至第二服务器,第二服务器接收到各个直播分片并缓存至第二服务器。当观众所在的播放终端发送下载请求至第二服务器时,第二服务器根据预下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片,将目标直播分片组成目标直播分片集合。最后,将目标直播分片集合中的数据以各个直播分片为单位发送至各个观众所在的播放终端。

进一步地,播放终端需对接收到的直播分片进行检测是否满足预设播放条件,若满足预设播放条件时,则开始播放接收到的直播分片,即播放直播分片中的直播音视频数据和对应的直播题目信息,如图8a所示,图8a为一个实施例中直播数据处理方法的应用场景图,当直播终端中的主持人说出“请听题”时,播放终端的直播界面会显示与该直播音视频数据对应的直播题目信息供观众进行直播答题。通过将上述直播数据处理方法应用到直播答题应用场景中,通过第一服务器以及第二服务器的优化,能够减少各个播放终端之间的播放延迟,各个播放终端的延迟时间能保持小于2s。

在一个直播资源转移的应用场景中,直播终端将直播相关的直播音视频数据进行编码,将编码后的直播音视频数据以及对应的直播资源转移信息,如直播红包信息,一起发送至直播服务器,直播服务器接收到直播音视频数据以及对应的直播资源转移信息作为直播流数据一起发送至第一服务器,其中,直播服务器可对直播音视频数据以及对应的直播资源转移信息做些少量的纠正处理等等。第一服务器接收到包括直播音视频数据和对应的直播资源转移信息后,根据预先设置的预设切片条件对直播流数据进行切片,得到对应的多个直播分片,将各个直播分片发送至第二服务器,第二服务器接收到各个直播分片并缓存至第二服务器。当观众所在的播放终端发送下载请求至第二服务器时,第二服务器根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片,将目标直播分片组成目标直播分片集合。最终,将目标直播分片集合中的数据以各个直播分片为单位发送至各个观众所在的播放终端。

进一步地,播放终端需对接收到的直播分片进行检测是否满足预设播放条件,若满足预设播放条件时,则开始播放接收到的直播分片,即播放直播分片中的直播音视频数据和对应的直播资源转移信息。如图8b所示,图8b为一个实施例中直播数据处理方法的应用场景图,当直播终端中的主持人说出“预备开始”时,播放终端会在直播界面上显示与该直播音视频数据对应的直播资源转移信息供观众进行转移,如直播红包信息。通过将上述直播数据处理方法应用到直播资源转移的应用场景中,通过第一服务器以及第二服务器的优化,能够减少各个播放终端之间的播放延迟,各个播放终端的延迟时间能保持小于2s。

如图8所示为一个实施例中直播数据处理方法的时序图,包括直播终端、直播服务器、处理服务器和播放终端,其中处理服务器包括第一服务器和第二服务器。具体地,直播终端将直播相关的直播音视频数据发送至直播服务器,同时直播平台相关的运营商也将与直播音视频数据对应的信息数据一起发送至直播服务器。直播服务器接收到直播音视频数据和对应的信息数据后,由于直播音视频数据中包括多个直播数据块,因此先获取各帧直播视频帧对应的同步信息,再将同步信息封装至对应的直播视频帧所在的直播数据块进而形成直播流数据,直播服务器最后将直播流数据发送至第一服务器中。第一服务器接收到直播服务器发送的直播流数据后,根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片,再将多个直播分片分发至第二服务器中。

第二服务器在未接收到播放终端发送的下载请求之前,需将第一服务器发送的多个直播分片缓存,一旦第二服务器接收到播放终端发送的下载请求后,需根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片,将目标直播分片组成目标直播分片集合。第二服务器将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,播放终端再对接收到直播分片进行解析从而确定接收到的直播分片对应的直播视频帧数量,当该直播视频帧数量未满足预设视频帧数量阈值时,则继续接收下一个直播分片然后进行解析,直到播放终端中的直播分片中的直播视频帧数量满足预设视频帧数量阈值时,就开始播放接收到的直播分片。

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

步骤902,其他服务器,如直播服务器,接收直播终端发送的直播音视频数据和直播平台对应的运营商发送的与该直播音视频数据对应的信息数据,其中该直播音视频数据包括多个直播数据块。

步骤904,其他服务器接收到直播音视频数据和对应的信息数据后,获取各帧直播视频帧对应的同步信息,将同步信息封装至对应的直播视频帧所在的直播数据块从而形成直播流数据,将直播流数据发送至处理服务器。

步骤906,处理服务器接收直播流数据,该直播流数据包括直播音视频数据和对应的信息数据。

步骤908,处理服务器首先获取预设切片时间间隔,再获取直播流数据中各个视频图像组对应的关键帧时长间隔,然后根据预设切片时间间隔和关键帧时长间隔确定关键帧切片间隔,最后根据关键帧切片间隔对直播流数据进行切片,得到多个直播分片。

步骤910,处理服务器接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到对应的目标直播分片集合。

步骤910a,处理服务器根据下载请求获取预设筛选数目,根据下载请求在当前缓存的多个直播分片中筛选预设筛选数目的直播分片得到目标直播分片,将目标直播分片组成目标直播分片集合。

步骤910b,处理服务器根据下载请求获取预设回退时间间隔,根据下载请求回退预设回退时间间隔得到起始直播分片起点,将起始直播分片起点对应的起始直播分片和起始直播分片之后的直播分片数据作为目标直播分片,将目标直播分片组成目标直播分片集合。

步骤912,处理服务器将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,当播放终端接收到第一个直播分片时,对该直播分片进行解析得到直播分片对应的直播视频帧数量,若当该直播视频帧数量未满足预设视频帧数量阈值时,则继续接收下一个直播分片,再对下一个直播分片进行解析得到对应的直播视频帧数量,直至播放终端中解析出来的直播视频帧数量达到预设视频帧数量阈值时,则开始播放接收到的直播分片。

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

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

处理服务器1002,用于接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据,根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片。

其中,处理服务器包括第一服务器和第二服务器,第一服务器是用于接收直播音视频数据和对应的信息数据的直播流数据,这里的直播流数据是直播过程中与直播相关的数据,包括但不限于直播过程中产生的直播视频数据和对应的直播音频数据组成的直播数据块以及对应的信息数据、直播视频帧或者直播音频帧本身和对应的信息数据等等。而第一服务器接收到直播流数据后,需根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片。所谓切片条件是用来对直播流数据进行切片的条件,该切片条件可以预先进行设置,包括但不限于根据直播流数据中的直播视频图像组gop进行切分,如一个或多个gop形成一个对应的直播分片,或者根据预设切分时间间隔进行切分,其中各个直播分片对应的预设切分时间间隔可以相同或不同。为了保证直播视频的正确播放,各个直播分片对应的视频数据的起始数据帧为关键视频帧。

第一服务器得到多个对应的直播分片后,将多个对应的直播分片发送至第二服务器,第二服务器在未接收到播放终端发送的下载请求之前,需将接收到多个直播分片后并缓存至第二服务器中。

播放终端1004,用于发送下载请求至处理服务器。

处理服务器1002还用于接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合,再将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端。

在一个实施例中,播放终端首次观看直播,需向第二服务器发送下载请求,下载请求是播放终端向第二服务器发出下载直播相关的数据的请求。通常,播放终端可以通过相关的直播界面可触发下载请求,并将该下载请求发送至第二服务器。第二服务器在未接收到播放终端发送的下载请求时,会将根据预设切片条件对直播流数据进行切片得到的多个直播分片并缓存在第二服务器自身中。

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

一旦处理服务器中的第二服务器接收到播放终端发送的下载请求后,根据下载请求对第二服务器中缓存的多个直播分片进行筛选得到目标直播分片,将目标直播分片组成目标直播分片集合,最后将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端。

播放终端1004还用于检测接收到处理服务器发送的直播分片是否满足预设播放条件,若满足预设播放条件时,则开始播放接收到的直播分片。

具体地,播放终端需对接收的直播分片检测是否满足预设播放条件时,若满足预设播放条件时,就可以开始播放接收到的直播分片。其中,预设播放条件是播放器中可预先设置用来控制接收到的直播分片的播放条件,包括但不限于检测接收到的直播分片中的视频帧数量达到预设视频帧数量阈值,或者检测接收到的直播分片数量达到预设直播分片数量等等。

如图10所示,在一个实施例中,该系统还包括:直播服务器1006,其中:

直播服务器1006,用于接收直播音视频数据和对应的信息数据,直播音视频数据包括多个直播数据块。

直播服务器1006还用于从信息数据中获取各帧直播视频帧对应的同步信息,将同步信息封装至对应的直播视频帧所在的直播数据块形成直播流数据。

具体地,该直播数据处理系统还包括直播服务器,直播服务器与处理服务器中的第一服务器建立网络连接,直播服务器接收到直播终端发送的直播音视频数据和对应的信息数据,直播服务器需将直播音视频数据中的各个直播视频帧和对应的直播音频帧组成各个直播数据块,或者直播服务器将直播音视频数据中的所有直播视频帧本身或者所有直播音频帧本身组成各个直播数据块等等,直播数据块也可以是但不限于每一帧直播视频帧与对应的直播音频帧组成的,或者是多帧直播视频帧帧与对应的直播音频帧组成的等等。

进一步地,直播服务器接收到直播音视频数据和对应的信息数据后,直播服务器需获取直播音视频数据中各帧直播视频帧对应的同步信息,也就是说从信息数据中获取与直播音视频数据中各帧直播视频帧对应的同步信息。直播服务器再将同步信息封装至对应的直播视频帧所在的直播数据块形成的直播流数据中。其中,由于信息数据是可以用私有字段来表示,因此封装可以是但不限于将同步信息包装在与同步信息对应的直播视频帧所在的直播数据块中的直播数据块头,或者直播数据块末尾,或者直播数据块某一特定的位置中。直播服务器再将封装更新后的各个直播数据块形成直播流数据发送至处理服务器中的装封装服务器。

在一个实施例中,处理服务器1002还用于获取预设切片时间间隔;处理服务器1002还用于获取直播流数据中各个视频图像组对应的关键帧时长间隔;处理服务器1002还用于根据预设切片时间间隔和关键帧时长间隔确定关键帧切片间隔;处理服务器1002还用于根据关键帧切片间隔对直播流数据进行切片,得到多个直播分片数据。

在一个实施例中,处理服务器1002还用于获取预设筛选数目,根据下载请求在当前缓存的多个直播分片中筛选预设筛选数目的直播分片数据得到目标直播分片数据;和/或,处理服务器1002还用于获取预设回退时间间隔,根据下载请求回退预设回退时间间隔得到起始直播分片起点,将起始直播分片起点对应的起始直播分片数据和起始直播分片数据之后的直播分片数据组成目标直播分片数据。

在一个实施例中,播放终端1004还用于解析接收到的直播分片,确定接收到的直播分片对应的直播视频帧数量;播放终端1004还用于当直播视频帧数量满足预设视频帧数量阈值时,开始播放接收到的直播分片。

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

直播流数据接收模块1102,用于接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据;

直播流数据切片模块1104,用于根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片;

下载请求接收模块1106,用于接收播放终端发送的下载请求;

目标直播分片筛选模块1108,用于根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合;

直播分片发送模块1110,用于将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片。

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

直播音视频数据接收模块1202,用于接收直播音视频数据和对应的信息数据,直播音视频数据包括多个直播数据块;

同步信息获取模块1204,用于获取各帧直播视频帧对应的同步信息,将同步信息封装至对应的直播视频帧所在的直播数据块形成直播流数据。

如图13所示,在一个实施例中,直播流数据切片模块1104包括:

切片时间间隔获取单元1104a,用于获取预设切片时间间隔;

关键帧时长获取单元1104b,用于获取直播流数据中各个视频图像组对应的关键帧时长间隔;

关键帧切片间隔生成单元1104c,用于根据预设切片时间间隔和关键帧时长间隔确定关键帧切片间隔;

直播分片数据生成单元1104d,用于根据关键帧切片间隔对直播流数据进行切片,得到多个直播分片数据。

如图14所示,在一个实施例中,目标直播分片筛选模块1108包括:

预设筛选数目获取单元1108a,用于获取预设筛选数目;

目标直播分片集合生成单元1108b,用于根据下载请求在当前缓存的多个直播分片中筛选预设筛选数目的直播分片得到目标直播分片,将目标直播分片组成目标直播分片集合;和/或

预设回退时间间隔获取单元1108c,用于获取预设回退时间间隔,根据下载请求回退预设回退时间间隔得到起始直播分片起点;

目标直播分片集合获取单元1108d,用于将起始直播分片起点对应的起始直播分片和起始直播分片之后的直播分片数据组成目标直播分片,将目标直播分片组成目标直播分片集合。

在一个实施例中,播放终端解析接收到的直播分片,确定接收到的直播分片对应的直播视频帧数量;当直播视频帧数量满足预设视频帧数量阈值时,开始播放接收到的直播分片。

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

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

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

例如,图15所示的计算机设备可以通过如图11所示的直播数据处理装置中的直播流数据接收模块执行接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据。计算机设备可通过直播流数据切片模块执行根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据;根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片;接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合;将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片。

在一个实施例中,所述计算机程序还使得所述处理器执行如下步骤:接收直播音视频数据和对应的信息数据,直播音视频数据包括多个直播数据块;从信息数据中获取各帧直播视频帧对应的同步信息,将同步信息封装至对应的直播视频帧所在的直播数据块形成直播流数据。

在一个实施例中,根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片,包括:获取预设切片时间间隔;获取直播流数据中各个视频图像组对应的关键帧时长间隔;根据预设切片时间间隔和关键帧时长间隔确定关键帧切片间隔;根据关键帧切片间隔对直播流数据进行切片,得到多个直播分片。

在一个实施例中,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合,包括:获取预设筛选数目,根据下载请求在当前缓存的多个直播分片中筛选预设筛选数目的直播分片得到目标直播分片,将目标直播分片组成目标直播分片集合;和/或,获取预设回退时间间隔,根据下载请求回退预设回退时间间隔得到起始直播分片起点;将起始直播分片起点对应的起始直播分片和起始直播分片之后的直播分片数据作为目标直播分片,将目标直播分片组成目标直播分片集合。

在一个实施例中,将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片,包括:播放终端解析接收到的直播分片,确定接收到的直播分片对应的直播视频帧数量;当直播视频帧数量满足预设视频帧数量阈值时,开始播放接收到的直播分片。

在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:接收直播流数据,直播流数据包括直播音视频数据和对应的信息数据;根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片;接收播放终端发送的下载请求,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合;将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片。

在一个实施例中,所述计算机程序还使得所述处理器执行如下步骤:接收直播音视频数据和对应的信息数据,直播音视频数据包括多个直播数据块;从信息数据中获取各帧直播视频帧对应的同步信息,将同步信息封装至对应的直播视频帧所在的直播数据块形成直播流数据。

在一个实施例中,根据预设切片条件对直播流数据进行切片,得到对应的多个直播分片,包括:获取预设切片时间间隔;获取直播流数据中各个视频图像组对应的关键帧时长间隔;根据预设切片时间间隔和关键帧时长间隔确定关键帧切片间隔;根据关键帧切片间隔对直播流数据进行切片,得到多个直播分片。

在一个实施例中,根据下载请求对当前缓存的多个直播分片进行筛选得到目标直播分片集合,包括:获取预设筛选数目,根据下载请求在当前缓存的多个直播分片中筛选预设筛选数目的直播分片得到目标直播分片,将目标直播分片组成目标直播分片集合;和/或,获取预设回退时间间隔,根据下载请求回退预设回退时间间隔得到起始直播分片起点;将起始直播分片起点对应的起始直播分片和起始直播分片之后的直播分片数据作为目标直播分片,将目标直播分片组成目标直播分片集合。

在一个实施例中,将目标直播分片集合中的数据以各个直播分片为单位发送至播放终端,以使播放终端在接收到的直播分片满足预设播放条件时,开始播放接收到的直播分片,包括:播放终端解析接收到的直播分片,确定接收到的直播分片对应的直播视频帧数量;当直播视频帧数量满足预设视频帧数量阈值时,开始播放接收到的直播分片。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1