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

音视频数据同步方法、装置、设备及存储介质与流程

2022-06-25 05:58:42 来源:中国专利 TAG:


1.本发明涉及音视频传输领域,尤其涉及一种音视频数据同步方法、装置、设备及存储介质。


背景技术:

2.音视频同步指的是音频和视频同步,即视频播放的声音和视频显示的画面保持一致。在音视频同步过程中,可将视频同步到音频上,以音频的播放速度为基准来同步视频,或者将音频同步到视频上,以视频的播放速度为基准来同步音频,或者将视频和音频同步外部的时钟上,选择一个外部时钟为基准,视频和音频的播放速度都以该时钟为标准。
3.在音视频传输过程中,由于音视频数据量大小的差异以及网络状况的不同,导致在音视频采集、编码、传输和解码的过程中,音视频同步失真较大。


技术实现要素:

4.本发明提供了一种音视频数据同步方法、装置、设备及存储介质,用于减小音视频同步失真。
5.本发明第一方面提供了一种音视频数据同步方法,包括:获取第一同步数据包,其中,所述第一同步数据包包括2帧视频数据和3帧音频数据;对所述2帧视频数据进行视频编码,并对所述3帧音频数据进行音频编码,得到第二同步数据包,其中,所述第二同步数据包包括2帧视频编码和3帧音频编码;对所述第二同步数据包进行实时传输数据处理,得到目标传输数据包;根据所述目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将所述目标传输数据包进行插入处理,得到第三同步数据包;对所述第三同步数据包进行解码,得到解码的同步数据包,其中,所述解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据。
6.可选的,在本发明第一方面的第一种实现方式中,所述对所述2帧视频数据进行视频编码,并对所述3帧音频数据进行音频编码,得到第二同步数据包,包括:获取2帧视频数据,并对所述2帧视频数据进行预测编码和变换,得到预测变换的2帧视频数据;对所述预测变换的2帧视频数据进行量化和熵编码,得到2帧视频编码;获取3帧音频数据,并对所述3帧音频数据进行采样和量化,得到采样量化的3帧音频数据;对所述采样量化的3帧音频数据进行编码,得到3帧音频编码;根据所述2帧视频编码和所述3帧音频编码,得到第二同步数据包。
7.可选的,在本发明第一方面的第二种实现方式中,所述对所述第二同步数据包进行实时传输数据处理,得到目标传输数据包,包括:获取所述第二同步数据包中所述2帧视频编码的每一帧视频编码字节数,得到第一帧视频编码字节数和第二帧视频编码字节数;分别判断所述第一帧视频编码字节数和所述第二帧视频编码字节数是否小于或等于预置的字节数;若所述第一帧视频编码字节数和所述第二帧视频编码字节数都小于或等于所述预置的字节数,则对所述第二同步数据包进行打包处理,得到目标传输数据包。
8.可选的,在本发明第一方面的第三种实现方式中,所述根据所述目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将所述目标传输数据包进行插入处理,得到第三同步数据包,包括:获取所述目标传输数据包的同步数据时间戳;根据所述同步数据时间戳确定对应的目标同步数据包;获取所述目标传输数据包中每一帧视频编码时间戳和每一帧音频编码时间戳;根据所述每一帧视频编码时间戳将所述2帧视频编码插入所述目标同步数据包中对应的视频数据列表,并根据所述每一帧音频编码时间戳将所述3帧音频编码插入所述目标同步数据包中对应的音频数据列表,得到第三同步数据包。
9.可选的,在本发明第一方面的第四种实现方式中,所述对所述第三同步数据包进行解码,得到解码的同步数据包,包括:对所述第三同步数据包中所述2帧视频编码进行熵解码和反量化,得到熵解码和反量化的2帧视频编码;对所述熵解码和反量化的2帧视频编码进行反变换和预测解码,得到解码的2帧视频数据;对所述第三同步数据包中所述3帧音频编码进行解协议和解封装,得到3帧音频码流数据;对所述3帧音频码流数据进行音频解码,得到解码的3帧音频数据;根据所述解码的2帧视频数据和所述解码的3帧音频数据,得到解码的同步数据包。
10.可选的,在本发明第一方面的第五种实现方式中,在所述对所述2帧视频数据进行视频编码,并对所述3帧音频数据进行音频编码,得到第二同步数据包之后,还包括:获取所述第二同步数据包中所述2帧视频编码的每一帧视频编码字节数,得到第一帧视频编码字节数和第二帧视频编码字节数;分别判断所述第一帧视频编码字节数和所述第二帧视频编码字节数是否小于或等于预置的字节数;若所述第一帧视频编码字节数和所述第二帧视频编码字节数同时大于所述预置的字节数,则将所述2帧视频编码中第一帧视频编码进行分包处理,得到多个第一帧子帧视频编码,并将所述2帧视频编码中第二帧视频编码进行分包处理,得到多个第二帧子帧视频编码;根据所述多个第一帧子帧视频编码、所述多个第二帧子帧视频编码和所述3帧音频编码,得到多个传输数据包。
11.可选的,在本发明第一方面的第六种实现方式中,在所述根据所述多个第一帧子帧视频编码、所述多个第二帧子帧视频编码和所述3帧音频编码,得到多个传输数据包之后,还包括:获取所述多个传输数据包中任意一个传输数据包的同步数据时间戳,其中,所述多个传输数据包具有相同的同步数据时间戳;根据所述同步数据时间戳确定对应的目标同步数据包;获取任意一个第一帧子帧视频编码的第一帧视频编码时间戳、每个第一帧子帧视频编码的第一帧子帧视频编码序列号、任意一个第二帧子帧视频编码的第二帧视频编码时间戳和每个第二帧子帧视频编码的第二帧子帧视频编码序列号,并获取所述3帧音频编码的每一帧音频编码时间戳;根据所述第一帧视频编码时间戳将所述多个第一帧子帧视频编码插入所述目标同步数据包中对应的视频数据第一列表,并根据所述第一帧子帧视频编码序列号将所述多个第一帧子帧视频编码插入所述视频数据第一列表中对应的列表位置;根据所述第二帧视频编码时间戳将所述多个第二帧子帧视频编码插入所述目标同步数据包中对应的视频数据第二列表,并根据所述第二帧子帧视频编码序列号将所述多个第二帧子帧视频编码插入所述视频数据第二列表中对应的列表位置;根据所述每一帧音频编码时间戳将所述3帧音频编码插入所述目标同步数据包中对应的音频数据列表,得到第三同步数据包。
12.本发明第二方面提供了一种音视频数据同步装置,包括:获取模块,用于获取第一
同步数据包,其中,所述第一同步数据包包括2帧视频数据和3帧音频数据;编码模块,用于对所述2帧视频数据进行视频编码,并对所述3帧音频数据进行音频编码,得到第二同步数据包,其中,所述第二同步数据包包括2帧视频编码和3帧音频编码;传输模块,用于对所述第二同步数据包进行实时传输数据处理,得到目标传输数据包;插入模块,用于根据所述目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将所述目标传输数据包进行插入处理,得到第三同步数据包;解码模块,用于对所述第三同步数据包进行解码,得到解码的同步数据包,其中,所述解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据。
13.可选的,在本发明第二方面的第一种实现方式中,所述编码模块具体用于:获取2帧视频数据,并对所述2帧视频数据进行预测编码和变换,得到预测变换的2帧视频数据;对所述预测变换的2帧视频数据进行量化和熵编码,得到2帧视频编码;获取3帧音频数据,并对所述3帧音频数据进行采样和量化,得到采样量化的3帧音频数据;对所述采样量化的3帧音频数据进行编码,得到3帧音频编码;根据所述2帧视频编码和所述3帧音频编码,得到第二同步数据包。
14.可选的,在本发明第二方面的第二种实现方式中,所述传输模块包括:获取单元,用于获取所述第二同步数据包中所述2帧视频编码的每一帧视频编码字节数,得到第一帧视频编码字节数和第二帧视频编码字节数;判断单元,用于分别判断所述第一帧视频编码字节数和所述第二帧视频编码字节数是否小于或等于预置的字节数;打包单元,用于若所述第一帧视频编码字节数和所述第二帧视频编码字节数都小于或等于所述预置的字节数,则对所述第二同步数据包进行打包处理,得到目标传输数据包。
15.可选的,在本发明第二方面的第三种实现方式中,所述插入模块具体用于:获取所述目标传输数据包的同步数据时间戳;根据所述同步数据时间戳确定对应的目标同步数据包;获取所述目标传输数据包中每一帧视频编码时间戳和每一帧音频编码时间戳;根据所述每一帧视频编码时间戳将所述2帧视频编码插入所述目标同步数据包中对应的视频数据列表,并根据所述每一帧音频编码时间戳将所述3帧音频编码插入所述目标同步数据包中对应的音频数据列表,得到第三同步数据包。
16.可选的,在本发明第二方面的第四种实现方式中,所述解码模块具体用于:对所述第三同步数据包中所述2帧视频编码进行熵解码和反量化,得到熵解码和反量化的2帧视频编码;对所述熵解码和反量化的2帧视频编码进行反变换和预测解码,得到解码的2帧视频数据;对所述第三同步数据包中所述3帧音频编码进行解协议和解封装,得到3帧音频码流数据;对所述3帧音频码流数据进行音频解码,得到解码的3帧音频数据;根据所述解码的2帧视频数据和所述解码的3帧音频数据,得到解码的同步数据包。
17.可选的,在本发明第二方面的第五种实现方式中,所述音视频数据同步装置还包括:分包处理模块,用于获取所述第二同步数据包中所述2帧视频编码的每一帧视频编码字节数,得到第一帧视频编码字节数和第二帧视频编码字节数;分别判断所述第一帧视频编码字节数和所述第二帧视频编码字节数是否小于或等于预置的字节数;若所述第一帧视频编码字节数和所述第二帧视频编码字节数同时大于所述预置的字节数,则将所述2帧视频编码中第一帧视频编码进行分包处理,得到多个第一帧子帧视频编码,并将所述2帧视频编码中第二帧视频编码进行分包处理,得到多个第二帧子帧视频编码;根据所述多个第一帧
子帧视频编码、所述多个第二帧子帧视频编码和所述3帧音频编码,得到多个传输数据包。
18.可选的,在本发明第二方面的第六种实现方式中,所述音视频数据同步装置还包括:分包插入模块,用于获取所述多个传输数据包中任意一个传输数据包的同步数据时间戳,其中,所述多个传输数据包具有相同的同步数据时间戳;根据所述同步数据时间戳确定对应的目标同步数据包;获取任意一个第一帧子帧视频编码的第一帧视频编码时间戳、每个第一帧子帧视频编码的第一帧子帧视频编码序列号、任意一个第二帧子帧视频编码的第二帧视频编码时间戳和每个第二帧子帧视频编码的第二帧子帧视频编码序列号,并获取所述3帧音频编码的每一帧音频编码时间戳;根据所述第一帧视频编码时间戳将所述多个第一帧子帧视频编码插入所述目标同步数据包中对应的视频数据第一列表,并根据所述第一帧子帧视频编码序列号将所述多个第一帧子帧视频编码插入所述视频数据第一列表中对应的列表位置;根据所述第二帧视频编码时间戳将所述多个第二帧子帧视频编码插入所述目标同步数据包中对应的视频数据第二列表,并根据所述第二帧子帧视频编码序列号将所述多个第二帧子帧视频编码插入所述视频数据第二列表中对应的列表位置;根据所述每一帧音频编码时间戳将所述3帧音频编码插入所述目标同步数据包中对应的音频数据列表,得到第三同步数据包。
19.本发明第三方面提供了一种音视频数据同步设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述音视频数据同步设备执行上述的音视频数据同步方法。
20.本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的音视频数据同步方法。
21.本发明提供的技术方案中,获取第一同步数据包,其中,第一同步数据包包括2帧视频数据和3帧音频数据;对2帧视频数据进行视频编码,并对3帧音频数据进行音频编码,得到第二同步数据包,其中,第二同步数据包包括2帧视频编码和3帧音频编码;对第二同步数据包进行实时传输数据处理,得到目标传输数据包;根据目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将目标传输数据包进行插入处理,得到第三同步数据包;对第三同步数据包进行解码,得到解码的同步数据包,其中,解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据。本发明实施例中,利用时间戳将采集时间存在相关性的音频数据和视频数据存储到一个固定的同步数据结构中,并在采集、编码、传输、接收、解码和播放过程中始终加以同步控制,从而减小了音视频同步失真。
附图说明
22.图1为本发明实施例中音视频数据同步方法的一个实施例示意图;
23.图2为本发明实施例中音视频数据同步方法的另一个实施例示意图;
24.图3为本发明实施例中音视频数据同步装置的一个实施例示意图;
25.图4为本发明实施例中音视频数据同步装置的另一个实施例示意图;
26.图5为本发明实施例中音视频数据同步设备的一个实施例示意图。
具体实施方式
27.本发明提供了一种音视频数据同步方法、装置、设备及存储介质,用于减小音视频
message protocol,icmp)、地址解析协议(address resolution protocol,arp)、逆向地址解析协议(reverse address resolution protocol,rarp)和实时传输协议(real-time transport protocol,rtp)。传输数据使用的数据传输协议可以是实时传输协议rtp,rtp包括报头和有效载荷,其中,rtp报头包括rtp时间戳和序列号。在音视频数据同步终端对音视频数据进行数据打包时,由于最大传输单元mtu的限制,1帧视频数据可能会大于最大传输单元mtu,若1帧视频数据大于最大传输单元mtu,则对1帧视频数据进行分包处理,得到多个传输数据包。
38.具体的,(1)音视频数据同步终端获取第二同步数据包中2帧视频编码的每一帧视频编码字节数,得到第一帧视频编码字节数和第二帧视频编码字节数;例如,音视频数据同步终端获取第二同步数据包中2帧视频编码的每一帧视频编码字节数,得到第一帧视频编码字节数为128,第二帧视频编码字节数为256。(2)音视频数据同步终端分别判断第一帧视频编码字节数和第二帧视频编码字节数是否小于或等于预置的字节数;例如,预置的字节数为1024,判断第一帧视频编码字节数是否小于或等于1024,并判断第二帧视频编码字节数是否小于或等于1024。(3)若第一帧视频编码字节数和第二帧视频编码字节数都小于或等于预置的字节数,则对第二同步数据包进行打包处理,得到目标传输数据包。例如,第一帧视频编码字节数为128,第二帧视频编码字节数为256,若预置的字节数为1024,则第一帧视频编码字节数和第二帧视频编码字节数都小于1024,对第二同步数据包进行打包处理,得到目标传输数据包。
39.104、根据目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将目标传输数据包进行插入处理,得到第三同步数据包;
40.其中,音视频数据同步终端从目标传输数据包中提取出三个数据单元组《t
syncblock
,t
tsrtp
,n
sequncenumber
》,tsyncblock用于表示传输数据包的同步数据时间戳,ttsrtp用于表示传输数据包中音视频数据的帧时间戳,nsequncenumber用于表示传输数据包中视频数据每一帧的子帧序列号。例如,若1帧视频数据大于最大传输单元mtu,则对1帧视频数据进行分包处理,得到多个传输数据包,其中,每个传输数据包都具有三个数据单元组《t
syncblock
,t
tsrtp
,n
sequncenumber
》。
41.具体的,音视频数据同步终端获取目标传输数据包的同步数据时间戳;例如,音视频数据同步终端将2帧视频数据的时间戳和3帧音频数据的时间戳中最小的时间戳作为目标传输数据包的同步数据时间戳,若2帧视频数据的时间戳和3帧音频数据的时间戳中最小的时间戳为“978321600000”,则确定“978321600000”为目标传输数据包的同步数据时间戳。
42.音视频数据同步终端根据同步数据时间戳确定对应的目标同步数据包;例如,同步数据包可以是a、b、c、d、e,每个同步数据包具有不同的同步数据时间戳,同步数据包a的同步数据时间戳为“978321600000”、同步数据包b的同步数据时间戳为“978321601000”、同步数据包c的同步数据时间戳为“978321602000”、同步数据包d的同步数据时间戳为“978321603000”、同步数据包e的同步数据时间戳为“978321604000”,若目标传输数据包的同步数据时间戳为“978321600000”,则与同步数据包a的同步数据时间戳相同,将同步数据包a确定为目标同步数据包。
43.音视频数据同步终端获取目标传输数据包中每一帧视频编码时间戳和每一帧音
频编码时间戳;例如,目标传输数据包中2帧视频编码的第一帧视频编码时间戳为“978321600000”、第二帧视频编码时间戳为“978321601000”,目标传输数据包中3帧音频编码的第一帧音频编码时间戳为“978321601000”、第二帧音频编码时间戳为“978321602000”、第三帧音频编码时间戳为“978321603000”。
44.音视频数据同步终端根据每一帧视频编码时间戳将2帧视频编码插入目标同步数据包中对应的视频数据列表,并根据每一帧音频编码时间戳将3帧音频编码插入目标同步数据包中对应的音频数据列表,得到第三同步数据包。例如,若第一帧视频编码时间戳为“978321600000”、第二帧视频编码时间戳为“978321601000”,则根据视频编码时间戳从小到大的顺序,将2帧视频编码插入目标同步数据包中对应的视频数据列表;若第一帧音频编码时间戳为“978321601000”、第二帧音频编码时间戳为“978321602000”、第三帧音频编码时间戳为“978321603000”,则根据音频编码时间戳从小到大的顺序,将3帧音频编码插入目标同步数据包中对应的音频数据列表,得到第三同步数据包。
45.105、对第三同步数据包进行解码,得到解码的同步数据包,其中,解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据。
46.其中,视频解码的解码标准包括多种解码标准,例如,h.261、h.263、h.264等解码标准,解码标准可以是h.264,采用h.264解码标准的解码过程包括熵解码、反量化、反dct变换和预测解码。音频解码是将数字信号还原成模拟信号,音频解码的过程包括解协议、解封装和音频解码。音视频数据同步终端通过对第三同步数据包进行解码,得到解码的同步数据包,解码的同步数据包可以直接用于播放,其中,解码的同步数据包中音视频数据在时间上具有强相关性,即音视频数据同步。
47.本发明实施例中,获取第一同步数据包,其中,第一同步数据包包括2帧视频数据和3帧音频数据;对2帧视频数据进行视频编码,并对3帧音频数据进行音频编码,得到第二同步数据包;对第二同步数据包进行实时传输数据处理,得到目标传输数据包;根据目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将目标传输数据包进行插入处理,得到第三同步数据包;对第三同步数据包进行解码,得到解码的同步数据包,其中,解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据,从而提高了音视频数据在时间上的强相关性,减小了音视频同步失真。
48.请参阅图2,本发明实施例中音视频数据同步方法的另一个实施例包括:
49.201、获取第一同步数据包,其中,第一同步数据包包括2帧视频数据和3帧音频数据;
50.其中,音视频数据同步终端根据人类生物学声音视像系统对同步的感知能力,将δt在[-125ms,45ms]区间内的可检测阈值作为门限,并将采集到的原始声音数据和原始视频数据作为同一时刻获取的音视频数据,在可检测阈值范围内有2帧视频数据和3帧音频数据的时间戳满足作为同一时刻获取音视频数据的要求,在音视频同步中音视频数据同步终端根据这5个数据单元的时间戳对音视频数据进行同步。
[0051]
音视频数据同步终端将2帧视频数据和3帧音频数据封装到一个同步数据包中,并将本同步数据包中时间戳最小的数据单元的时间戳作为本同步数据包的同步数据时间戳。时间戳用于表示一份数据在某个特定时间之前已经存在的、完整的、可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。例如,在一个同步数据包中,2帧视频数据中第一
帧视频数据的生成时间为“2001-01-01 12:00:00”,对应的时间戳为“978321600000”,第二帧视频数据的生成时间为“2001-01-01 12:00:01”,对应的时间戳为“978321601000”,3帧音频数据中第一帧音频数据的生成时间为“2001-01-0112:00:01”,对应的时间戳为“978321601000”,第二帧音频数据的生成时间为“2001-01-01 12:00:02”,对应的时间戳为“978321602000”,第三帧音频数据的生成时间为“2001-01-01 12:00:03”,对应的时间戳为“978321603000”,其中,时间戳的单位为ms,即第一帧视频数据的时间戳最小,将对应的时间戳“978321600000”作为本同步数据包的同步数据时间戳。
[0052]
202、对2帧视频数据进行视频编码,并对3帧音频数据进行音频编码,得到第二同步数据包,其中,第二同步数据包包括2帧视频编码和3帧音频编码;
[0053]
其中,视频编码的编码标准包括多种编码标准,例如,h.261、h.263、h.264等编码标准,编码标准可以是h.264,h.264是国际标准化组织(iso)和国际电信联盟(itu)共同提出的新一代数字视频压缩格式,采用h.264编码标准的编码过程包括预测编码、变换、量化和熵编码,预测编码包括帧内预测编码和帧间预测编码,帧内预测编码用于缩减图像的空间冗余,帧间预测编码通过利用连续帧中的时间冗余来进行运动估计和补偿,变换可以是离散余弦变换dct。
[0054]
音频编码是音视频数据同步终端将连续的模拟信号转换成离散的数字信号,音频编码的过程包括采样、量化和编码,其中,采样是指用每隔指定时间间隔的信号样本值序列来代替原来在时间上连续的信号,量化是用有限个幅度值近似表示原来在时间上连续变化的幅度值,把模拟信号的连续幅度变为有限数量、有指定时间间隔的离散值,编码是根据指定规则,把量化后的离散值用二进制数表示。音频编码包括多种编码方式,例如,波形编码、参数编码和混合编码,音频编码方式可以是波形编码,波形编码是根据语音信号波形导出相应的数字编码形式,波形编码的编码过程包括采样、量化和编码。
[0055]
具体的,音视频数据同步终端获取2帧视频数据,并对2帧视频数据进行预测编码和变换,得到预测变换的2帧视频数据;例如,获取2帧视频数据,通过h.264编码标准将每个视频帧分离成由像素组成的宏块,得到多个宏块,将每个宏块划分成8*8个子宏块,在同一帧视频内,当对其中一个宏块进行帧内预测编码时,根据周围的宏块进行预测,得到预测值,对预测值和实际值的差值进行编码,对2帧视频数据进行宏块扫描,得到2帧视频相同的主体对象,计算主体对象的运动矢量,将2帧视频中主体对象以外的图像去除,得到帧间预测编码数据,对帧间预测编码数据进行离散余弦变换dct,得到预测变换的2帧视频数据。
[0056]
音视频数据同步终端对预测变换的2帧视频数据进行量化和熵编码,得到2帧视频编码;例如,获取预测变换的2帧视频数据的多个宏块,对多个宏块进行4*4整数矩阵变换,得到多个4*4的整数变换系数块,将每个整数变换系数块的系数绝对值和对应的4*4正整数量化矩阵相乘,得到量化的2帧视频数据,对量化的2帧视频数据中的多个4*4宏块进行熵编码,得到2帧视频编码。
[0057]
音视频数据同步终端获取3帧音频数据,并对3帧音频数据进行采样和量化,得到采样量化的3帧音频数据;例如,对3帧音频数据中的1帧音频数据进行采样,根据指定的时间间隔将这1帧音频数据在时间上连续变化的模拟信号取出多个连续的采样值,多个连续的采样值用于表示这1帧音频数据,对多个连续的采样值进行量化,根据量化等级规则,将多个连续的采样值划分为多个量化等级集合,每个量化等级集合中的采样值都赋予相同的
值,即量化值,其中,量化值为二进制数。采用相同的方式对3帧音频数据的其他2帧音频数据进行采样和量化,得到采样量化的2帧音频数据,即对3帧音频数据进行采样和量化,得到采样量化的3帧音频数据。
[0058]
音视频数据同步终端对采样量化的3帧音频数据进行编码,得到3帧音频编码;例如,获取采样量化的1帧音频数据中每个量化等级集合的量化值,得到多个量化值,其中,量化值为二进制数,即采样量化的1帧音频数据包括多个二进制数,每个二进制数对应一个量化电平,得到多个量化电平,将多个量化电平进行排序,得到1帧音频编码,采用相同的方式对3帧音频数据的其他2帧音频数据进行编码,得到2帧音频编码,即对采样量化的3帧音频数据进行编码,得到3帧音频编码。
[0059]
音视频数据同步终端根据2帧视频编码和3帧音频编码,得到第二同步数据包。
[0060]
203、对第二同步数据包进行实时传输数据处理,得到多个传输数据包,其中,多个传输数据包包括2帧视频编码的多个第一帧子帧视频编码、2帧视频编码的多个第二帧子帧视频编码和3帧音频编码;
[0061]
具体的,音视频数据同步终端获取第二同步数据包中2帧视频编码的每一帧视频编码字节数,得到第一帧视频编码字节数和第二帧视频编码字节数;例如,音视频数据同步终端获取第二同步数据包中2帧视频编码的每一帧视频编码字节数,得到第一帧视频编码字节数为1280,第二帧视频编码字节数为1600。
[0062]
音视频数据同步终端分别判断第一帧视频编码字节数和第二帧视频编码字节数是否小于或等于预置的字节数;例如,预置的字节数为1024,音视频数据同步终端判断第一帧视频编码字节数是否小于或等于1024,并判断第二帧视频编码字节数是否小于或等于1024。
[0063]
若第一帧视频编码字节数和第二帧视频编码字节数都大于预置的字节数,则音视频数据同步终端将2帧视频编码中第一帧视频编码进行分包处理,得到多个第一帧子帧视频编码,并将2帧视频编码中第二帧视频编码进行分包处理,得到多个第二帧子帧视频编码;例如,第一帧视频编码字节数为1280,第二帧视频编码字节数为1600,若预置的字节数为1024,则第一帧视频编码字节数和第二帧视频编码字节数都大于1024,音视频数据同步终端对2帧视频编码中第一帧视频编码进行分包处理,得到多个第一帧子帧视频编码,并将2帧视频编码中第二帧视频编码进行分包处理,得到多个第二帧子帧视频编码,其中,每个第一帧子帧视频编码和每个第二帧子帧视频编码的字节数都小于或等于1024。
[0064]
音视频数据同步终端根据多个第一帧子帧视频编码、多个第二帧子帧视频编码和3帧音频编码,得到多个传输数据包。例如,多个传输数据包包括第一帧子帧视频编码1a、第一帧子帧视频编码1b、第二帧子帧视频编码2a、第二帧子帧视频编码2b和3帧音频编码。
[0065]
204、对多个传输数据包进行插入处理,得到第三同步数据包;
[0066]
具体的,音视频数据同步终端获取多个传输数据包中任意一个传输数据包的同步数据时间戳,其中,多个传输数据包具有相同的同步数据时间戳;例如,音视频数据同步终端获取多个传输数据包中传输数据包的同步数据时间戳,传输数据包的同步数据时间戳为“978321600000”。
[0067]
音视频数据同步终端根据同步数据时间戳确定对应的目标同步数据包;例如,同步数据包可以是a、b、c、d、e,每个同步数据包具有不同的同步数据时间戳,同步数据包a的
同步数据时间戳为“978321600000”、同步数据包b的同步数据时间戳为“978321601000”、同步数据包c的同步数据时间戳为“978321602000”、同步数据包d的同步数据时间戳为“978321603000”、同步数据包e的同步数据时间戳为“978321604000”,若多个传输数据包的同步数据时间戳为“978321600000”,则与同步数据包a的同步数据时间戳相同,将同步数据包a确定为目标同步数据包。
[0068]
音视频数据同步终端获取任意一个第一帧子帧视频编码的第一帧视频编码时间戳和每个第一帧子帧视频编码的第一帧子帧视频编码序列号,并获取任意一个第二帧子帧视频编码的第二帧视频编码时间戳和每个第二帧子帧视频编码的第二帧子帧视频编码序列号,以及3帧音频编码的每一帧音频编码时间戳;例如,多个传输数据包包括第一帧子帧视频编码1a、第一帧子帧视频编码1b、第二帧子帧视频编码2a、第二帧子帧视频编码2b和3帧音频编码。第一帧视频编码时间戳为“978321600000”,第一帧子帧视频编码1a的第一帧子帧视频编码序列号“1a101”,第一帧子帧视频编码1b的第一帧子帧视频编码序列号“1b102”,第二帧视频编码时间戳为“978321601000”,第二帧子帧视频编码2a的第二帧子帧视频编码序列号“2a201”,第二帧子帧视频编码2b的第二帧子帧视频编码序列号“2b202”,3帧音频编码的第一帧音频编码时间戳为“978321601000”、第二帧音频编码时间戳为“978321602000”、第三帧音频编码时间戳为“978321603000”。
[0069]
音视频数据同步终端根据第一帧视频编码时间戳将多个第一帧子帧视频编码插入目标同步数据包中对应的视频数据第一列表,并根据第一帧子帧视频编码序列号将多个第一帧子帧视频编码插入视频数据第一列表中对应的列表位置;例如,若第一帧视频编码时间戳为“978321600000”、第二帧视频编码时间戳为“978321601000”,则根据视频编码时间戳从小到大的顺序,将多个第一帧子帧视频编码插入目标同步数据包中对应的视频数据第一列表,若第一帧子帧视频编码1a的第一帧子帧视频编码序列号“1a101”,第一帧子帧视频编码1b的第一帧子帧视频编码序列号“1b102”,则根据序列号1a101、1b102的顺序,将这两个第一帧子帧视频编码插入视频数据第一列表中对应的列表位置。
[0070]
音视频数据同步终端根据第二帧视频编码时间戳将多个第二帧子帧视频编码插入目标同步数据包中对应的视频数据第二列表,并根据第二帧子帧视频编码序列号将多个第二帧子帧视频编码插入视频数据第二列表中对应的列表位置;例如,若第二帧视频编码时间戳为“978321601000”、第一帧视频编码时间戳为“978321600000”,则根据视频编码时间戳从小到大的顺序,将多个第二帧子帧视频编码插入目标同步数据包中对应的视频数据第二列表,若第二帧子帧视频编码2a的第二帧子帧视频编码序列号“2a201”,第二帧子帧视频编码2b的第二帧子帧视频编码序列号“2b202”,则根据序列号2a201、2b202的顺序,将这两个第二帧子帧视频编码插入视频数据第二列表中对应的列表位置。
[0071]
音视频数据同步终端根据每一帧音频编码时间戳将3帧音频编码插入目标同步数据包中对应的音频数据列表,得到第三同步数据包。例如,若第一帧音频编码时间戳为“978321601000”、第二帧音频编码时间戳为“978321602000”、第三帧音频编码时间戳为“978321603000”,则根据音频编码时间戳从小到大的顺序,将3帧音频编码插入目标同步数据包中对应的音频数据列表,得到第三同步数据包。
[0072]
205、对第三同步数据包进行解码,得到解码的同步数据包,其中,解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据。
[0073]
其中,视频解码的解码标准包括多种解码标准,例如,h.261、h.263、h.264等解码标准,解码标准可以是h.264,采用h.264解码标准的解码过程包括熵解码、反量化、反dct变换和预测解码。音频解码是将数字信号还原成模拟信号,音频解码的过程包括解协议、解封装和音频解码。音视频数据同步终端通过对第三同步数据包进行解码,得到解码的同步数据包,解码的同步数据包可以直接用于播放,其中,解码的同步数据包中音视频数据在时间上具有强相关性,即音视频数据同步。
[0074]
具体的,音视频数据同步终端获取第三同步数据包中2帧视频编码,并对2帧视频编码进行熵解码和反量化,得到熵解码和反量化的2帧视频编码;例如,音视频数据同步终端将2帧视频编码进行熵解码,得到熵解码的2帧视频数据,将熵解码的2帧视频数据中多个4*4整数变换系数块的系数绝对值和对应的4*4正整数量化矩阵进行反量化处理,得到2帧视频数据的多个宏块,即得到熵解码和反量化的2帧视频编码。
[0075]
音视频数据同步终端对熵解码和反量化的2帧视频编码进行反变换和预测解码,得到解码的2帧视频数据;例如,音视频数据同步终端对熵解码和反量化的2帧视频编码进行反dct变换,得到反dct变换的2帧视频编码,对反dct变换的2帧视频编码进行图像补偿,得到补偿的2帧视频图像,对补偿的2帧视频图像中多个宏块进行预测解码,得到解码的2帧视频数据。
[0076]
音视频数据同步终端获取3帧音频编码,并对3帧音频编码进行解协议和解封装处理,得到3帧音频码流数据;例如,音视频数据同步终端将1帧音频编码进行解协议,得到多个量化电平,将多个量化电平转换成对应的二进制数,得到1帧音频二进制数据,对1帧音频二进制数据中多个量化等级集合进行解封装,得到多个连续的采样值,即得到1帧音频码流数据,采用相同的方式对3帧音频编码中其他2帧音频编码进行解协议和解封装处理,得到2帧音频码流数据,即对3帧音频编码进行解协议和解封装处理,得到3帧音频码流数据。
[0077]
音视频数据同步终端对3帧音频码流数据进行音频解码,得到解码的3帧音频数据;例如,音视频数据同步终端将1帧音频码流数据在指定时间间隔存在空缺的连续模拟信号进行补偿,得到在时间上连续变化的模拟信号,即得到1帧音频数据,采用相同的方式对3帧音频编码中其他2帧音频编码进行音频解码,得到2帧音频数据,即对3帧音频码流数据进行音频解码,得到解码的3帧音频数据。
[0078]
音视频数据同步终端根据解码的2帧视频数据和解码的3帧音频数据,得到解码的同步数据包。
[0079]
本发明实施例中,获取第一同步数据包,其中,第一同步数据包包括2帧视频数据和3帧音频数据;对2帧视频数据进行视频编码,并对3帧音频数据进行音频编码,得到第二同步数据包;对第二同步数据包进行实时传输数据处理,得到多个传输数据包,其中,多个传输数据包包括2帧视频编码的多个第一帧子帧视频编码、2帧视频编码的多个第二帧子帧视频编码和3帧音频编码;对多个传输数据包进行插入处理,得到第三同步数据包;对第三同步数据包进行解码,得到解码的同步数据包,其中,解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据,从而提高了音视频数据在时间上的强相关性,减小了音视频同步失真。
[0080]
上面对本发明实施例中音视频数据同步方法进行了描述,下面对本发明实施例中音视频数据同步装置进行描述,请参阅图3,本发明实施例中音视频数据同步装置一个实施
例包括:
[0081]
获取模块301,用于获取第一同步数据包,其中,第一同步数据包包括2帧视频数据和3帧音频数据;
[0082]
编码模块302,用于对2帧视频数据进行视频编码,并对3帧音频数据进行音频编码,得到第二同步数据包,其中,第二同步数据包包括2帧视频编码和3帧音频编码;
[0083]
传输模块303,用于对第二同步数据包进行实时传输数据处理,得到目标传输数据包;
[0084]
插入模块304,用于根据目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将目标传输数据包进行插入处理,得到第三同步数据包;
[0085]
解码模块305,用于对第三同步数据包进行解码,得到解码的同步数据包,其中,解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据。
[0086]
本发明实施例中,获取第一同步数据包,其中,第一同步数据包包括2帧视频数据和3帧音频数据;对2帧视频数据进行视频编码,并对3帧音频数据进行音频编码,得到第二同步数据包;对第二同步数据包进行实时传输数据处理,得到目标传输数据包;根据目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将目标传输数据包进行插入处理,得到第三同步数据包;对第三同步数据包进行解码,得到解码的同步数据包,其中,解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据,从而提高了音视频数据在时间上的强相关性,减小了音视频同步失真。
[0087]
请参阅图4,本发明实施例中音视频数据同步装置的另一个实施例包括:
[0088]
获取模块301,用于获取第一同步数据包,其中,第一同步数据包包括2帧视频数据和3帧音频数据;
[0089]
编码模块302,用于对2帧视频数据进行视频编码,并对3帧音频数据进行音频编码,得到第二同步数据包,其中,第二同步数据包包括2帧视频编码和3帧音频编码;
[0090]
传输模块303,用于对第二同步数据包进行实时传输数据处理,得到目标传输数据包;
[0091]
插入模块304,用于根据目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将目标传输数据包进行插入处理,得到第三同步数据包;
[0092]
解码模块305,用于对第三同步数据包进行解码,得到解码的同步数据包,其中,解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据。
[0093]
可选的,编码模块302还可以具体用于:
[0094]
获取2帧视频数据,并对2帧视频数据进行预测编码和变换,得到预测变换的2帧视频数据;
[0095]
对预测变换的2帧视频数据进行量化和熵编码,得到2帧视频编码;
[0096]
获取3帧音频数据,并对3帧音频数据进行采样和量化,得到采样量化的3帧音频数据;
[0097]
对采样量化的3帧音频数据进行编码,得到3帧音频编码;
[0098]
根据2帧视频编码和3帧音频编码,得到第二同步数据包。
[0099]
可选的,传输模块303包括:
[0100]
获取单元3031,用于获取第二同步数据包中2帧视频编码的每一帧视频编码字节
数,得到第一帧视频编码字节数和第二帧视频编码字节数;
[0101]
判断单元3032,用于分别判断第一帧视频编码字节数和第二帧视频编码字节数是否小于或等于预置的字节数;
[0102]
打包单元3033,用于若第一帧视频编码字节数和第二帧视频编码字节数都小于或等于预置的字节数,则对第二同步数据包进行打包处理,得到目标传输数据包。
[0103]
可选的,插入模块304还可以具体用于:
[0104]
获取目标传输数据包的同步数据时间戳;
[0105]
根据同步数据时间戳确定对应的目标同步数据包;
[0106]
获取目标传输数据包中每一帧视频编码时间戳和每一帧音频编码时间戳;
[0107]
根据每一帧视频编码时间戳将2帧视频编码插入目标同步数据包中对应的视频数据列表,并根据每一帧音频编码时间戳将3帧音频编码插入目标同步数据包中对应的音频数据列表,得到第三同步数据包。
[0108]
可选的,解码模块305还可以具体用于:
[0109]
对第三同步数据包中2帧视频编码进行熵解码和反量化,得到熵解码和反量化的2帧视频编码;
[0110]
对熵解码和反量化的2帧视频编码进行反变换和预测解码,得到解码的2帧视频数据;
[0111]
对第三同步数据包中3帧音频编码进行解协议和解封装,得到3帧音频码流数据;
[0112]
对3帧音频码流数据进行音频解码,得到解码的3帧音频数据;
[0113]
根据解码的2帧视频数据和解码的3帧音频数据,得到解码的同步数据包。
[0114]
可选的,音视频数据同步装置还包括:
[0115]
分包处理模块306,用于获取第二同步数据包中2帧视频编码的每一帧视频编码字节数,得到第一帧视频编码字节数和第二帧视频编码字节数;
[0116]
分别判断第一帧视频编码字节数和第二帧视频编码字节数是否小于或等于预置的字节数;
[0117]
若第一帧视频编码字节数和第二帧视频编码字节数同时大于预置的字节数,则将2帧视频编码中第一帧视频编码进行分包处理,得到多个第一帧子帧视频编码,并将2帧视频编码中第二帧视频编码进行分包处理,得到多个第二帧子帧视频编码;
[0118]
根据多个第一帧子帧视频编码、多个第二帧子帧视频编码和3帧音频编码,得到多个传输数据包。
[0119]
可选的,音视频数据同步装置还包括:
[0120]
分包插入模块307,用于获取多个传输数据包中任意一个传输数据包的同步数据时间戳,其中,多个传输数据包具有相同的同步数据时间戳;
[0121]
根据同步数据时间戳确定对应的目标同步数据包;
[0122]
获取任意一个第一帧子帧视频编码的第一帧视频编码时间戳、每个第一帧子帧视频编码的第一帧子帧视频编码序列号、任意一个第二帧子帧视频编码的第二帧视频编码时间戳和每个第二帧子帧视频编码的第二帧子帧视频编码序列号,并获取3帧音频编码的每一帧音频编码时间戳;
[0123]
根据第一帧视频编码时间戳将多个第一帧子帧视频编码插入目标同步数据包中
对应的视频数据第一列表,并根据第一帧子帧视频编码序列号将多个第一帧子帧视频编码插入视频数据第一列表中对应的列表位置;
[0124]
根据第二帧视频编码时间戳将多个第二帧子帧视频编码插入目标同步数据包中对应的视频数据第二列表,并根据第二帧子帧视频编码序列号将多个第二帧子帧视频编码插入视频数据第二列表中对应的列表位置;
[0125]
根据每一帧音频编码时间戳将3帧音频编码插入目标同步数据包中对应的音频数据列表,得到第三同步数据包。
[0126]
本发明实施例中,本发明实施例中,获取第一同步数据包,其中,第一同步数据包包括2帧视频数据和3帧音频数据;对2帧视频数据进行视频编码,并对3帧音频数据进行音频编码,得到第二同步数据包;对第二同步数据包进行实时传输数据处理,得到目标传输数据包;根据目标传输数据包的同步数据时间戳确定对应的目标同步数据包,并将目标传输数据包进行插入处理,得到第三同步数据包;对第三同步数据包进行解码,得到解码的同步数据包,其中,解码的同步数据包包括解码的2帧视频数据和解码的3帧音频数据,从而提高了音视频数据在时间上的强相关性,减小了音视频同步失真。
[0127]
上面图3和图4从模块化功能实体的角度对本发明实施例中的音视频数据同步装置进行详细描述,下面从硬件处理的角度对本发明实施例中音视频数据同步设备进行详细描述。
[0128]
图5是本发明实施例提供的一种音视频数据同步设备的结构示意图,该音视频数据同步设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,cpu)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对音视频数据同步设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在音视频数据同步设备500上执行存储介质530中的一系列指令操作。
[0129]
音视频数据同步设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如windows serve,mac os x,unix,linux,freebsd等等。本领域技术人员可以理解,图5示出的音视频数据同步设备结构并不构成对音视频数据同步设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0130]
本发明还提供一种音视频数据同步设备,所述计算机设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述音视频数据同步方法的步骤。
[0131]
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述音视频数据同步方法的步骤。
[0132]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0133]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0134]
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

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

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

相关文献