一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据去重方法、装置及存储介质与流程

2022-02-21 08:46:02 来源:中国专利 TAG:


1.本技术涉及互联网技术领域,尤其涉及一种数据去重方法、装置及存储介质。


背景技术:

2.随着互联网技术的发展,以及人们互动需求的增加,网络直播成为人们进行信息传递、交流互动的一种常用互通方式。
3.目前,用户可以在直播平台上申请成为主播,向其他用户分享直播数据流。例如主播通过推流设备将相应的直播数据流上传至直播服务器,其他用户通过拉流设备从直播服务器拉流,获取相应的直播数据流,从而,可以在终端上观看主播所分享的信息。
4.然而,当前网络直播方式不再局限于室内直播,户外直播,移动直播也是常用的直播方式。这样,在户外或移动状态下,网络不稳定,在直播过程中,拉流设备与直播服务器之间的部分链路出现断连重新连接,由于直播服务器的快启模式,最终会发送一部分缓存数据给拉流设备。在这种场景下,对于拉流设备来说获取的数据中有部分重复数据,用户获取重复数据,在播放重复数据时会发生音视频回退的现象,影响用户的观看体验。


技术实现要素:

5.为解决现有技术中存在的问题,本技术提供一种数据去重方法、装置及存储介质。
6.第一方面,本技术实施例提供一种数据去重方法,包括:
7.获取待处理直播数据流,所述待处理直播数据流包括至少一个音视频包;
8.对于所述至少一个音视频包中的一个音视频包执行以下操作,其中,所述至少一个音视频包中的音视频包携带音视频标识,所述音视频标识根据所述至少一个音视频包中的音视频包在所述待处理直播数据流中的顺序确定:
9.根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包;
10.若判断所述至少一个音视频包中的一个音视频包为重复获取的音视频包,则丢弃所述至少一个音视频包中的一个音视频包。
11.在一种可能的实现方式中,所述根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包,包括:
12.判断已获取的所述待处理直播数据流的音视频包中,是否有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包;
13.若已获取的所述待处理直播数据流的音视频包中,有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包,则确定所述至少一个音视频包中的一个音视频包为重复获取的音视频包。
14.在一种可能的实现方式中,在所述确定所述至少一个音视频包中的一个音视频包为重复获取的音视频包之前,还包括:
15.判断所述至少一个音视频包中的一个音视频包的音视频标识,是否是所述待处理直播数据流中音视频包的音视频标识达到预设结束标识后重置的音视频标识;
16.所述确定所述至少一个音视频包中的一个音视频包为重复获取的音视频包,包括:
17.若所述至少一个音视频包中的一个音视频包的音视频标识,不是所述待处理直播数据流中音视频包的音视频标识达到所述预设结束标识后重置的音视频标识,则确定所述至少一个音视频包中的一个音视频包为重复获取的音视频包。
18.在一种可能的实现方式中,所述至少一个音视频包中的音视频包的音视频标识根据所述至少一个音视频包中的音视频包在所述待处理直播数据流中的顺序单调递增;
19.所述判断已获取的所述待处理直播数据流的音视频包中,是否有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包,包括:
20.根据已获取的所述待处理直播数据流的音视频包,确定已获取的音视频包的最大音视频标识;
21.判断所述至少一个音视频包中的一个音视频包的音视频标识,是否小于或等于所述已获取的音视频包的最大音视频标识;
22.若所述至少一个音视频包中的一个音视频包的音视频标识,小于或等于所述已获取的音视频包的最大音视频标识,则确定已获取的所述待处理直播数据流的音视频包中,有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包。
23.在一种可能的实现方式中,所述至少一个音视频包中的一个音视频包的音视频标识根据所述至少一个音视频包中的一个音视频包在所述待处理直播数据流中的顺序单调递增;
24.所述判断所述至少一个音视频包中的一个音视频包的音视频标识,是否是所述待处理直播数据流中音视频包的音视频标识达到预设结束标识后重置的音视频标识,包括:
25.获取所述待处理直播数据流中在所述至少一个音视频包中的一个音视频包的第一预设方向的间隔预设数目个音视频包的第一音视频包的音视频标识,以及所述待处理直播数据流中在所述至少一个音视频包中的一个音视频包的第二预设方向的间隔所述预设数目个音视频包的第二音视频包的音视频标识,其中,所述第二预设方向和所述第一预设方向相反;
26.若所述第一音视频包的音视频标识大于或等于所述第二音视频包的音视频标识,则确定所述至少一个音视频包中的一个音视频包的音视频标识,是所述待处理直播数据流中音视频包的音视频标识达到所述预设结束标识后重置的音视频标识。
27.在一种可能的实现方式中,在所述根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包之前,还包括:
28.判断所述待处理直播数据流是否为新的推流;
29.所述根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包,包括:
30.若所述待处理直播数据流不为新的推流,则根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的
音视频包。
31.在一种可能的实现方式中,所述待处理直播数据流携带推流时间戳;
32.所述判断所述待处理直播数据流是否为新的推流,包括:
33.根据所述推流时间戳,判断是否出现推流时间戳变更;
34.若判断出现推流时间戳变更,则确定所述待处理直播数据流为新的推流。
35.在一种可能的实现方式中,在所述根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包之前,还包括:
36.确定所述至少一个音视频包中的一个音视频包的音视频标识是否为空;
37.所述根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包,包括:
38.若所述至少一个音视频包中的一个音视频包的音视频标识不为空,则根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包。
39.在一种可能的实现方式中,在所述根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包之后,还包括:
40.若判断所述至少一个音视频包中的一个音视频包不为重复获取的音视频包,则记录所述至少一个音视频包中的一个音视频包的音视频标识,并在记录所述至少一个音视频包中的一个音视频包的音视频标识后,去除所述至少一个音视频包中的一个音视频包的音视频标识,以使终端基于去除音视频标识后的至少一个音视频包中的一个音视频包进行音视频播放。
41.第二方面,本技术实施例提供一种数据去重装置,包括:
42.获取模块,用于获取待处理直播数据流,所述待处理直播数据流包括至少一个音视频包,对于所述至少一个音视频包中的一个音视频包执行以下操作,其中,所述至少一个音视频包中的音视频包携带音视频标识,所述音视频标识根据所述至少一个音视频包中的音视频包在所述待处理直播数据流中的顺序确定:
43.第一判断模块,用于根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包;
44.处理模块,用于若判断所述至少一个音视频包中的一个音视频包为重复获取的音视频包,则丢弃所述至少一个音视频包中的一个音视频包。
45.在一种可能的实现方式中,所述第一判断模块,具体用于:
46.判断已获取的所述待处理直播数据流的音视频包中,是否有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包;
47.若已获取的所述待处理直播数据流的音视频包中,有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包,则确定所述至少一个音视频包中的一个音视频包为重复获取的音视频包。
48.在一种可能的实现方式中,所述第一判断模块,还用于:
49.判断所述至少一个音视频包中的一个音视频包的音视频标识,是否是所述待处理
直播数据流中音视频包的音视频标识达到预设结束标识后重置的音视频标识;
50.若所述至少一个音视频包中的一个音视频包的音视频标识,不是所述待处理直播数据流中音视频包的音视频标识达到所述预设结束标识后重置的音视频标识,则确定所述至少一个音视频包中的一个音视频包为重复获取的音视频包。
51.在一种可能的实现方式中,所述至少一个音视频包中的音视频包的音视频标识根据所述至少一个音视频包中的音视频包在所述待处理直播数据流中的顺序单调递增;
52.所述第一判断模块,具体用于:
53.根据已获取的所述待处理直播数据流的音视频包,确定已获取的音视频包的最大音视频标识;
54.判断所述至少一个音视频包中的一个音视频包的音视频标识,是否小于或等于所述已获取的音视频包的最大音视频标识;
55.若所述至少一个音视频包中的一个音视频包的音视频标识,小于或等于所述已获取的音视频包的最大音视频标识,则确定已获取的所述待处理直播数据流的音视频包中,有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包。
56.在一种可能的实现方式中,所述至少一个音视频包中的一个音视频包的音视频标识根据所述至少一个音视频包中的一个音视频包在所述待处理直播数据流中的顺序单调递增;
57.所述第一判断模块,具体用于:
58.获取所述待处理直播数据流中在所述至少一个音视频包中的一个音视频包的第一预设方向的间隔预设数目个音视频包的第一音视频包的音视频标识,以及所述待处理直播数据流中在所述至少一个音视频包中的一个音视频包的第二预设方向的间隔所述预设数目个音视频包的第二音视频包的音视频标识,其中,所述第二预设方向和所述第一预设方向相反;
59.若所述第一音视频包的音视频标识大于或等于所述第二音视频包的音视频标识,则确定所述至少一个音视频包中的一个音视频包的音视频标识,是所述待处理直播数据流中音视频包的音视频标识达到所述预设结束标识后重置的音视频标识。
60.在一种可能的实现方式中,还包括第二判断模块,用于在所述第一判断模块根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包之前,判断所述待处理直播数据流是否为新的推流;
61.所述第一判断模块,具体用于:
62.若所述待处理直播数据流不为新的推流,则根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包。
63.在一种可能的实现方式中,所述待处理直播数据流携带推流时间戳;
64.所述第二判断模块,具体用于:
65.根据所述推流时间戳,判断是否出现推流时间戳变更;
66.若判断出现推流时间戳变更,则确定所述待处理直播数据流为新的推流。
67.在一种可能的实现方式中,还包括第三判断模块,用于在所述第一判断模块根据
所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包之前,确定所述至少一个音视频包中的一个音视频包的音视频标识是否为空;
68.所述第一判断模块,具体用于:
69.若所述至少一个音视频包中的一个音视频包的音视频标识不为空,则根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包。
70.在一种可能的实现方式中,所述处理模块,还用于:
71.若判断所述至少一个音视频包中的一个音视频包不为重复获取的音视频包,则记录所述至少一个音视频包中的一个音视频包的音视频标识,并在记录所述至少一个音视频包中的一个音视频包的音视频标识后,去除所述至少一个音视频包中的一个音视频包的音视频标识,以使终端基于去除音视频标识后的至少一个音视频包中的一个音视频包进行音视频播放。
72.第三方面,本技术实施例提供一种拉流设备,包括:
73.处理器;
74.存储器;以及
75.计算机程序;
76.其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。
77.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行第一方面所述的方法。
78.第五方面,本技术实施例提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行第一方面所述的方法。
79.本技术实施例提供的数据去重方法、装置及存储介质,该方法通过获取待处理直播数据流,该待处理直播数据流包括至少一个音视频包,其中,对于上述至少一个音视频包中的一个音视频包可以执行以下操作,上述音视频包携带音视频标识,该音视频标识根据上述音视频包在上述待处理直播数据流中的顺序确定:根据上述音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包,如果判断上述音视频包为重复获取的音视频包,则丢弃上述音视频包。即本技术实施例利用音视频标识来唯一性标记每一个音视频包,从而,通过音视频包的音视频标识来判断和丢弃重复的音视频数据,保证发给用户的是不重复数据,解决了在直播过程中,因中间链路重新连接,导致用户获取部分重复的数据,播放重复数据发生的音视频回退的现象。
附图说明
80.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
81.图1为本技术实施例提供的一种直播架构示意图;
82.图2为本技术实施例提供的一种数据去重方法运行的应用环境图;
83.图3为本技术实施例提供的一种数据去重方法的流程示意图;
84.图4为本技术实施例提供的一种数据去重示意图;
85.图5为本技术实施例提供的另一种数据去重方法的流程示意图;
86.图6为本技术实施例提供的另一种数据去重示意图;
87.图7为本技术实施例提供的一种数据去重装置的结构示意图;
88.图8为本技术实施例提供的另一种数据去重装置的结构示意图;
89.图9a为本技术提供的一种拉流设备的基本硬件架构示意图;
90.图9b为本技术提供的另一种拉流设备的基本硬件架构示意图。
具体实施方式
91.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
92.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
93.随着网络基础设施的完善和终端硬件的升级,直播成为一种热门的交互方式。
94.相关技术中,如图1所示,在直播内容分发网络(content delevery network,cdn)架构中,主播通过推流设备将相应的直播数据流上传至直播服务器,其他用户通过拉流设备从直播服务器拉流,获取相应的直播数据流。用户在向拉流设备拉流时,拉流设备向直播服务器回源。这个过程中,如果拉流设备与直播服务器之间的部分链路出现断连和重新连接,由于直播服务器的快启模式,最终会发送一部分缓存数据给拉流设备。这样,拉流设备会获取部分重复数据,用户播放重复数据会发生音视频回退的现象,影响用户的观看体验。
95.为了解决上述问题,本技术实施例提出一种数据去重方法,利用音视频标识来唯一性标记每一个音视频包,从而,通过直播数据流中音视频包的音视频标识来判断和丢弃重复的音视频数据,保证发给用户的是不重复数据,解决了在直播过程中,因中间链路重新连接,导致用户获取部分重复的数据,播放重复数据发生的音视频回退的现象。
96.可选地,图2为本技术实施例提供的数据去重方法运行的应用环境图。图2只是以示例的方式描述了本技术实施例提供的数据去重方法的一种可能的应用环境,本技术实施例提供的数据去重方法的应用环境不限于图2所示的应用环境。
97.如图2所示,以直播中包括一个主播和一个用户为例,上述应用环境可以包括终端210、推流设备220、直播服务器230、拉流设备240和终端250。终端210可以与推流设备220进行通信,推流设备220和拉流设备240都可以和直播服务器230进行通信,终端250可以与拉
流设备240进行通信。
98.终端210和终端250可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端210可以是主播使用的终端设备,在该终端设备中可以具备视频直播软件,并且该终端设备上可以具备用于收录用户语音的麦克风。终端210可以通过推流设备220,上传直播数据流至直播服务器230,该直播数据流包括至少一个音视频包,其中,对于该至少一个音视频包中的一个音视频包可以执行以下操作,上述音视频包携带音视频标识,该音视频标识根据上述音视频包在上述直播数据流中的顺序确定:根据上述音视频包的音视频标识来判断和丢弃重复的音视频数据。直播服务器230接收终端210上传的直播数据流。终端250可以是用户使用的终端设备,在该终端设备中也可以具备视频直播软件,以及用于收录用户语音的麦克风。终端250可从拉流设备240获取数据,如终端210上传的直播数据流,并播放该直播数据流。
99.为了避免在直播过程中,因中间链路重新连接,导致用户获取部分重复的数据,播放重复数据发生的音视频回退的现象,拉流设备240可以通过上述音视频包的音视频标识来判断和丢弃重复的音视频数据,保证发给终端250的是不重复数据。
100.另外,上述拉流设备240可以包括通过系统总线连接的处理器、图形处理单元、存储介质、内存、网络接口、显示屏幕、扬声器和输入设备,包括麦克风。其中,拉流设备240的存储介质存储有操作系统,还包括一种数据去重系统,该数据去重系统用于实现一种数据去重方法。该处理器用于提供计算和控制能力,支撑整个拉流设备240的运行。拉流设备240中的图形处理单元用于至少提供视频图像的绘制,如直播画面的绘制,内存为存储介质中的数据去重系统的运行提供环境,网络接口用于与直播服务器230进行网络通信,如获取终端210上传的直播数据流等。显示屏幕用于显示视频,如直播视频画面。扬声器用于播放音频,如连麦主播声音、连麦用户声音等,输入设备用于接收用户输入的命令或数据等,输入设备包括麦克风用于接收用户输入的语音等。
101.下面以几个实施例为例对本技术的技术方案进行描述,对于相同或相似的概念或过程可能在某些实施例不再赘述。
102.图3为本技术实施例提供的一种数据去重方法的流程示意图,本实施例的执行主体可以为图2中的拉流设备,具体执行主体可以根据实际应用场景确定,本技术实施例对此不做特别限制。如图3所示,本技术实施例提供的数据去重方法可以包括如下步骤:
103.s301:获取待处理直播数据流,该待处理直播数据流包括至少一个音视频包,其中,对于上述至少一个音视频包中的一个音视频包可以执行以下操作s302-s303,其中,上述至少一个音视频包中的音视频包携带音视频标识,该音视频标识根据上述至少一个音视频包中的音视频包在上述待处理直播数据流中的顺序确定。
104.这里,上述拉流设备可以对上述至少一个音视频包中的每一个音视频包执行以下操作s302-s303,解决在直播过程中,因中间链路重新连接,导致用户获取部分重复的数据,播放重复数据发生的音视频回退的现象。上述待处理直播数据流可以根据实际情况确定,例如上述图1直播cdn架构中的直播数据流。上述待处理直播数据流中可以包括一个或多个音视频包,每一个音视频包都携带一个音视频标识,该音视频标识用来唯一性标记每一个音视频包。例如,上述音视频标识可以为包号。
105.示例性的,上述拉流设备从直播服务器获取待处理直播数据流,该待处理直播数
据流可以是主播通过推流设备向直播服务器上传的直播数据流。其中,推流设备或直播服务器在流媒体格式(flashvideo,flv)标签(tag)上为每个音视频包打上音视频标识,打标后在传输过程中音视频包保持标识不变,从而,拉流设备可以依靠音视频包的标识,来判断和丢弃重复的音视频数据,解决因中间链路重新连接导致的发送给用户重复音视频数据的问题。
106.另外,上述音视频包携带的音视频标识可以根据音视频包在上述待处理直播数据流中的顺序确定,例如根据上述音视频包在上述待处理直播数据流中的顺序单调递增。示例性的,推流设备或直播服务器根据上述音视频包在上述待处理直播数据流中的顺序,从包号1开始,在flv tag上给音视频包写入单调递增的包号。
107.除上述外,上述推流设备或直播服务器为了避免上述至少一个音视频包中的音视频包的音视频标识根据其顺序无限增大,不好管理,可以预先设置结束标识,例如以上述包号1开始为例,上述结束标识可以为包号100或包号1000等,具体可以根据实际需要确定。这样,上述推流设备或直播服务器可以在音视频包的音视频标识达到上述结束标识重置音视频标识,例如以包号1开始,包号100结束,当包号到达100时重置为由1开始的单增序号,方便管理。
108.s302:根据上述至少一个音视频包中的一个音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包。
109.示例性的,上述拉流设备在获取待处理直播数据流后,可以判断已获取的上述待处理直播数据流的音视频包中,是否有与上述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包。如果已获取的上述待处理直播数据流的音视频包中,有与上述音视频包的音视频标识相同的音视频包,则上述拉流设备可以确定上述音视频包为重复获取的音视频包。如果已获取的上述待处理直播数据流的音视频包中,没有与上述音视频包的音视频标识相同的音视频包,则上述拉流设备可以确定上述音视频包不为重复获取的音视频包。
110.例如以至少一个音视频包中的音视频包的音视频标识根据音视频包在上述待处理直播数据流中的顺序单调递增为例,上述拉流设备可以根据已获取的上述待处理直播数据流的音视频包,确定已获取的音视频包的最大音视频标识,进而,判断上述至少一个音视频包中的一个音视频包的音视频标识,是否小于或等于上述已获取的音视频包的最大音视频标识。如果上述音视频包的音视频标识,小于或等于上述已获取的音视频包的最大音视频标识,则上述拉流设备可以确定已获取的上述待处理直播数据流的音视频包中,有与上述音视频包的音视频标识相同的音视频包,上述音视频包为重复获取的音视频包。如果上述音视频包的音视频标识,大于上述已获取的音视频包的最大音视频标识,则上述拉流设备可以确定已获取的上述待处理直播数据流的音视频包中,没有与上述音视频包的音视频标识相同的音视频包,上述音视频包不为重复获取的音视频包。
111.这里,考虑到上述推流设备或直播服务器在音视频包的音视频标识达到上述结束标识重置音视频标识的情况,为了提高重复数据判断的准确性,上述拉流设备在上述确定上述至少一个音视频包中的一个音视频包为重复获取的音视频包之前,还可以判断上述音视频包的音视频标识,是否是上述待处理直播数据流中音视频包的音视频标识达到预设结束标识后重置的音视频标识。如果上述音视频包的音视频标识,不是上述待处理直播数据
流中音视频包的音视频标识达到预设结束标识后重置的音视频标识,则确定上述音视频包为重复获取的音视频包。
112.即上述拉流设备在根据上述至少一个音视频包中的一个音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包时,可以首先判断已获取的上述待处理直播数据流的音视频包中,是否有与上述音视频包的音视频标识相同的音视频包,如果有,则进一步判断上述音视频包的音视频标识,是否是上述待处理直播数据流中音视频包的音视频标识达到预设结束标识后重置的音视频标识,如果不是,则确定上述音视频包为重复获取的音视频包,提高了判断结果的准确性。
113.另外,还以上述至少一个音视频包中的音视频包的音视频标识根据音视频包在上述待处理直播数据流中的顺序单调递增为例,上述拉流设备在判断上述至少一个音视频包中的一个音视频包的音视频标识,是否是上述待处理直播数据流中音视频包的音视频标识达到预设结束标识后重置的音视频标识时,可以先获取上述待处理直播数据流中在上述音视频包的第一预设方向的间隔预设数目个音视频包的第一音视频包的音视频标识,以及上述待处理直播数据流中在上述音视频包的第二预设方向的间隔预设数目个音视频包的第二音视频包的音视频标识,其中,第二预设方向和第一预设方向相反。如果第一音视频包的音视频标识大于或等于第二音视频包的音视频标识,则上述拉流设备可以确定上述音视频包的音视频标识,是待处理直播数据流中音视频包的音视频标识达到预设结束标识后重置的音视频标识。
114.例如以上述推流设备或直播服务器在flv tag上为每个音视频包打包号,以包号1开始,包号100结束为例,上述拉流设备判断已获取的上述待处理直播数据流的音视频包中,有与上述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包,例如上述音视频包的音视频标识为包号6,与已获取的上述待处理直播数据流的音视频包的音视频标识相同,可以进一步获取上述待处理直播数据流中在上述音视频包的第一预设方向的间隔预设数目个音视频包的第一音视频包的音视频标识,例如在上述音视频包的左侧间隔5个音视频包的第一音视频包的音视频标识为包号100,并获取在上述音视频包的第二预设方向的间隔预设数目个音视频包的第二音视频包的音视频标识,例如在上述音视频包的右侧间隔5个音视频包的第二音视频包的音视频标识为包号12。第一音视频包的音视频标识大于第二音视频包的音视频标识,则上述拉流设备确定上述音视频包的音视频标识,是上述待处理直播数据流中音视频包的音视频标识达到预设结束标识后重置的音视频标识。
115.其中,上述间隔的预设数目可以根据实际情况确定,例如上述间隔5个音视频包。
116.s303:若判断上述至少一个音视频包中的一个音视频包为重复获取的音视频包,则丢弃上述音视频包。
117.在本技术实施例中,如果判断上述至少一个音视频包中的一个音视频包为重复获取的音视频包,则上述拉流设备可以丢弃上述音视频包,保证发给用户的是不重复数据。如果判断上述音视频包不为重复获取的音视频包,则上述拉流设备可以记录上述音视频包的音视频标识,并在记录上述音视频包的音视频标识后,去除上述音视频包的音视频标识,以使终端基于去除音视频标识后的上述音视频包进行音视频播放,保证终端不会出现解码错误。
118.这里,为了更好地理解本技术实施例,图4结合图2,从终端210、推流设备220、直播
服务器230、拉流设备240和终端250之间的交互,给出一种数据去重示意图。示例性的,如图所示,主播通过终端210推流,终端210通过推流设备220将直播数据流至直播服务器230。推流设备220或直播服务器230为每个音视频包打上音视频标识。例如推流设备220或直播服务器230在flv tag上为每个音视频包打上包号,该包号单调递增,如以包号1开始单调递增,而且,该包号达到预设结束标识后开始重置,如以包号1开始,包号100结束,当包号到达100时重置为由1开始的单增序号。在传输过程中音视频包保持标识不变,即保持包号不变,从而,拉流设备240可以依靠音视频包的标识,例如包号,来判断和丢弃重复的音视频数据,解决因中间链路重新连接导致的发送给用户重复音视频数据的问题。例如拉流设备240根据每一音视频包的音视频标识,判断该音视频包是否为重复获取的音视频包,如检查每一音视频包的包号,根据该包号判断音视频包是否为重复获取的音视频包。如果音视频包为重复获取的音视频包,则拉流设备240丢弃该音视频包,即重复数据丢弃。如果音视频包不为重复获取的音视频包(不是重复数据),则拉流设备240记录该音视频包的音视频标识(例如包号),并在记录该音视频包的音视频标识后,去除该音视频包的音视频标识。用户使用终端250从拉流设备240拉流,获取直播数据流,并播放该直播数据流。
119.本技术实施例中,上述拉流设备通过获取待处理直播数据流,该待处理直播数据流包括至少一个音视频包,其中,对于上述至少一个音视频包中的一个音视频包可以执行以下操作,上述音视频包携带音视频标识,该音视频标识根据上述音视频包在上述待处理直播数据流中的顺序确定:根据上述音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包,如果判断上述音视频包为重复获取的音视频包,则丢弃上述音视频包。即本技术实施例利用音视频标识来唯一性标记每一个音视频包,从而,通过音视频包的音视频标识来判断和丢弃重复的音视频数据,保证发给用户的是不重复数据,解决了在直播过程中,因中间链路重新连接,导致用户获取部分重复的数据,播放重复数据发生的音视频回退的现象。
120.另外,本技术实施例中上述拉流设备在根据上述至少一个音视频包中的一个音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包之前,还考虑判断上述待处理直播数据流是否为新的推流。如果上述待处理直播数据流不为新的推流,则上述拉流设备执行上述根据上述至少一个音视频包中的一个音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包的步骤。如果上述待处理直播数据流为新的推流,则上述拉流设备可以记录上述待处理直播数据流中音视频包携带的音视频标识等,以便后续基于记录的音视频标识进行后续数据去重处理。而且,上述拉流设备在根据上述至少一个音视频包中的一个音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包之前,还考虑确定上述音视频包的音视频标识是否为空。如果上述音视频包的音视频标识不为空,则上述拉流设备执行上述根据上述音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包的步骤。如果上述音视频包的音视频标识为空,说明上述推流设备或直播服务器没有给上述音视频包添加音视频标识,上述拉流设备确定上述音视频包不为重复获取的音视频包,不丢弃。
121.其中,在上述根据上述至少一个音视频包中的一个音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包之前,上述拉流设备可以判断上述待处理直播数据流是否为新的推流,和/或,确定上述音视频包的音视频标识是否为空。这里,在这两步操
作均执行的情况下,这两步操作的前后顺序可以根据实际情况确定,例如先执行判断上述待处理直播数据流是否为新的推流的步骤,再执行确定上述音视频包的音视频标识是否为空的步骤。图5为本技术实施例提出的另一种数据去重方法的流程示意图。如图5所示,该方法包括:
122.s501:获取待处理直播数据流,该待处理直播数据流包括至少一个音视频包,其中,对于上述至少一个音视频包中的一个音视频包可以执行以下操作步骤s501-s505,其中,上述至少一个音视频包中的音视频包携带音视频标识,该音视频标识根据上述至少一个音视频包中的音视频包在所述待处理直播数据流中的顺序确定。
123.其中,步骤s501与上述步骤s301的实现方式相同,此处不再赘述。
124.s502:判断上述待处理直播数据流是否为新的推流。
125.这里,上述待处理直播数据流可以携带推流时间戳,该推流时间戳表示上述待处理直播数据流的推流时间。推流时间戳与直播数据流对应,即不同的直播数据流的推流时间戳不同。
126.上述拉流设备可以根据上述待处理直播数据流携带的推流时间戳,判断是否出现推流时间戳变更。如果判断出现推流时间戳变更,则上述拉流设备确定上述待处理直播数据流为新的推流。如果判断没有出现推流时间戳变更,则上述拉流设备确定上述待处理直播数据流不为新的推流。
127.其中,上述拉流设备可以基于记录的上一直播数据流携带的推流时间戳和上述待处理直播数据流携带的推流时间戳,判断是否出现推流时间戳变更。即如果上述两个推流时间戳相同,上述拉流设备判断没有出现推流时间戳变更;如果上述两个推流时间戳不同,上述拉流设备判断出现推流时间戳变更。
128.上述推流设备或直播服务器可以在直播流的元数据(metadata)中记录推流时间戳,用来表示这路流的推流时间。
129.s503:若上述待处理直播数据流不为新的推流,则确定上述音视频包的音视频标识是否为空。
130.在本技术实施例中,如果上述待处理直播数据流为新的推流,则说明上述拉流设备没有获取过上述待处理直播数据流的任何数据,上述待处理直播数据流中没有重复数据。上述拉流设备可以记录上述待处理直播数据流中音视频包携带的音视频标识和上述待处理直播数据流携带的推流时间戳,以便后续基于记录的信息进行数据去重处理。
131.这里,如果上述待处理直播数据流不为新的推流,上述拉流设备还可以进一步确定上述音视频包的音视频标识是否为空,即确定上述推流设备或直播服务器是否给上述音视频包添加音视频标识。如果上述音视频包的音视频标识不为空,说明上述推流设备或直播服务器给上述音视频包添加了音视频标识,上述拉流设备可以基于上述音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包。如果上述音视频包的音视频标识为空,说明上述推流设备或直播服务器没有给上述音视频包添加音视频标识,上述拉流设备确定上述音视频包不为重复获取的音视频包,不丢弃。
132.s504:若上述音视频包的音视频标识不为空,则根据上述音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包。
133.其中,以上述推流设备或直播服务器在音视频包添加音视频标识,例如包号,该包
号以包号1开始单调递增为例,上述拉流设备确定上述音视频包的音视频标识是否为空时,可以判断上述音视频包的音视频标识是否为0。如果上述音视频包的音视频标识为0,上述拉流设备确定上述音视频包的音视频标识为空。如果上述音视频包的音视频标识不为0,例如为1、2或3等,上述拉流设备确定上述音视频包的音视频标识不为空。
134.另外,上述根据上述音视频包的音视频标识,判断上述音视频包是否为重复获取的音视频包的实现方式与上述步骤s302的实现方式相同,此处不再赘述。
135.s505:若判断上述音视频包为重复获取的音视频包,则丢弃上述音视频包。
136.其中,步骤s505与上述步骤s303的实现方式相同,此处不再赘述。
137.本技术实施例中,上述拉流设备在根据上述至少一个音视频包中的一个音视频包的音视频标识,判断该音视频包是否为重复获取的音视频包之前,还可以考虑判断上述待处理直播数据流是否为新的推流,且确定上述音视频包的音视频标识是否为空,在上述待处理直播数据流不为新的推流,上述音视频包的音视频标识不为空时,执行后续数据去重操作,提高数据去重的准确率,满足实际应用需要。而且,本技术实施例利用音视频标识来唯一性标记每一个音视频包,从而,通过音视频包的音视频标识来判断和丢弃重复的音视频数据,保证发给用户的是不重复数据,解决了在直播过程中,因中间链路重新连接,导致用户获取部分重复的数据,播放重复数据发生的音视频回退的现象。
138.这里,如图6所示,以上述推流设备或直播服务器在音视频包添加音视频标识,例如包号,该包号以包号1开始单调递增,且在直播流中记录推流时间戳,用来表示这路流的推流时间为例。上述拉流设备可以首先从直播服务器获取待处理直播数据流,该待处理直播数据流包括至少一个音视频包,对于上述至少一个音视频包中的一个音视频包可以执行以下操作,其中,上述至少一个音视频包中的音视频包携带音视频标识,该音视频标识根据上述至少一个音视频包中的音视频包在所述待处理直播数据流中的顺序确定:根据上述待处理直播数据流携带的推流时间戳,判断是否出现推流时间戳变更,如果判断出现推流时间戳变更,则确定上述待处理直播数据流为新的推流,可以记录上述待处理直播数据流中音视频包携带的包号和推流时间戳,以便后续基于记录的信息进行数据去重处理。如果判断没有出现推流时间戳变更,则上述拉流设备确定上述待处理直播数据流不为新的推流,可以进一步确定上述音视频包的包号是否为空,例如判断上述音视频包的包号是否为0。如果上述音视频包的包号为0,上述拉流设备确定上述音视频包的包号为空,进而,确定上述音视频包没有打标,不为重复获取的音视频包,不丢弃。如果上述音视频包的包号不为0,例如为1、2或3等,上述拉流设备确定上述音视频包的包号不为空,进而,根据上述音视频包的包号,判断上述音视频包是否为重复获取的音视频包。
139.示例性的,上述拉流设备可以根据已获取的所述待处理直播数据流的音视频包,确定已获取的音视频包的最大包号,从而,判断上述音视频包的包号,是否小于或等于上述已获取的音视频包的最大包号。如果上述音视频包的包号,小于或等于上述已获取的音视频包的最大包号,则上述拉流设备确定已获取的上述待处理直播数据流的音视频包中,有与上述视频包的包号相同的音视频包。如果上述音视频包的包号,大于上述已获取的音视频包的最大包号,则上述拉流设备确定已获取的上述待处理直播数据流的音视频包中,没有与上述视频包的包号相同的音视频包,从而,确定上述音视频包不为重复获取的音视频包,不丢弃。并且,上述拉流设备在确定已获取的上述待处理直播数据流的音视频包中,有
与上述视频包的包号相同的音视频包后,还可以进一步判断上述音视频包的包号,是否是上述待处理直播数据流中音视频包的包号达到预设结束标识后重置的包号。如果上述音视频包的包号,不是上述待处理直播数据流中音视频包的包号达到预设结束标识后重置的包号,则上述拉流设备确定上述音视频包为重复获取的音视频包,丢弃上述音视频包。如果上述音视频包的包号,是上述待处理直播数据流中音视频包的包号达到预设结束标识后重置的包号,则上述拉流设备确定上述音视频包不为重复获取的音视频包,不丢弃。
140.其中,与现有数据去重相比,上述拉流设备利用音视频标识,即包号来唯一性标记每一个音视频包,从而,通过直播数据流中音视频包的包号来判断和丢弃重复的音视频数据,保证发给用户的是不重复数据,解决了在直播过程中,因中间链路重新连接,导致用户获取部分重复的数据,播放重复数据发生的音视频回退的现象。
141.对应于上文实施例的数据去重方法,图7为本技术实施例提供的数据去重装置的结构示意图。为了便于说明,仅示出了与本技术实施例相关的部分。图7为本技术实施例提供的一种数据去重装置的结构示意图,该数据去重装置70包括:获取模块701、第一判断模块702以及处理模块703。这里的数据去重装置可以是上述拉流设备本身,或者是实现拉流设备的功能的芯片或者集成电路。这里需要说明的是,获取模块、第一判断模块以及处理模块的划分只是一种逻辑功能的划分,物理上两者可以是集成的,也可以是独立的。
142.其中,获取模块701,用于获取待处理直播数据流,所述待处理直播数据流包括至少一个音视频包,对于所述至少一个音视频包中的一个音视频包执行以下操作,其中,所述至少一个音视频包中的音视频包携带音视频标识,所述音视频标识根据所述至少一个音视频包中的音视频包在所述待处理直播数据流中的顺序确定。
143.第一判断模块702,用于根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包。
144.处理模块703,用于若判断所述至少一个音视频包中的一个音视频包为重复获取的音视频包,则丢弃所述至少一个音视频包中的一个音视频包。
145.在一种可能的实现方式中,所述第一判断模块702,具体用于:
146.判断已获取的所述待处理直播数据流的音视频包中,是否有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包;
147.若已获取的所述待处理直播数据流的音视频包中,有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包,则确定所述至少一个音视频包中的一个音视频包为重复获取的音视频包。
148.在一种可能的实现方式中,所述第一判断模块702,还用于:
149.判断所述至少一个音视频包中的一个音视频包的音视频标识,是否是所述待处理直播数据流中音视频包的音视频标识达到预设结束标识后重置的音视频标识;
150.若所述至少一个音视频包中的一个音视频包的音视频标识,不是所述待处理直播数据流中音视频包的音视频标识达到所述预设结束标识后重置的音视频标识,则确定所述至少一个音视频包中的一个音视频包为重复获取的音视频包。
151.在一种可能的实现方式中,所述至少一个音视频包中的音视频包的音视频标识根据所述至少一个音视频包中的音视频包在所述待处理直播数据流中的顺序单调递增。
152.所述第一判断模块702,具体用于:
153.根据已获取的所述待处理直播数据流的音视频包,确定已获取的音视频包的最大音视频标识;
154.判断所述至少一个音视频包中的一个音视频包的音视频标识,是否小于或等于所述已获取的音视频包的最大音视频标识;
155.若所述至少一个音视频包中的一个音视频包的音视频标识,小于或等于所述已获取的音视频包的最大音视频标识,则确定已获取的所述待处理直播数据流的音视频包中,有与所述至少一个音视频包中的一个音视频包的音视频标识相同的音视频包。
156.在一种可能的实现方式中,所述至少一个音视频包中的音视频包的音视频标识根据所述至少一个音视频包中的音视频包在所述待处理直播数据流中的顺序单调递增。
157.所述第一判断模块702,具体用于:
158.获取所述待处理直播数据流中在所述至少一个音视频包中的一个音视频包的第一预设方向的间隔预设数目个音视频包的第一音视频包的音视频标识,以及所述待处理直播数据流中在所述至少一个音视频包中的一个音视频包的第二预设方向的间隔所述预设数目个音视频包的第二音视频包的音视频标识,其中,所述第二预设方向和所述第一预设方向相反;
159.若所述第一音视频包的音视频标识大于或等于所述第二音视频包的音视频标识,则确定所述至少一个音视频包中的一个音视频包的音视频标识,是所述待处理直播数据流中音视频包的音视频标识达到所述预设结束标识后重置的音视频标识。
160.在一种可能的实现方式中,所述处理模块703,还用于:
161.若判断所述至少一个音视频包中的一个音视频包不为重复获取的音视频包,则记录所述至少一个音视频包中的一个音视频包的音视频标识,并在记录所述至少一个音视频包中的一个音视频包的音视频标识后,去除所述至少一个音视频包中的一个音视频包的音视频标识,以使终端基于去除音视频标识后的至少一个音视频包中的一个音视频包进行音视频播放。
162.本技术实施例提供的装置,可用于执行上述图3方法实施例的技术方案,其实现原理和技术效果类似,本技术实施例此处不再赘述。
163.图8为本技术实施例提供的另一种数据去重装置的结构示意图。在图7基础上,上述数据去重装置70还包括:第二判断模块704和第三判断模块705。
164.其中,第二判断模块704,用于在所述第一判断模块702根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包之前,判断所述待处理直播数据流是否为新的推流。
165.所述第一判断模块702,具体用于:
166.若所述待处理直播数据流不为新的推流,则根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包。
167.在一种可能的实现方式中,所述待处理直播数据流携带推流时间戳。
168.所述第二判断模块704,具体用于:
169.根据所述推流时间戳,判断是否出现推流时间戳变更;
170.若判断出现推流时间戳变更,则确定所述待处理直播数据流为新的推流。
171.其中,第三判断模块705,用于在所述第一判断模块702根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包之前,确定所述至少一个音视频包中的一个音视频包的音视频标识是否为空。
172.所述第一判断模块702,具体用于:
173.若所述至少一个音视频包中的一个音视频包的音视频标识不为空,则根据所述至少一个音视频包中的一个音视频包的音视频标识,判断所述至少一个音视频包中的一个音视频包是否为重复获取的音视频包。
174.另外,上述第三判断模块705,还可以用于在所述第二判断模块704判断所述待处理直播数据流是否为新的推流之后,若所述待处理直播数据流不为新的推流,则确定所述至少一个音视频包中的一个音视频包的音视频标识是否为空。
175.本技术实施例提供的装置,可用于执行上述图5方法实施例的技术方案,其实现原理和技术效果类似,本技术实施例此处不再赘述。
176.可选地,图9a和9b示意性地分别提供本技术所述拉流设备的一种可能的基本硬件架构。
177.参见图9a和9b,拉流设备包括至少一个处理器901以及通信接口903。进一步可选的,还可以包括存储器902和总线904。
178.其中,拉流设备中,处理器901的数量可以是一个或多个,图9a和9b仅示意了其中一个处理器901。可选地,处理器901,可以是中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)或者数字信号处理器(digital signal processor,dsp)。如果拉流设备具有多个处理器901,多个处理器901的类型可以不同,或者可以相同。可选地,拉流设备的多个处理器901还可以集成为多核处理器。
179.存储器902存储计算机指令和数据;存储器902可以存储实现本技术提供的上述数据去重方法所需的计算机指令和数据,例如,存储器902存储用于实现上述数据去重方法的步骤的指令。存储器902可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(rom)、固态硬盘(ssd)、硬盘(hdd)、光盘),易失性存储器。
180.通信接口903可以为所述至少一个处理器提供信息输入/输出。也可以包括以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
181.可选的,通信接口903还可以用于拉流设备与其它计算设备或者终端进行数据通信。
182.进一步可选的,图9a和9b用一条粗线表示总线904。总线904可以将处理器901与存储器902和通信接口903连接。这样,通过总线904,处理器901可以访问存储器902,还可以利用通信接口903与其它计算设备或者终端进行数据交互。
183.在本技术中,拉流设备执行存储器902中的计算机指令,使得拉流设备实现本技术提供的上述数据去重方法,或者使得拉流设备部署上述的数据去重装置。
184.从逻辑功能划分来看,示例性的,如图9a所示,存储器902中可以包括获取模块701、第一判断模块702以及处理模块703。这里的包括仅仅涉及存储器中所存储的指令被执行时可以分别实现获取模块、第一判断模块以及处理模块的功能,而不限定是物理上的结
构。
185.一种可能设计,如图9b所示,存储器902中包括第二判断模块704和第三判断模块705,这里的包括仅仅涉及存储器中所存储的指令被执行时可以分别实现第二判断模块和第三判断模块的功能,而不限定是物理上的结构。
186.另外,上述的拉流设备除了可以像上述图9a和9b通过软件实现外,也可以作为硬件模块,或者作为电路单元,通过硬件实现。
187.本技术提供一种计算机可读存储介质,所述计算机程序产品包括计算机指令,所述计算机指令指示计算设备执行本技术提供的上述数据去重方法。
188.本技术实施例提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行本技术提供的上述数据去重方法。
189.本技术提供一种芯片,包括至少一个处理器和通信接口,所述通信接口为所述至少一个处理器提供信息输入和/或输出。进一步,所述芯片还可以包含至少一个存储器,所述存储器用于存储计算机指令。所述至少一个处理器用于调用并运行该计算机指令,以执行本技术提供的上述数据去重方法。
190.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
191.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献