直播数据管理系统、方法、设备及存储介质与流程

文档序号:25604000发布日期:2021-06-25 13:01阅读:245来源:国知局
直播数据管理系统、方法、设备及存储介质与流程

1.本发明实施例涉及直播技术领域,尤其涉及直播数据管理系统、方法、设备及存储介质。


背景技术:

2.在网络直播领域,用户直播软件客户端观看直播时,所获取的直播帧数据首先通过一个缓冲设置来进行直播帧数据的暂存,然后直播帧数据再从缓存区流向解码器进行解码。将直播帧数据通过缓冲区的方式可以有效的抵抗网络和解码的时间抖动,防止频繁的卡顿,同时也能实现播放中的音视频同步。
3.传统的直播帧数据缓冲设定中考虑使用固定长度单缓冲队列,来进行简单的缓冲管理。在直播过程中,按照上述方式设定的缓冲区无法应对直播的各种复杂播放环境,也很容易导致直播观看的超高延时、播放中播放卡顿和重新缓冲频繁等问题。此外,因直播帧数据还存在乱序或者重复下发的情况,采用上述方式设定的缓冲区在直播原始录制和回放录制中都存在很大挑战。


技术实现要素:

4.有鉴于此,本发明实施例提供了直播数据管理系统、方法、设备及存储介质,以实现待播放直播数据的有效管理,提高用户的直播观看体验。
5.第一方面,本发明实施例提供了一种直播数据管理系统,其特征在于,包括:直播主缓冲队列、直播从缓冲队列、校验管理器以及交互管理器;
6.所述直播主缓冲队列中缓存满足输入条件的待解码帧数据序列,以向直播解码器提供待解码帧数据,其中,所述待解码帧数据序列来自于从直播服务端接收的直播帧数据序列;
7.所述校验管理器,用于对所述直播服务端传输的直播帧数据序列进行校验,并将校验后形成的目标帧数据序列缓存至所述直播从缓冲队列;
8.所述交互管理器,用于在监控到所述直播主缓冲队列满足交互条件时,采用所述直播从缓冲队列中已缓存帧数据对所述直播主缓冲队列进行修复。
9.第二方面,本发明实施例提供一种直播数据管理方法,应用于本发明第一方面实施例提供的直播数据管理系统,其中,直播数据管理系统中的直播主缓冲队列用于缓存满足输入条件的待解码帧数据序列,所述待解码帧数据序列来自于从直播服务端接收的直播帧数据序列,该方法包括:
10.通过校验管理器对所述直播服务端传输的直播帧数据序列进行校验,并将校验后形成的目标帧数据序列缓存至所述直播从缓冲队列;
11.通过交互管理器在监控到所述直播主缓冲队列满足交互条件时,采用所述直播从缓冲队列中已缓存帧数据对所述直播主缓冲队列进行修复。
12.第三方面,本发明实施例提供了一种计算机设备,包括:
13.一个或多个处理器;
14.存储装置,用于存储一个或多个程序;
15.所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明第二方面实施例提供的直播数据管理方法。
16.第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明第二方面实施例提供的直播数据管理方法。
17.本发明实施例提供的直播数据管理系统、方法、设备及存储介质中,直播数据管理系统包括直播主缓冲队列、直播从缓冲队列、校验管理器以及交互管理器,直播主缓冲队列中缓存满足输入条件的待解码帧数据序列,以向直播解码器提供待解码帧数据,校验管理器用于对直接服务端传输的直播帧数据虚了进行校验,并将校验后形成的目标帧数据序列缓存至直播从缓冲队列;在监控到直播主缓冲队列满足交互条件时,采用直播从缓冲队列中已缓存帧数据对直播主缓冲对了进行修复。上述技术方案,设定了直播从缓冲队列,且通过设定的校验管理器能够保证从缓冲队列中所缓存直播帧数据的有效性,通过设定的交互管理器能够将采用从缓冲队列中的有效帧数据对直播主缓冲队列进行修复。上述缓冲模式的设定,有效解决现有缓冲模式中因单缓冲区以及缓冲长度固定带来的播放卡顿以及缓冲频繁等问题,同时避免了缓冲队列中存在乱序数据以及重复下发数据等情况的发生,很大程度降低了直播流数据的缓冲给直播原始录制以及回放录制带来的挑战,更进一步提升了用户的直播观看体验。
附图说明
18.图1给出了本发明实施例一提供的一种直播数据管理系统的结构框图;
19.图2给出了本发明实施例二提供的一种直播数据管理方法的执行示意图;
20.图2a给出了本发明实施例二所提供一种直播数据管理方法的实现示例图;
21.图3给出了本发明实施例三提供的一种计算机设备的硬件结构示意图。
具体实施方式
22.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施例方式作进一步地详细描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
23.在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
24.实施例一
25.图1给出了本发明实施例一提供的一种直播数据管理系统的结构框图,该系统适用于对输出直播编码器后,输入直播解码器前的直播流数据进行缓存管理的情况,如图1所示,该直播数据管理系统包括:直播主缓冲队列11、直播从缓冲队列12、校验管理器13以及交互管理器14。
26.其中,直播主缓冲队列11中缓存满足输入条件的待解码帧数据序列,以向直播解码器提供待解码帧数据,其中,待解码帧数据序列来自于从直播服务端接收的直播帧数据序列;
27.校验管理器13,用于对直播服务端传输的直播帧数据序列进行校验,并将校验后形成的目标帧数据序列缓存至直播从缓冲队列12;
28.交互管理器14,用于在监控到直播主缓冲队列11满足交互条件时,采用直播从缓冲队列12中已缓存帧数据对直播主缓冲队列11进行修复。
29.需要说明的是,本实施例所提供的直播数据管理系统可以作为直播应用软件的插件安装在作为用户终端的计算机设备上。直播应用软件中还包括有数据接收入口,用来接收直播服务端侧传输的处于编码模式的直播帧数据,同时还包括有直播解码器,可以对直播服务端传输的处于编码模式的直播帧数据进行解码,以便于直播帧数据的正常播放。
30.可以知道的是,直播服务端侧传输的直播帧数据序列由直播数据的生产者,即主播用户通过其相应的客户端生成的,直播帧数据在其生成时存在相应的生成时间戳,同时已知帧数据大小,直播帧数据可以由主播用户侧客户端通过直播编码器在编码后上传至直播服务端,直播服务端则可以将直播帧数据以编码形式再次反馈给具备直播观看需求的观众用户。观众用户所持有的直播客户端在对直播帧数据进行播放前,需要通过直播解码器解码,而在解码前需要通过将直播帧数据先存放至直播缓冲队列中。
31.在本实施例中,设定了两个缓存队列用于对直播服务端侧传输的直播帧数据序列进行缓存,具体为直播主缓冲队列11和直播从缓冲队列12,其中,直播主缓冲队列11采用的单链表形式的数据结构,主要目的是向直播解码器输出待解码的直播帧数据;直播从缓冲队列12采用的双向链表的方式存储,主要的作用是对直播帧数据进行备份和校验,保证直播帧数据的准确和有效性,以便于对直播主缓冲队列11进行修复。同时可以知道的是,直播从缓冲队列12中所缓存的帧数据并不直接参与向直播解码器的输出,由此,直播从缓冲队列12的队列长度固定,当直播从缓冲队列12中所缓存数据达到固定长度后,可以通过删除队首数据的形式持续缓存新输入的直播帧数据。
32.其中,对于数据接收入口接收的直播帧数据序列,直播主缓冲队列11仅对满足输入条件的直播帧数据序列进行缓存,本实施例将满足输入条件的直播帧数据记为待解码帧数据序列。本实施例中,直播帧数据序列是否满足输入条件,可以通过直播主缓冲队列11中已缓存帧数据的数据长度来判定。直播从缓冲队列12则在缓存直播帧数据序列之前也需要通过校验管理器13对直播帧数据序列进行校验管理。
33.在本实施例中,校验管理器13和交互管理器14相当于直播应用软件运行时的两个子管理进程,校验管理器13则可用来对直播服务端传输的直播帧数据进行校验管理,交互管理器14则可用来对直播主缓冲队列11与直播从缓冲队列12中所缓存的直播帧数据进行复制、删除等交互管理。
34.具体的,校验管理器13主要负责对数据接收入口所流入的直播帧数据序列进行编号管理和数据校验管理。通过编号管理可以将直播帧数据序列中直播帧数据按照数据接收入口接收到的顺序进行编号,该操作可以在数据接收入口每次接收到新的直播数据序列时执行。通过数据校验管理可以根据直播帧数据序列中各直播帧数据的生成时间戳以及帧数据大小,结合预先确定的编号进行直播帧数据排列乱序以及重复出现的校验管理,以保证
输入到直播从缓冲队列12中的直播帧数据序列在排序上以及所包含的帧数据内容上都是有效的。
35.具体的,交互管理器14主要负责对直播主缓冲队列11中已缓存帧数据以及直播从缓冲队列12中的已缓存帧数据实时进行监控,通过对二者的监控来确定直播主缓冲队列11中的数据是否存在错误,若存在需要将从缓冲队列里的直播帧数据按照相应的复制方式复制到直播主缓冲队列11中,以此实现直播从缓冲队列12对直播主缓冲队列11的修复。
36.本发明实施例一提供的一种直播数据管理系统,其设定了直播从缓冲队列12,且通过设定的校验管理器13能够保证从缓冲队列中所缓存直播帧数据的有效性,通过设定的交互管理器14能够将采用从缓冲队列中的有效帧数据对直播主缓冲队列11进行修复。上述缓冲模式的设定,有效解决现有缓冲模式中因单缓冲区以及缓冲长度固定带来的播放卡顿以及缓冲频繁等问题,同时避免了缓冲队列中存在乱序数据以及重复下发数据等情况的发生,很大程度降低了直播流数据的缓冲给直播原始录制以及回放录制带来的挑战,更进一步提升了用户的直播观看体验。
37.进一步地,直播主缓冲队列11包括:音频主缓冲队列和视频主缓冲队列;
38.直播从缓冲队列12包括:音频从缓冲队列和视频从缓冲队列;
39.直播帧数据序列中包括音频帧数据序列和视频帧数据序列;
40.音频帧数据序列中音频帧数据缓存在音频主缓冲队列及音频从缓冲队列中;
41.视频帧数据序列中视频帧数据缓存在视频主缓冲队列及视频从缓冲队列中。
42.在本实施例中,直播数据的生成终端在同时生成时间戳所生成的帧数据一般既包括音频帧数据,也包括视频帧数据。为便于表述,通常将音频帧数据和视频帧数据合称为直播帧数据,同时多个直播帧数据也可以构成直播帧数据序列,由此可认为直播帧数据序列中包括了音频帧数据构成的音频帧数据序列和视频帧数据构成的视频帧数据序列。此外,在直播数据的传输中,音频帧数据和视频帧数据会通过相应的传输通道分别传输至数据接收端并分别进行后续的解码操作,相应的,数据接收端也需要为音频帧数据和视频帧数据分别设定不同的缓冲区进行相应数据的缓存。
43.由此,本实施例提供的直播数据管理系统中,所设定的直播主缓冲队列11具体包括了音频主缓冲队列和视频主缓冲队列,直播从缓冲队列12中也具体包括了音频从缓冲队列和视频从缓冲队列。且音频帧数据序列中包括的音频帧数据最终可缓存在音频主缓冲队列及音频从缓冲队列中,视频帧数据序列中包括的视频帧数据最终可缓存在视频主缓冲队列及视频从缓冲队列中。
44.进一步地,该系统还包括了追帧管理器15,
45.追帧管理器15用于对直播服务端传输的直播帧数据序列进行追帧管理,确定满足输入条件的待解码直播帧数据并输入至直播主缓冲队列11。
46.一般的,考虑到直播中网络的频繁抖动,造成数据接收入口无法及时接收到直播帧数据,而一段时间内又有大量的直播帧数据传入,导致直播播放器没有办法快速播放掉所缓存的直播帧数据,由此造成直播过程中的超高延时。在本实施例中,为了解决直播过程中高延时的问题,所提供的直播数据管理系统中为直播主缓冲队列11中可缓存的直播帧数据设定了缓存条件,即输入条件。本实施例优选增加追帧管理器15,并通过追帧管理器15的处理操作来筛选出满足输入条件的待解码帧数据序列。
47.具体的,追帧管理器15主要负责对待缓存至直播主缓冲队列11的直播帧数据进行丢帧操作以及对直播主缓冲队列11已缓存数据进行同步保护的操作。如果直播主缓冲队列11中已缓存的帧数据长度到达了丢帧阶段或者快速追帧阶段,追帧管理器15就是对数据接收入口收入的直播帧数据序列在缓存至直播主缓冲队列11之前进行追帧控制管理操作,以保证只有满足输入条件的待解码帧数据序列才可以缓存至直播主缓冲队列11。
48.进一步地,追帧管理器15具体用于:
49.获得直播服务端传输的直播帧数据序列,并确定直播主缓冲队列11的当前数据长度;
50.如果根据当前数据长度确定直播主缓冲队列11达到快速追帧条件,则通过快速追帧管理单元151对直播帧数据序列进行快速追帧处理,并将处理后的帧数据序列记为满足输入条件的待解码帧数据序列输入至直播主缓冲队列11;否则,
51.根据当前数据长度确定直播主缓冲队列11是否达到丢帧处理条件;
52.若是,则通过丢帧管理单元152对直播帧数据序列进行丢帧处理,并将处理后的帧数据序列记为满足输入条件的待解码帧数据序列输入至直播主缓冲队列11;
53.若否,则直播帧数据序列作为满足输入条件的待解码帧数据序列并输入至直播主缓冲队列11。
54.在本实施例中,追帧管理器15所执行的追帧管理操作需要基于上述多个步骤来实现。追帧管理器15首先需要获得的是直播服务端通过数据接收入口传入的直播帧数据序列,同时还可以确定出直播主缓冲队列11在当前执行时刻所具备的当前数据长度。当前数据长度具体可理解为直播主缓冲队列11中已缓存直播帧数据在当前执行时刻所具备的长度,且具体可以是视频主缓冲队列中已缓存视频帧数据在当前执行时刻所具备的长度。
55.在本实施例中,追帧管理器15可进一步判定当前数据长度是否满足快速追帧条件。示例性的,快速追帧条件相当于一个预先设定的帧数据长度追帧阈值,在当前数据长度大于帧数据长度追帧阈值时,则可认为直播主缓冲队列11达到快速追帧条件,此时可以调动快速追帧处理单元对直播帧数据序列进行快速追帧处理。
56.其中,快速追帧处理相当于从视频帧数据序列中按照一定的规则挑选出一个视频帧子序列进行丢弃处理,同时将相对应视频帧子序列内各视频帧数据时间戳的音频帧数据也进行丢弃处理,之后可将余下的视频帧数据序列以及音频帧数据序列作为待解码帧数据序列缓存至直播主缓冲队列11中的相应主缓冲队列,以此来快速缩短延时,保证直播帧数据播放的快速同步。
57.在本实施例中,追帧管理器15在确定直播主缓冲队列11未达到快速追帧条件时,还可以进一步通过当前数据长度判定直播主缓冲队列11是否满足丢帧处理条件。示例性的,丢帧处理条件同样相当于一个预先设定的帧数据长度丢帧阈值,该帧数据长度丢帧阈值原则上小于帧数据长度追帧阈值,即,在当前数据长度大于帧数据长度丢帧阈值时,可认为直播主缓冲队列11达到丢帧处理条件,此时可以调动丢帧处理单元对直播帧数据序列进行丢帧处理。
58.其中,丢帧处理相当于从音频帧数据序列中按照一定的规则间隔的挑选出少量的音频帧进行丢弃处理,同时对视频帧数据序列中找到相对所选定各待丢弃音频帧数据的视频帧数据进行快播标记,之后,可将丢弃后余下的音频帧数据序列以及进行快播标记后的
视频帧序列作为待解帧数据序列缓存至直播主缓冲队列11中的相应主缓冲队列,以此来适当缩短延时,保证直播帧数据播放的有效同步。
59.在此基础上,还存在一种情况,假设直播主缓冲队列11既不需要快速追帧处理,也不需要丢帧处理,则可认为直播主缓冲队列11当前处于正常缓冲阶段,此时可以将直播帧数据序列作为待解码帧数据序列正常缓存值直播主缓冲队列11。
60.进一步地,快速追帧管理单元151的具体执行步骤包括:
61.对所述直播帧数据序列所包括视频帧数据序列中的一个编码画面组(group ofpictures,gop)序列进行丢弃处理,形成第一目标视频帧序列;
62.确定所述编码gop序列中各视频帧数据的时间戳,对直播帧数据序列所包括音频帧数据序列中相对应时间戳的音频帧数据进行丢弃处理,形成第一目标音频帧序列;
63.将第一目标视频帧序列及第一目标音频帧序列作为满足输入条件的待解码帧数据序列分别输入至视频主缓冲队列及音频主缓冲队列。
64.在本实施例中,快速追帧管理单元151确定了快速追帧的具体实现为:从视频帧数据序列中选定的一个编码gop序列进行丢弃,同时还可以确定所选定编码gop序列中各视频帧数据的时间戳,以在音频帧数据序列中找到上述所确定各时间戳对应的音频帧数据,对选定的音频帧数据也同样进行丢弃处理,其中,时间戳具体可理解为帧数据在直播生产者一端生成时的的生成时间戳。由此实现了通过对音频帧数据序列以及视频帧数据序列进行一个编码gop序列的丢弃处理,以此来保证直播主缓冲区内所缓存的待播放帧数据与实际直播内容的快速同步。
65.进一步地,丢帧管理单元152的具体执行步骤包括:
66.根据所述当前数据长度确定相应的丢帧量;
67.从所述直播帧数据序列所包括音频帧数据序列中连续选定丢帧量的音频帧数据并丢弃,形成第二目标音频帧序列;
68.确定所丢弃各音频帧数据的时间戳,对所述直播帧数据序列所包括视频帧数据序列中相对应时间戳的视频帧数据进行快播标记标注,以使播放阶段对标注有快播标记的视频帧数据进行快速播放操作;
69.将所述直播帧数据序列所包括视频帧数据序列及第二音频帧序列作为满足输入条件的待解码帧数据序列分别输入至视频主缓冲队列及音频主缓冲队列。
70.在本实施例中,丢帧管理单元152确定了对直播帧数据进行间隔丢弃的具体实现,且丢帧管理单元152所执行的间隔丢弃还要面向直播帧数据中的音频帧数据。具体的,为保证直播视频在播放时具备一定程度的流畅性,丢帧管理单元152可以从直播服务端一个周期内所传输直播帧数据序列的内选定1

5帧的连续音频帧数据进行丢弃,其中,一个周期的时长可以基本限定在1~2秒的范围内,且所选定的具体丢帧量通过当前数据长度来决定,当前数据长度越长,丢弃量越大,但一般不超过5帧。
71.在本实施例中,对音频帧数据序列中所选定的连续音频帧数据进行丢弃后,还可以根据所丢弃各音频帧数据的时间戳从视频帧数据序列中选定相应时间戳的视频帧数据,对各视频帧数据进行快播标记的标注,由此当该周期内的直播帧数据通过直播播放器播放时,可以对标注有快播标记的视频帧数据进行快速播放。通过该种丢帧处理方式,能够有效避免视频数据解码异常导致花屏的产生。
72.进一步地,校验管理器13包括:编号管理单元131和校验管理单元132;
73.编号管理单元131,用于对直接服务端传输的直播帧数据序列进行编号管理,获得直播帧数据序列中各直播帧数据的帧数据关联信息;
74.校验管理单元132,用于根据帧数据关联信息,对直播帧数据序列中直播帧数据进行校验管理,获得目标帧数据序列并缓存至直播从缓冲队列12。
75.本实施例提供的直播数据管理系统中,通过增设直播从缓冲队列12的形式来实现直播帧数据的备份和校验,以此实现对直播主缓冲队列11中所缓存帧数据的修复。校验管理器13则承担了对待输入直播从缓冲队列12的直播帧数据进行校验的角色。具体的,直播帧数据的帧数据关联信息为一帧直播帧数据编号后所对应的编号与该直播帧数据原本携带的时间戳以及帧数据大小的关联记录。
76.在本实施例中,编号管理器对直播帧数据序列的编号管理为对其所包含各直播帧数据的按照接收顺序所进行的编号。校验管理单元132的校验管理主要在于通过帧数据关联信息对乱序的直播帧数据或者重复发送的直播帧数据进行的处理。
77.进一步地,编号管理单元131具体用于:
78.获取直播服务端传输的直播帧数据序列;
79.按接收顺序对直播帧数据序列中各直播帧数据进行编号,确定各直播帧数据的时间戳以及帧数据大小;
80.将各直播帧数据与相应的编号、时间戳及帧数据大小相关联构成帧数据关联信息。
81.需要说明的是,本实施例可以另行设定的一个数组暂时缓存所接收的直播帧数据序列,以校验管理单元132能够对所设定数组中的直播帧数据进行编号、乱序调整以及重复数据丢弃等校验操作。
82.进一步地,校验管理单元132具体用于:
83.根据各帧数据关联信息,对直播帧数据序列中各直播帧数据进行乱序校验以及重复接收校验;
84.确定乱序校验中未按时间戳顺序排列的乱序帧,对各乱序帧进行排序调整;和/或,
85.确定重复接收校验中存在重复接收的重复帧,对各重复帧进行丢弃处理;
86.将乱序帧排序调整后和/或重复帧丢弃处理后形成的直播帧数据序列确定为目标帧数据序列,并缓存至直播从缓冲队列12。
87.在本实施例中,乱序校验的实现可描述为:将直播帧数据序列中各直播帧数据按照编号排列后,确定各直播帧数据的时间戳是否也按时间顺序排列,如果是,则认为不存在乱序帧,如果否,则认为存在未按时间戳顺序排列的乱序帧,所进行的排序调整也就是将乱序帧在数组中以时间顺序进行位置重排。
88.在本实施例中,重复接收校验的实现可描述为:遍历直播帧数据序列中各直播帧数据,确定是否存在时间戳相同且帧数据大小也相同的直播帧数据,如果存在,则可认为直播帧数据序列中存在重复接收的重复帧,此时可以只保留重复帧中的其中一帧,丢弃其他帧。
89.可以知道的是,校验管理单元132所进行的乱序校验和重复接收校验之间不存在
先后关系,也不存在绝对的关联关系,只要满足相应的条件就可以进行相应的操作。
90.进一步地,交互管理器14具体用于:
91.采用设定的游标在直播从缓冲队列12的已缓存从帧序列中进行直播主缓冲队列11中队首帧数据的同步定位;
92.如果已缓存从帧序列中所定位帧数据与队首帧数据不同,确定直播主缓冲队列11满足第一交互条件;
93.将所定位帧数据的所在位置确定为待同步起始位置,在直播从缓冲队列12内获取从待同步起始位置开始的标准直播帧序列;
94.将标准直播帧序列内的帧数据复制到直播主缓冲队列11中,来替换直播主缓冲队列11中原始直播帧序列内的帧数据,以实现对直播主缓冲队列11的修复。
95.在本实施例中,交互管理器14的作用在于建立直播主缓冲队列11和直播从缓冲队列12之间的联系,使得直播从缓冲队列12中的直播帧数据可以对直播主缓冲队列11中的数据进行修复。交互管理器14所进行两个缓冲队列中的直播帧数据交互实现中,主要包括直播从缓冲队列12中所缓存全部数据对直播主缓冲队列11中数据的替换;以及直播从缓冲队列12中确定出的部分数据复制到直播主缓冲队列11。
96.需要说明的是,交互管理器14对直播主缓冲队列11的修复与追帧管理器15对直播主缓冲队列11的追帧管理相当于两种独立存在的管理形式,其对直播主缓冲队列11的修复时机主要体现在:直播主缓冲队列11中的帧数据将要输出至直播解码器之前;以及当直播主缓冲队列11中没有帧数据可以输出以及开始出现卡顿缓冲的时候。本实施例将上述第一个修复时机所对应的条件表述为直播主缓冲队列11满足了第一交互条件,将上述第二个修复时机所对应的条件表述为直播主缓冲队列11满足了第二交互条件。
97.进一步地,交互管理器14具体用于:
98.如果直播主缓冲队列11为空,则确定直播主缓冲队列11满足第二交互条件;
99.将直播从缓冲队列12中已缓存的直播帧数据序列复制到直播主缓冲队列11中,以实现对直播主缓冲队列11的修复。
100.具体的,当直播主缓冲队列11中已经没有所缓存的帧数据出现了卡顿缓冲的时候,直播主缓冲队列11满足第二交互条件,此时交互管理器14可以将直播分缓存队列中已缓存帧数据整体复制到直播主缓冲队列11中用于向直播解码器的输入以及通过播放器的播放。交互管理器14可以通过该种修复方式来保证在网络缓冲数据存在暂时卡顿是对直播从缓冲中数据进行复播的修复操作,以通过该种方式来提升观众用户的直播观看体验。同样的,也可以在直播客户端内部出现错误需要清空直播主缓冲队列11中所缓存帧数据的时候,也认为满足第二交互条件,同样可以通过将直播从缓冲队列12中全部数据到直播主缓冲队列11中的整体复制来实现直播数据的复播,以此来缓解直播内容的卡顿。
101.本实施例所提供直播数据管理系统,可以达到直播播放延时可控的效果,同时也可以在直播延时和直播流畅采用适应式的追帧模式来平衡缓存机制,以此来提高直播观众客户端的观看效果,此外,本实施例所提供的系统中采用双缓冲去设置,能够达到准确完整保存直播帧数据的效果,进而保证了直播快速回放和录制功能的有效扩展。
102.实施例二
103.图2给出了本发明实施例二提供的一种直播数据管理方法的执行示意图,该方法
适用于对输出直播编码器后,输入直播解码器前的直播流数据进行缓存管理的情况,具体可以应用于本发明上述实施例提供的一种直播数据管理系统,该直播数据管理系统可以集成在计算机设备上,该计算机设备可以作为直播应用软件用户终端为用户提供直播视频的观看入口。
104.如图2所示,本发明实施例二提供的一种直播数据管理方法,具体包括下述执行步骤:
105.s201、通过校验管理器对所述直播服务端传输的直播帧数据序列进行校验,并将校验后形成的目标帧数据序列缓存至所述直播从缓冲队列。
106.可以知道的是,本实施例所提供的方法主要应用在上述实施例一提供一种直播数据管理系统上,且具体由直播数据管理系统中的校验管理器以及交互管理器实现相应的步骤。
107.示例性的,在直播服务端将编码后的直播帧数据序列传输至观众用户的直播客户端时,集成在直播客户端上的直播数据管理系统可以通过校验管理器校验管理器来对数据接收入口所流入的直播帧数据序列进行编号管理和数据校验管理。
108.具体的,通过编号管理可以将直播帧数据序列中直播帧数据按照数据接收入口接收到的顺序进行编号,该操作可以在数据接收入口每次接收到新的直播数据序列时执行。通过数据校验管理可以根据直播帧数据序列中各直播帧数据的生成时间戳以及帧数据大小,结合预先确定的编号进行直播帧数据排列乱序以及重复出现的校验管理,以保证输入到直播从缓冲队列中的直播帧数据序列在排序上以及所包含的帧数据内容上都是有效的。
109.s202、通过交互管理器在监控到所述直播主缓冲队列满足交互条件时,采用所述直播从缓冲队列中已缓存帧数据对所述直播主缓冲队列进行修复。
110.示例性的,集成在直播客户端上的直播数据管理系统可以通过交互管理器建立直播主缓冲队列和直播从缓冲队列之间的联系,使得直播从缓冲队列中的直播帧数据可以对直播主缓冲队列中的数据进行修复。其中,交互管理器所进行两个缓冲队列中的直播帧数据交互实现中,主要包括直播从缓冲队列中所缓存全部数据对直播主缓冲队列中数据的替换;以及直播从缓冲队列中确定出的部分数据到直播主缓冲队列的复制和替换。
111.本发明实施例二提供的一种直播数据管理方法,有效解决现有缓冲模式中因单缓冲区以及缓冲长度固定带来的播放卡顿以及缓冲频繁等问题,同时避免了缓冲队列中存在乱序数据以及重复下发数据等情况的发生,很大程度降低了直播流数据的缓冲给直播原始录制以及回放录制带来的挑战,更进一步提升了用户的直播观看体验。
112.作为本发明实施例二的一个可选实施例,在上述实施例的基础上,该方法还优化包括了通过追帧管理器对所述直播服务端传输的直播帧数据序列进行追帧管理,确定满足输入条件的待解码直播帧数据并输入至所述直播主缓冲队列。
113.在本可选实施例中,集成在直播客户端上的直播数据管理系统可以通过追帧管理器对待缓存至直播主缓冲队列的直播帧数据进行丢帧操作以及对直播主缓冲队列已缓存数据进行同步保护的操作。如果直播主缓冲队列中已缓存的帧数据长度到达了丢帧阶段或者快速追帧阶段,追帧管理器就是对数据接收入口收入的直播帧数据序列在缓存至直播主缓冲队列之前进行追帧控制管理操作,以保证只有满足输入条件的待解码帧数据序列才可以缓存至直播主缓冲队列,以此解决直播帧数据播放的高延时。
114.此外,为更好理解上述实施例一所提供直播数据管理系统对缓存阶段的直播帧数据序列进行的直播数据管理操作,本实施例二给出了示例性的实现过程进行描述。图2a给出了本发明实施例二所提供一种直播数据管理方法的实现示例图,如图2a所示,站在了系统所包括各功能模块的角度给出了每个上述实施例所提供直播数据管理系统中每个功能模块在对直播帧数据序列进行缓存管理时的执行操作实现。具体的,图2a中包括了直播数据管理系统中的追帧管理器21、校验管理器22、交互管理器23、直播主缓冲队列24以及直播从缓冲队列25。其直播数据管理方法的具体实现步骤包括:
115.s1、追帧管理器接收直播服务端传输的直播帧数据序列,并通过直播主缓冲队列的当前数据长度确定是否需要指追帧处理。
116.其中,本步骤的追帧处理判定中包括了快速追帧管理判定以及丢帧处理判定
117.s2、若判定结果为否,则追帧管理器将直播帧数据序列缓存至直播主缓冲队列。
118.其中,判定结果为否可理解为快速追帧管理判定以及丢帧处理判定均为否。
119.s3、若判断需要进行快速追帧处理,则追帧管理器执行快速追帧处理操作,并将处理后获得帧数据序列缓存至直播主缓冲队列。
120.s4、若判定需要进行丢帧处理,则追帧管理器执行丢帧处理操作,并将处理后获得帧数据序列缓存至直播主缓冲队列。
121.s5、校验管理器接收直播服务端传输的直播帧数据序列,对所述直播服务端传输的直播帧数据序列进行校验,并将校验后形成的目标帧数据序列缓存至所述直播从缓冲队列。
122.s6、交互管理器通过直播主缓冲队列与直播从缓冲队列的比对,判定直播主缓冲队列是否满足第一交互条件。
123.s7、若满足第一交互条件,则交互管理器采用从直播从缓冲队列中确定出的标准直播帧序列替换所述直播主缓冲队列中的原始直播帧序列。
124.s8、交互管理器判定直播主缓冲队列是否为空,来判断直播主缓冲队列是否满足第二交互条件。
125.s9、若满足第二交互条件,则交互管理器将所述直播从缓冲队列中已缓存的直播帧数据序列复制到所述直播主缓冲队列中。
126.此外,直播主缓冲队列中已缓存的数据总是从队首向直播解码器输出待解码的帧数据;直播从缓冲队列中所缓存数据达到最大设定长度后,新收录的直播帧数据将从队首开始覆盖原有的直播帧数据。
127.需要说明的是,图2a仅是一个系统中各功能模块的执行步骤示例图,图中所给出的步骤序号以及各步骤在图中的排序关系并不直接说明各步骤之间的先后关系,对于一些步骤而言,其可能为并列关系。
128.实施例三
129.图3给出了本发明实施例三提供的一种计算机设备的硬件结构示意图,具体地,该计算机设备用于作为直播应用软件的用户终端,集成有上述实施例一所提供直播数据管理系统,用于对直接服务端传输的且并未输入直播解码器的直播流数据进行缓存管理。该计算机设备具体可以包括:处理器和存储装置。存储装置中存储有至少一条指令,且指令由所述处理器执行,使得所述计算机设备可以执行上述实施例二所提供直播数据管理方法对应
的操作步骤。
130.参照图3,该计算机设备具体可以包括:处理器40、存储装置41、显示屏42、输入装置43、输出装置44以及通信装置45。该计算机设备中处理器40的数量可以是一个或者多个,图3中以一个处理器40为例。该计算机设备中存储装置41的数量可以是一个或者多个,图3中以一个存储装置41为例。该计算机设备的处理器40、存储装置41、显示屏42、输入装置43、输出装置44以及通信装置45可以通过总线或者其他方式连接,图3中以通过总线连接为例。
131.具体的,实施例中,处理器40执行存储装置41中存储的一个或多个程序时,可以实现如下操作:通过校验管理器对所述直播服务端传输的直播帧数据序列进行校验,并将校验后形成的目标帧数据序列缓存至所述直播从缓冲队列;通过交互管理器在监控到所述直播主缓冲队列满足交互条件时,采用所述直播从缓冲队列中已缓存帧数据对所述直播主缓冲队列进行修复。
132.本发明实施例还提供一种计算机可读存储介质,所述存储介质中的程序由计算机设备的处理器执行时,使得计算机设备能够执行如上述实施例所述的直播数据管理方法。示例性的,上述实施例所述的直播数据管理方法包括:通过校验管理器对所述直播服务端传输的直播帧数据序列进行校验,并将校验后形成的目标帧数据序列缓存至所述直播从缓冲队列;通过交互管理器在监控到所述直播主缓冲队列满足交互条件时,采用所述直播从缓冲队列中已缓存帧数据对所述直播主缓冲队列进行修复。
133.需要说明的是,对于装置、计算机设备、存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
134.通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,计算机设备,或者网络设备等)执行本发明任意实施例所述的直播数据管理方法。
135.值得注意的是,上述直播数据管理系统中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
136.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
137.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行
了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1