CN109905752B - 音频数据处理方法、装置、电子设备和存储介质 - Google Patents
音频数据处理方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN109905752B CN109905752B CN201910194879.0A CN201910194879A CN109905752B CN 109905752 B CN109905752 B CN 109905752B CN 201910194879 A CN201910194879 A CN 201910194879A CN 109905752 B CN109905752 B CN 109905752B
- Authority
- CN
- China
- Prior art keywords
- audio data
- time stamp
- module
- timestamp
- corrected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 36
- 239000000872 buffer Substances 0.000 claims abstract description 116
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 27
- 238000012937 correction Methods 0.000 claims description 63
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 18
- 238000005070 sampling Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 6
- 230000011664 signaling Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供一种音频数据处理方法、装置、电子设备和存储介质,该方法包括:从缓存模块中读取音频数据;确定所述音频数据是否为待校正时间戳的音频数据;若是,则从所述第一功能模块读取第一参数,所述第一参数用于指示所述音频数据的初始时间戳;根据所述音频数据的初始时间戳,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳。本发明能够对音频数据的时间戳进行校正,实现音画同步。
Description
技术领域
本发明涉及音频数据处理技术领域,尤其涉及一种音频数据处理方法、装置、电子设备和存储介质。
背景技术
智能终端能够实现播放音视频文件的功能,其中,智能终端中的多媒体同步功能是为了让视频数据、音频数据等多个多媒体数据中具有相同时间戳(presentationtimestamp,pts)的多媒体数据在同一时刻被播放出来,即实现音画同步。
Gstreamer是目前通用的实现多媒体同步功能的开源多媒体框架,其使用Gstaudioringbuffer模块对音频数据进行缓存,通过对音频数据的传输提供时钟实现音画同步控制。为了降低传输音视频数据时对整机性能的过渡消耗,提出了一种新的音视频播放模式:隧道模式(Tunnel Mode)。采用这种模式播放音视频文件时,Gstaudioringbuffer模块中存储的音频数据不携带有时间戳信息;需要Gstaudioflingersink模块根据Gstaudioringbuffer模块中缓存的音频数据的参数计算出音频数据的时间戳,对音频数据增加额外的头部信息,头部信息中包含计算获取的时间戳;Gstaudioflingersink模块将包含有头部信息的音频数据传输给AudioTrack模块,使得AudioTrack模块根据时间戳信息实现音视频的同步播放。
但这种音视频的播放模式,在用户对智能终端播放的音视频进行切换音轨(如将中文切换为英文)对音视频进行播放时,Gstaudioringbuffer模块要进行销毁和重建,其中缓存的音频数据的参数相应发生改变;若Gstaudioflingersink模块直接根据Gstaudioringbuffer模块中重建后的音频数据的参数进行时间戳的计算,该时间戳与切换音轨前的音频数据的时间戳存在误差,进而造成音画不同步。
发明内容
本发明提供一种音频数据处理方法、装置、电子设备和存储介质,能够对音频数据的时间戳进行校正,实现音画同步。
本发明的第一方面提供一种音频数据处理方法,应用于第二功能模块,所述第二功能模块用于对待发送给音频模块的音频数据添加时间戳,所述方法包括:
从缓存模块中读取音频数据;
确定所述音频数据是否为待校正时间戳的音频数据;
若是,则从所述第一功能模块读取第一参数,所述第一参数用于指示所述音频数据的初始时间戳;
根据所述音频数据的初始时间戳,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳。
可选的,所述确定所述音频数据是否为待校正时间戳的音频数据,包括:
判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据;
若是,则确定所述音频数据为待校正时间戳的音频数据。
可选的,所述判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据之前,所述方法还包括:
从所述第一功能模块读取第二参数,所述第二参数用于指示所述缓存模块处于重建完成状态。
可选的,所述判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据之后,还包括:
若否,则判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据;
若是,则确定所述音频数据为待校正时间戳的音频数据。
可选的,所述判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据之前,所述方法还包括:
接收通知消息,所述通知消息用于指示所述缓存模块处于清空缓存状态。
可选的,所述根据所述音频数据的初始时间戳,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳,包括:
将所述音频数据的初始时间戳作为所述音频数据校正后的时间戳。
可选的,所述根据所述音频数据的初始时间戳,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳,包括:
确定所述音频数据的时间戳估算值;
根据所述音频数据的时间戳估算值和所述音频数据的初始时间戳,确定所述音频数据的时间戳校正值;
根据所述音频数据的时间戳估算值和所述音频数据的时间戳校正值,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳。
可选的,所述根据所述音频数据的时间戳估算值和所述音频数据的初始时间戳,确定所述音频数据的时间戳校正值,包括:
将所述音频数据的时间戳估算值与所述音频数据的初始时间戳相减得到的差值,作为所述音频数据的时间戳校正值。
可选的,所述根据所述音频数据的时间戳估算值和所述音频数据的时间戳校正值,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳,包括:
将所述音频数据的时间戳估算值和所述音频数据的时间戳校正值相加,得到所述音频数据校正后的时间戳。
可选的,所述根据所述音频数据的时间戳估算值和所述音频数据的初始时间戳,确定所述音频数据的时间戳校正值之后,所述方法还包括:
将所述音频数据的时间戳校正值作为所述音频数据所在分段的其他音频数据的时间戳校正值,对所述其他音频数据的时间戳进行校正。
可选的,所述得到所述音频数据校正后的时间戳之后,所述方法还包括:
在所述音频数据中添加头信息,所述头信息包括:所述音频数据校正后的时间戳;
将添加头信息后的音频数据发送给所述音频模块。
本发明的第二方面提供一种音频数据处理方法,应用于第一功能模块,所述第一功能模块用于向缓存模块写入音频数据,其特征在于,所述方法包括:
接收音频数据,所述音频数据包括所述音频数据的初始时间戳;
确定所述音频数据是否为待校正时间戳的音频数据;
若是,则根据所述音频数据的初始时间戳设置第一参数,所述第一参数用于指示所述音频数据的初始时间戳。
可选的,所述确定所述音频数据是否为待校正时间戳的音频数据,包括:
判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据;
若是,则确定所述音频数据为待校正时间戳的音频数据。
可选的,所述判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据之前,所述方法还包括:
对所述缓存模块进行重建;
在所述缓存模块重建完成后设置第二参数,所述第二参数用于指示所述缓存模块处于重建完成状态。
可选的,所述判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据之后,还包括:
若否,则判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据;
若是,则确定所述音频数据为待校正时间戳的音频数据。
可选的,所述判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据之前,所述方法还包括:
接收通知消息,所述通知消息用于指示所述缓存模块处于清空缓存状态。
本发明的第三方面提供一种音频数据处理装置,包括:
读取单元,用于从缓存模块中读取音频数据;
判断单元,用于确定所述音频数据是否为待校正时间戳的音频数据;
所述读取单元,具体用于若所述音频数据为待校正时间戳的音频数据,则从所述第一功能模块读取第一参数,所述第一参数用于指示所述音频数据的初始时间戳;
校正单元,用于根据所述音频数据的初始时间戳,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳。
可选的,所述判断单元,还用于判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据。
可选的,所述装置还包括:确定单元;
所述确定单元,用于若所述音频数据为所述缓存模块重建完成后传输的第一帧音频数据,则确定所述音频数据为待校正时间戳的音频数据。
可选的,所述读取单元,还用于从所述第一功能模块读取第二参数,所述第二参数用于指示所述缓存模块处于重建完成状态。
可选的,所述判断单元,用于若判断所述音频数据不为所述缓存模块重建完成后传输的第一帧音频数据,则判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据。
可选的,所述确定单元,用于若所述音频数据为所述缓存模块清空缓存后传输的第一帧音频数据,则确定所述音频数据为待校正时间戳的音频数据。
可选的,所述装置还包括:通知消息接收单元;
所述通知消息接收单元,用于接收通知消息,所述通知消息用于指示所述缓存模块处于清空缓存状态。
可选的,所述校正单元,具体用于将所述音频数据的初始时间戳作为所述音频数据校正后的时间戳。
可选的,所述校正单元,具体用于确定所述音频数据的时间戳估算值;根据所述音频数据的时间戳估算值和所述音频数据的初始时间戳,确定所述音频数据的时间戳校正值;根据所述音频数据的时间戳估算值和所述音频数据的时间戳校正值,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳。
可选的,所述校正单元,具体用于将所述音频数据的时间戳估算值与所述音频数据的初始时间戳相减得到的差值,作为所述音频数据的时间戳校正值。
可选的,所述校正单元,具体用于将所述音频数据的时间戳估算值和所述音频数据的时间戳校正值相加,得到所述音频数据校正后的时间戳。
可选的,所述校正单元,具体用于将所述音频数据的时间戳校正值作为所述音频数据所在分段的其他音频数据的时间戳校正值,对所述其他音频数据的时间戳进行校正。
可选的,所述装置还包括:头信息发送单元;
所述头信息发送单元,用于在所述音频数据中添加头信息,所述头信息包括:所述音频数据校正后的时间戳;将添加头信息后的音频数据发送给音频模块。
本发明的第四方面提供一种音频数据处理装置,包括:
音频数据接收单元,用于接收音频数据,所述音频数据包括所述音频数据的初始时间戳;
判断单元,用于确定所述音频数据是否为待校正时间戳的音频数据;
设置单元,用于若所述音频数据为待校正时间戳的音频数据,则根据所述音频数据的初始时间戳设置第一参数,所述第一参数用于指示所述音频数据的初始时间戳。
可选的,所述判断单元,具体用于判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据。
可选的,所述装置还包括:确定单元;
所述确定单元,用于若所述音频数据为所述缓存模块重建完成后传输的第一帧音频数据,则确定所述音频数据为待校正时间戳的音频数据。
可选的,所述装置还包括:重建单元;
所述重建单元,用于对所述缓存模块进行重建。
可选的,所述设置单元,还用于在所述缓存模块重建完成后设置第二参数,所述第二参数用于指示所述缓存模块处于重建完成状态。
可选的,所述判断单元,具体用于若所述音频数据不为所述缓存模块重建完成后传输的第一帧音频数据,则判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据。
可选的,所述确定单元,用于若所述音频数据为所述缓存模块清空缓存后传输的第一帧音频数据,则确定所述音频数据为待校正时间戳的音频数据。
可选的,所述装置还包括:通知消息接收单元;
所述通知消息接收单元,用于接收通知消息,所述通知消息用于指示所述缓存模块处于清空缓存状态。
本发明的第五方面提供一种电子设备,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行如前述任一项所述的方法步骤。
本发明的第六方面提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行如前述任一项所述的方法。
本发明提供一种音频数据处理方法、装置、电子设备和存储介质,该方法在确定所述音频数据为待校正时间戳的音频数据时,根据第一功能模块中读取的第一参数,校正所述音频数据的时间戳;所述第一参数用于指示所述音频数据的初始时间戳。本发明在不改变现有技术中的开源多媒体框架结构的基础上,即在音频数据传输过程中不携带时间戳的基础上,能够对音频数据的时间戳进行校正,实现音画同步。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明涉及的实现音频数据处理方法的功能模块结构示意图;
图2为本发明提供的音频数据处理方法的信令流程示意图一;
图3为本发明提供的音频数据处理方法的信令流程示意图二;
图4为本发明提供的音频数据处理方法的信令流程示意图三;
图5为本发明提供的音频数据处理方法的流程示意图一;
图6为本发明提供的音频数据处理方法的流程示意图二;
图7为本发明提供的一音频数据处理装置的结构示意图一;
图8为本发明提供的一音频数据处理装置的结构示意图二;
图9为本发明提供的另一音频数据处理装置的结构示意图一;
图10为本发明提供的另一音频数据处理装置的结构示意图二;
图11为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中的智能终端采用现有技术中的开源多媒体框架Gstreamer,在音频数据解码之后、且音频数据渲染之前,对音频数据进行处理,进而实现多媒体同步功能。图1为本发明涉及的实现音频数据处理方法的功能模块结构示意图,其中的功能模块可以为Gstreamer中的现有的功能模块,具体包括:第一功能模块(例如Gstaudiobasesink模块)、缓存模块(例如Gstaudioringbuffer模块)、第二功能模块(例如Gstaudioflingersink模块)和音频模块(例如AudioTrack模块)。
其中,第一功能模块,用于向缓存模块写入接收到的音频数据。例如,第一功能模块以buffer为单位,将音频数据写入缓存模块。以buffer为300k,第一功能模块每次向缓存模块写入300k的音频数据。应理解,在本实施例中,第一功能模块所接收到的每一帧音频数据包括脉码编码调制数据(Pulse Code Modulation,PCM)数据和该帧音频数据的初始时间戳。第一功能模块写入至缓存模块的音频数据仅包括PCM数据。
缓存模块,用于对音频数据进行缓存,即对PCM数据进行缓存,并在音频播放过程中将缓存的PCM数据输出至第二功能模块。其中,PCM数据按照时间顺序被分割存储在多个分段(segment)中,一个segment中存储该音频数据中的一段音频数据,一个segment包含多个buffer的音频数据,即一段音频数据又包含多个子音频数据。
第二功能模块,用于对待发送给音频模块的音频数据添加时间戳。其中,第二功能模块根据读取到的缓存模块输出的一段音频数据(即一个segment)对应的音频采样数(sample)和音频采样速率(rate),可以计算出缓存模块已播放的音频数据时长duration,其中音频数据时长为音频采样数和音频采样速率的商,即(duration=samples/rate);接着通过与***时钟的换算可以得到该段音频数据的时间戳估算值(curPos=duration+seg.start-base_time),并将该时间戳估算值作为该段音频数据的时间戳pts。其中,segment.start表示该段音频数据中包含的所有子音频数据中的初始时间戳,base_time表示相对与***时钟的一个基准量。具体的,第一功能模块中可以存储base_time,以及每段音频数据的segment.start,第二功能模块在获取每段音频数据的时间戳估算值时,可以在第一功能模块中读取segment.start和base_time。
在第二功能模块计算出该段音频数据的时间戳后,对读取到的音频数据增加头信息,该头信息中包含有时间戳;进一步的,还将包含有头信息的该段音频数据写入音频模块。
音频模块,用于将获取的音频数据传出给音频硬件进行音频的播放。
本发明中实现音频数据处理方法中的第一功能模块、缓存模块、第二功能模块和音频模块能够实现上述与现有技术中相同的功能。
当播放音频文件进行音轨切换时,如中文转化为英文,缓存模块会对缓存的中文PCM数据进行销毁,以及对英文音频数据的PCM数据的重建,英文PCM数据对应的参数如音频采样数和音频采样速率都被重置。因为切换音轨后缓存模块进行销毁和重建,音频采样数清零,虽然终端上的音频持续播放,但是音频采样数并未连续记录,估算出的时间戳值偏小,通过上述方法估算的时间戳与真实的时间戳存在误差。
为了解决上述问题,本发明提供了一种音频数据处理方法,能够对时间戳的校正,实现音画同步。下面从第一功能模块、缓存模块、第二功能模块交互的角度对本发明提供的音频数据处理方法进行说明,图2为本发明提供的音频数据处理方法的信令流程示意图一,如图2所示,本实施例提供的音频数据处理方法包括:
S201,第一功能模块接收音频数据,音频数据包括音频数据的初始时间戳。
本实施例中,第一功能模块可以接收到音频数据,该音频数据可以是需要连续播放的音频数据,也可以是切换音轨后接收到的音频数据。其中,该音频数据为解码后的PCM数据。
本实施例中的第一功能模块接收到音频数据可以为存储在终端中的本地音频数据,也可以是终端从服务器获取的音频数据。在将接收到的音频数据进行播放时,如播放至10s;示例性的,用户在终端上以点击或者其他操作方式选择切换音轨的图标时,如开始播放的是中文,在10s时用户切换为英文,则第一功能模块接收到英文音频数据。
具体的,第一功能模块接收到的音频数据中包括音频数据的初始时间戳。示例性的,如音频数据中可以包括切换音轨后的英文音频数据的初始时间戳,如在10s之后的第一帧英文音频数据的时间戳。
S202,第一功能模块确定音频数据是否为待校正时间戳的音频数据。
现有技术中,将根据缓存模块中缓存的音频数据的音频采样数和音频采样速率获取的时间戳估算值作为音频数据的时间戳。若切换音轨时,第一功能模块对缓存模块进行销毁和重建;若发生快进快退时,第一功能模块对缓存模块中缓存的音频数据进行清除;若在切换音轨后发生快进快退时,第一功能模块也需要对缓存模块中进行销毁和重建;或者由于其他外界因素,导致缓存模块中缓存的音频数据发生改变(如删除部分音频数据或者修改等)。
以上各种情况均会导致缓存模块中缓存的音频数据的参数发生改变,进而导致第二功能模块获取的音频数据的时间戳估算值不准确。本实施例中的待校正时间戳的音频数据可以为缓存模块中发生改变的音频数据。
本实施例中,第一功能模块可以根据缓存模块中缓存的音频数据确定音频数据是否为待校正时间戳的音频数据。具体的,第一功能模块可以在确定缓存模块中缓存的音频数据发生改变时,确定音频数据为待校正时间戳的音频数据。
S203,若音频数据为待校正时间戳的音频数据,则第一功能模块根据音频数据的初始时间戳设置第一参数,第一参数用于指示音频数据的初始时间戳。
第一功能模块在确定音频数据为待校正时间戳的音频数据时,根据接收到的音频数据的初始时间戳设置第一参数,并存储第一参数;其中,第一参数用于指示音频数据的初始时间戳,音频数据的初始时间戳为第一功能模块接收到的音频数据中的第一帧音频数据的时间戳。
可选的,本实施例中第一参数中可以包括缓存模块的重建完成后接收到的第一帧音频数据的时间戳,如第一参数可以为ringbuffer_released_pts。示例性的,如终端上播放的音视频文件至10s时,用户触发终端切换音轨,第一功能模块调用函数对缓存模块进行重建;第一功能模块可以记录缓存模块的重建完成后接收到的第一帧音频数据的时间戳,如11s;示例性的,第一参数可以为ringbuffer_released_11。
S204,第一功能模块将音频数据写入缓存模块。
S205,第二功能模块从缓存模块中读取音频数据。
第二功能模块能够从缓存模块中读取音频数据,具体的,是读取音频数据对应的PCM数据;可以获取缓存模块的重建后缓存的音频数据对应的音频采样数和音频采样速率。
示例性的,终端在播放一音视频文件时,音频采样数为2000时切换音轨,则缓存模块重建后的音频采样数重新从0开始计算。第二功能模块可以获取缓存模块的重建后缓存的音频数据对应的音频采样数。
S206,第二功能模块确定音频数据是否为待校正时间戳的音频数据。
如上述S203中,本实施例中,待校正时间戳的音频数据为在缓存模块中发生变化的音频数据。相应的,在缓存模块中的音频数据发生变化时,第一功能模块可在第一功能模块中增加音频数据发生变化对应的标记。示例性的,可以根据缓存模块中的音频数据发生变化的类型增加对应的标记。如在缓存模块重建完成之后,第一功能模块可以在其中增加第二参数,该第二参数可以为缓存模块重建完成状态标记ringbuffer_released。
可选的,第一功能模块在增加音频数据发生变化对应的标记后,可以存储增加标记后接收到的音频数据的初始时间戳。如在缓存模块重建完成之后,第一功能模块可以在其中增加第二参数后,存储接收到的音频数据的初始时间戳ringbuffer_released_pts。
本实施例中,第二功能模块可以在第一功能模块中读取标记确定音频数据是否为待校正时间戳的音频数据。当第二功能模块可以在第一功能模块中读取到增加的标记时,确定音频数据为待校正时间戳的音频数据。
S207,若音频数据为待校正时间戳的音频数据,则第二功能模块从第一功能模块读取第一参数。
若音频数据为待校正时间戳的音频数据,则第二功能模块从第一功能模块读取第一参数,其中,第二功能模块在第一参数中可以获取待校正时间戳的音频数据的初始时间戳。
示例性的,如第二功能模块确定音频数据为待校正时间戳的音频数据,则从第一功能模块读取第一参数,为ringbuffer_released_11。
S208,第二功能模块根据音频数据的初始时间戳,校正音频数据的时间戳,得到音频数据校正后的时间戳。
本实施例中,第二功能模块可以根据音频数据对应的音频采样数和音频采样速率,通过现有技术中的方法获取音频数据的时间戳;由于缓存模块重建后,其中的音频采样数改变,如重置为0,则第二功能模块获取的音频数据的时间戳为不准确的时间戳。值得注意的是,第二功能模可以根据音频数据对应的音频采样数和音频采样速率,获取音频数据中每一帧音频数据的时间戳。
本实施例中,第二功能模块根据音频数据的初始时间戳,校正音频数据的时间戳,得到音频数据校正后的时间戳;其中,对于该音频数据中的第一帧音频数据,可以直接将第二功能模块在第一功能模块中读取的音频数据的初始时间戳作为该音频数据中的第一帧音频数据校正后的时间戳。
可选的,对于该音频数据的每一帧音频数据,可以将第二功能模块计算得到的音频数据中第一帧音频数据的时间戳与第一功能模块中读取的音频数据的初始时间戳做差,获取时间戳差值;在第二功能模块计算得到的每一帧音频数据的时间戳后,加上该时间戳差值即为每一帧音频数据校正后的时间戳。
本实施例中提供一种音频数据处理方法,该方法包括:从缓存模块中读取音频数据;确定音频数据是否为待校正时间戳的音频数据;若是,则从第一功能模块读取第一参数,第一参数用于指示音频数据的初始时间戳;根据音频数据的初始时间戳,校正音频数据的时间戳,得到音频数据校正后的时间戳。本发明在不改变现有技术中的开源多媒体框架结构的基础上,即在音频数据传输过程中不携带时间戳的基础上,能够对音频数据的时间戳进行校正,实现音画同步。
下面结合图3从第一功能模块、缓存模块、第一功能模块和音频模块交互的角度对本发明提供的音频数据处理方法进行进一步说明,图3为本发明提供的音频数据处理方法的信令流程示意图二,如图3所示,本实施例提供的音频数据处理方法包括:
S301,第一功能模块接收音频数据,音频数据包括音频数据的初始时间戳。
S302,第一功能模块对缓存模块进行重建;在缓存模块重建完成后第一功能模块设置第二参数,第二参数用于指示缓存模块处于重建完成状态。
本实施例中,在切换音轨时,第一功能模块可以调用函数,对缓存模块进行重建。
第一功能模块可以获取缓存模块重建的状态,在缓存模块重建完成后第一功能模块设置第二参数,即在第一功能模块中增加第二参数,其中,第二参数用于指示缓存模块处于重建完成状态,如第二参数为ringbuffer_released。
S303,第一功能模块判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。
本实施例中,第一功能模块接收音频数据,判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。
具体的,第一功能模块在缓存模块重建完成后,可以获取缓存模块重建完成的时间戳;根据接收到的音频数据的每一帧音频数据的时间戳和缓存模块重建完成的时间戳,判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。
S304,若音频数据为缓存模块重建完成后传输的第一帧音频数据,则第一功能模块确定音频数据为待校正时间戳的音频数据。
本实施例中,由于缓存模块重建,会重置缓存的音频数据的参数,进而导致第二功能模块计算的音频数据的时间戳不准确。在第一功能模块确定音频数据为缓存模块重建完成后传输的第一帧音频数据时,确定该音频数据为待校正时间戳的音频数据。
S305,若音频数据为待校正时间戳的音频数据,则第一功能模块根据音频数据的初始时间戳设置第一参数。
S306,第一功能模块将音频数据写入缓存模块。
S307,第二功能模块从缓存模块中读取音频数据。
S308,第二功能模块从第一功能模块读取第二参数。
第一功能模块中存储有第二参数,该第二参数用于指示缓存模块处于重建完成状态,如第一功能模块中存储的ringbuffer_released。
第二功能模块从第一功能模块读取第二参数,确定缓存模块处于重建完成状态。
S309,第二功能模块判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。
本实施例中,第二功能模块通过在第一功能模块中读取第二参数和第一参数,判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。由于第二参数用于指示缓存模块处于重建完成状态,如第二参数为ringbuffer_released;第一参数用于指示音频数据的初始时间戳,如ringbuffer_released_pts;若第二功能模块在第一功能模块中能够读取到新增的第二参数和第一参数,可以确定音频数据为缓存模块重建完成后传输的第一帧音频数据。
S310,若音频数据为缓存模块重建完成后传输的第一帧音频数据,则第二功能模块确定音频数据为待校正时间戳的音频数据。
S311,若音频数据为待校正时间戳的音频数据,则第二功能模块从第一功能模块读取第一参数。
S312,第二功能模块根据音频数据的初始时间戳,校正音频数据的时间戳,得到音频数据校正后的时间戳。
本实施例中,若音频数据为缓存模块重建完成后传输的第一帧音频数据,将音频数据的初始时间戳作为音频数据校正后的时间戳。或者,第二功能模块可以确定音频数据的时间戳估算值,该估算值可以是按照curPos=duration+seg.start-base_time进行计算获取;根据音频数据的时间戳估算值和音频数据的初始时间戳,确定音频数据的时间戳校正值;根据音频数据的时间戳估算值和音频数据的时间戳校正值,校正音频数据的时间戳,得到音频数据校正后的时间戳。
具体的,可以将音频数据的时间戳估算值与音频数据的初始时间戳相减得到的差值,作为音频数据的时间戳校正值。将音频数据的时间戳估算值和音频数据的时间戳校正值相加,得到音频数据校正后的时间戳。
示例性的,第一帧音频数据的时间戳估算值为pts1,而音频数据的时间戳估算值与音频数据的初始时间戳相减得到的差值为pts_diff,则音频数据校正后的时间戳为pts1'(pts1'=pts1+pts_diff)。
本实施例中,第二功能模块还可以将音频数据的时间戳校正值作为音频数据所在分段的其他音频数据的时间戳校正值,对其他音频数据的时间戳进行校正。
示例性的,音频数据所在分段的其他音频数据如第二帧音频数据的时间戳估算值为pts2,则第二帧音频数据校正后的时间戳pts2'(pts2'=pts2+pts_diff)。
S313,第二功能模块在音频数据中添加头信息,头信息包括:音频数据校正后的时间戳。
本实施例中,第二功能模块在获取音频数据校正后的时间戳信息后,在音频数据中添加头信息,头信息包括:音频数据校正后的时间戳。可选的,本实施例中可以将音频数据中的每一帧音频数据校正后的时间戳添加至头信息中。
S314,第二功能模块将添加头信息后的音频数据发送给音频模块。
本实施例中,第二功能模块将添加头信息后的音频数据发送给音频模块后,音频模块可以获取音频数据的校正后的时间戳,根据该头信息中包括的音频数据的校正后的时间戳,对音视频数据进行同步播放,实现音画同步。
其中,本实施例中的S301、S305-S307中的实施方式可以参照上述实施例中的S201、S203-S205中的相关描述,在此不做赘述。
本实施例中,若音频数据为缓存模块重建完成后传输的第一帧音频数据,则确定音频数据为待校正时间戳的音频数据,可以直接将在第一功能模块读取的音频数据的初始时间戳作为音频数据校正后的时间戳;也可以根据音频数据的时间戳估算值和音频数据的初始时间戳,确定音频数据的时间戳校正值;根据音频数据的时间戳估算值和音频数据的时间戳校正值,校正音频数据的时间戳,得到音频数据校正后的时间戳,可以实现对音频数据中的每一帧音频数据的时间戳的校正,实现音画同步。
本实施例中,切换音轨的情况下,若在切换音轨后还对音视频文件进行快退或快进的操作,缓存模块还相应的清除缓存的音频数据。由于缓存模块重建,会重置缓存的音频数据的参数;第二功能模块计算的音频数据的时间戳也不准确。
下面结合图4从第一功能模块、缓存模块、第一功能模块和音频模块交互的角度对本发明提供的音频数据处理方法进行进一步说明,图4为本发明提供的音频数据处理方法的信令流程示意图三,如图4所示,本实施例提供的音频数据处理方法包括:
S401,第一功能模块接收音频数据,音频数据包括音频数据的初始时间戳。
S402,第一功能模块对缓存模块进行重建;在缓存模块重建完成后第一功能模块设置第二参数,第二参数用于指示缓存模块处于重建完成状态。
S404,第一功能模块判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。
S405,第一功能模块接收通知消息,通知消息用于指示缓存模块处于清空缓存状态。
本实施例中,在音视频文件快退或快进完成后,各个模块会接收到快退或快进完成的通知消息flush_stop;其中,通知消息用于指示缓存模块处于清空缓存状态,对应的,缓存模块清除缓存的音频数据,处于清空缓存状态。
具体的,第一功能模块接收通知消息后,确定快退或快进完成,可以设置第三参数,第三参数用于表征快退或快进完成,如sink_flushed。
S406,若音频数据不为缓存模块重建完成后传输的第一帧音频数据,则第一功能模块判断音频数据是否为缓存模块清空缓存后传输的第一帧音频数据。
本实施例中,第一功能模块确定音频数据不为缓存模块重建完成后传输的第一帧音频数据时,判断音频数据是否为缓存模块清空缓存后传输的第一帧音频数据。
第一功能模块在缓存模块清空缓存后,获取缓存模块重建完成的时间戳,根据接收到的音频数据的每一帧音频数据的时间戳和缓存模块重建完成的时间戳,判断音频数据是否为缓存模块清空缓存后传输的第一帧音频数据。
第一功能模块判断音频数据为缓存模块清空缓存后传输的第一帧音频数据,可以将该缓存模块清空缓存后传输的第一帧音频数据的时间戳进行存储,如flushed_pts。
S407,若音频数据为缓存模块清空缓存后传输的第一帧音频数据,则第一功能模块确定音频数据为待校正时间戳的音频数据。
其中,音频数据为缓存模块清空缓存后传输的第一帧音频数据,由于缓存模块重建,会导致第二功能模块计算的音频数据的时间戳也不准确;因此,音频数据为缓存模块清空缓存后传输的第一帧音频数据时,音频数据为待校正时间戳的音频数据。
S408,若音频数据为待校正时间戳的音频数据,则第一功能模块根据音频数据的初始时间戳设置第一参数。
S409,第一功能模块将音频数据写入至缓存模块。
S410,第二功能模块从缓存模块中读取音频数据。
S411,第二功能模块从第一功能模块读取第二参数。
S412,第二功能模块判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。
S413,第二功能模块接收通知消息。
本实施例中,在音视频文件快退或快进完成后,各个模块会接收到快退或快进完成的通知消息(例如flush_stop);其中,通知消息用于指示缓存模块处于清空缓存状态,对应的,缓存模块清除缓存的音频数据,处于清空缓存状态。具体的,第二功能模块可以接收通知消息。
S414,若音频数据不为缓存模块重建完成后传输的第一帧音频数据,则第二功能模块判断音频数据是否为缓存模块清空缓存后传输的第一帧音频数据。
本实施例中,第二功能模块确定音频数据不为缓存模块重建完成后传输的第一帧音频数据时,通过在第一功能模块中读取第三参数和缓存模块清空缓存后传输的第一帧音频数据的时间戳,判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。由于第三参数用于表征快退或快进完成,也表示缓存模块清空缓存完成,如第三参数为sink_flushed;缓存模块清空缓存后传输的第一帧音频数据的时间戳,如flushed_pts;若第二功能模块在第一功能模块中能够读取到新增的第三参数和缓存模块清空缓存后传输的第一帧音频数据的时间戳,可以确定音频数据为缓存模块清空缓存后传输的第一帧音频数据。
S415,若音频数据为缓存模块清空缓存后传输的第一帧音频数据,则第二功能模块确定音频数据为待校正时间戳的音频数据。
S416,若音频数据为待校正时间戳的音频数据,则第二功能模块从第一功能模块读取第一参数。
S417,第二功能模块根据音频数据的初始时间戳,校正音频数据的时间戳,得到音频数据校正后的时间戳。
相应的,本实施例中可以若音频数据为缓存模块清空缓存后传输的第一帧音频数据,将音频数据的初始时间戳作为音频数据校正后的时间戳。
或者,第二功能模块可以确定音频数据的时间戳估算值,该估算值可以是按照时间戳pts(curPos=duration+seg.start-base_time)的公式进行计算获取;根据音频数据的时间戳估算值和音频数据的初始时间戳,确定音频数据的时间戳校正值;根据音频数据的时间戳估算值和音频数据的时间戳校正值,校正音频数据的时间戳,得到音频数据校正后的时间戳。
具体的,可以将音频数据的时间戳估算值与音频数据的初始时间戳相减得到的差值,作为音频数据的时间戳校正值。将音频数据的时间戳估算值和音频数据的时间戳校正值相加,得到音频数据校正后的时间戳。
本实施例中,第二功能模块还可以将音频数据的时间戳校正值作为音频数据所在分段的其他音频数据的时间戳校正值,对其他音频数据的时间戳进行校正。
值得注意的是,其中的初始时间戳为flushed_pts。
S418,第二功能模块在音频数据中添加头信息,头信息包括:音频数据校正后的时间戳。
S419,第二功能模块将添加头信息后的音频数据发送给音频模块。
其中,本实施例中的S401-S404、S408-S412、S416-S419中的实施方式可以参照上述实施例中的S301-S304、S305-S309、S311-S314中的相关描述,在此不做赘述。
本实施例中,若音频数据为缓存模块清空缓存后传输的第一帧音频数据,则确定音频数据为待校正时间戳的音频数据,可以直接将在第一功能模块读取的音频数据的初始时间戳作为音频数据校正后的时间戳;也可以根据音频数据的时间戳估算值和音频数据的初始时间戳,确定音频数据的时间戳校正值;根据音频数据的时间戳估算值和音频数据的时间戳校正值,校正音频数据的时间戳,得到音频数据校正后的时间戳,可以实现对音频数据中的每一帧音频数据的时间戳的校正,实现音画同步。
综上,下面分别从第一功能模块和第二功能模块的角度对本发明的音频数据处理方法进行说明。
下面结合图5从第二功能模块的角度对音频数据处理方法进行说明;图5为本发明提供的音频数据处理方法的流程示意图一,如图5所示,本实施例提供的音频数据处理方法包括:
S501,从缓存模块中读取音频数据。
S502,判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据;若是,执行S504,若否,执行S503。
S503,判断音频数据是否为缓存模块清空缓存后传输的第一帧音频数据;若是,执行S504,若否,执行S505。
S504,确定音频数据为待校正时间戳的音频数据。
S505,根据音频数据的初始时间戳,校正音频数据的时间戳,得到音频数据校正后的时间戳。
本实施例中,对于缓存模块重建完成后传输的第一帧音频数据和缓存模块清空缓存后传输的第一帧音频数据(下述均称为第一帧音频数据),可以直接将音频数据的初始时间戳作为音频数据校正后的时间戳;也可以采用获取第一帧音频数据的时间戳估算值和第一帧音频数据的初始时间戳的时间戳校正值,根据音频数据的时间戳估算值和音频数据的时间戳校正值的差值,将该差值和第一帧音频数据的初始时间戳的加和作为第一帧音频数据校正后的时间戳。
对于非第一帧音频数据,可以获取每一帧音频数据的时间戳估算值和每一帧音频数据的初始时间戳的时间戳校正值,根据音频数据的时间戳估算值和音频数据的时间戳校正值的差值,将该差值和每一帧音频数据的初始时间戳的加和作为每一帧音频数据校正后的时间戳。
S506,在音频数据中添加头信息,头信息包括:音频数据校正后的时间戳。
S507,将添加头信息后的音频数据发送给音频模块。
下面结合图6从第一功能模块的角度对音频数据处理方法进行说明;图6为本发明提供的音频数据处理方法的流程示意图二,如图6所示,本实施例提供的音频数据处理方法包括:
S601,接收音频数据。
S602,判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据;若是,执行S604,若否,执行S603。
S603,判断音频数据是否为缓存模块清空缓存后传输的第一帧音频数据;若是,执行S604,若否,执行S605。
S604,确定音频数据为待校正时间戳的音频数据,且记录音频数据的初始时间戳。
S605,将音频数据写入缓存模块。
可以理解,虽然上述实施例均以第一功能模块、第二功能模块作为执行主体,对本发明实施例所提供的音频数据处理方法进行了说明和介绍。但是本领域技术人员可以理解的是,上述操作也可以理解为:由智能电视调用这些功能模块来完成和实现的,对此不再加以赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图7为本发明提供的一音频数据处理装置的结构示意图一;该音频数据处理装置可以通过软件、硬件或者两者的结合实现电子设备(例如智能电视)的部分或者全部。如图7所示,该音频数据处理装置700可以包括:读取单元701、判断单元702和校正单元703。
读取单元701,用于从缓存模块中读取音频数据。
判断单元702,用于确定音频数据是否为待校正时间戳的音频数据。
读取单元701,具体用于若音频数据为待校正时间戳的音频数据,则从第一功能模块读取第一参数,第一参数用于指示音频数据的初始时间戳。
校正单元703,用于根据音频数据的初始时间戳,校正音频数据的时间戳,得到音频数据校正后的时间戳。
可选的,图8为本发明提供的一音频数据处理装置的结构示意图二,如图8所示,该音频数据处理装置700还可以包括:确定单元704、通知消息接收单元705和头信息发送单元706。
可选的,判断单元702,还用于判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。
确定单元704,用于若音频数据为缓存模块重建完成后传输的第一帧音频数据,则确定音频数据为待校正时间戳的音频数据。
可选的,读取单元701,还用于从第一功能模块读取第二参数,第二参数用于指示缓存模块处于重建完成状态。
可选的,判断单元702,用于若判断音频数据不为缓存模块重建完成后传输的第一帧音频数据,则判断音频数据是否为缓存模块清空缓存后传输的第一帧音频数据。
可选的,确定单元704,用于若音频数据为缓存模块清空缓存后传输的第一帧音频数据,则确定音频数据为待校正时间戳的音频数据。
通知消息接收单元705,用于接收通知消息,通知消息用于指示缓存模块处于清空缓存状态。
可选的,校正单元703,具体用于将音频数据的初始时间戳作为音频数据校正后的时间戳。
可选的,校正单元703,具体用于确定音频数据的时间戳估算值;根据音频数据的时间戳估算值和音频数据的初始时间戳,确定音频数据的时间戳校正值;根据音频数据的时间戳估算值和音频数据的时间戳校正值,校正音频数据的时间戳,得到音频数据校正后的时间戳。
可选的,校正单元703,具体用于将音频数据的时间戳估算值与音频数据的初始时间戳相减得到的差值,作为音频数据的时间戳校正值。
可选的,校正单元703,具体用于将音频数据的时间戳估算值和音频数据的时间戳校正值相加,得到音频数据校正后的时间戳。
可选的,校正单元703,具体用于将音频数据的时间戳校正值作为音频数据所在分段的其他音频数据的时间戳校正值,对其他音频数据的时间戳进行校正。
头信息发送单元706,用于在音频数据中添加头信息,头信息包括:音频数据校正后的时间戳;将添加头信息后的音频数据发送给音频模块。
本发明提供的音频数据处理装置,可以执行上述方法实施例中第二功能模块的动作,其实现原理和技术效果类似,在此不再赘述。
图9为本发明提供的另一音频数据处理装置的结构示意图一;该音频数据处理装置可以通过软件、硬件或者两者的结合实现电子设备(例如智能电视)的部分或者全部。如图9所示,该音频数据处理装置900可以包括:音频数据接收单元901、判断单元902和设置单元903。
音频数据接收单元901,用于接收音频数据,音频数据包括音频数据的初始时间戳。
判断单元902,用于确定音频数据是否为待校正时间戳的音频数据。
设置单元903,用于若音频数据为待校正时间戳的音频数据,则根据音频数据的初始时间戳设置第一参数,第一参数用于指示音频数据的初始时间戳。
图10为本发明提供的另一音频数据处理装置的结构示意图二,如图10所示,该音频数据处理装置900还可以包括:确定单元904、重建单元905和通知消息接收单元906。
可选的,判断单元902,具体用于判断音频数据是否为缓存模块重建完成后传输的第一帧音频数据。
确定单元904,用于若音频数据为缓存模块重建完成后传输的第一帧音频数据,则确定音频数据为待校正时间戳的音频数据。
重建单元905,用于对缓存模块进行重建。
可选的,设置单元903,还用于在缓存模块重建完成后设置第二参数,第二参数用于指示缓存模块处于重建完成状态。
可选的,判断单元902,具体用于若音频数据不为缓存模块重建完成后传输的第一帧音频数据,则判断音频数据是否为缓存模块清空缓存后传输的第一帧音频数据。
可选的,确定单元904,用于若音频数据为缓存模块清空缓存后传输的第一帧音频数据,则确定音频数据为待校正时间戳的音频数据。
通知消息接收单元906,用于接收通知消息,通知消息用于指示缓存模块处于清空缓存状态。
本发明提供的音频数据处理装置,可以执行上述方法实施例中第一功能模块的动作,其实现原理和技术效果类似,在此不再赘述。
图11为本发明提供的电子设备的结构示意图。如图11所示,该电子设备可以包括:至少一个处理器1101和存储器1102。图11示出的是以一个处理器为例的电子设备,其中,
存储器1102,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1102可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器1101用于执行所述存储器1102存储的计算机执行指令,以实现上述实施例中的按键处理方法,其实现原理和技术效果类似,在此不再赘述。
其中,处理器1101可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
可选的,在具体实现上,如果通信接口、存储器1102和处理器1101独立实现,则通信接口、存储器1102和处理器1101可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,简称为EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果通信接口、存储器1102和处理器1101集成在一块芯片上实现,则通信接口、存储器1102和处理器1101可以通过内部接口完成相同间的通信。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或者光盘等各种可以存储程序代码的介质。具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。
本发明还提供了一种计算机程序产品,该计算机程序产品包括计算机程序或指令,当所述计算机程序或指令被运行时,可以实现上述实施例中的方法。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (18)
1.一种音频数据处理方法,应用于第二功能模块,所述第二功能模块用于对待发送给音频模块的音频数据添加时间戳,其特征在于,所述方法包括:
从缓存模块中读取音频数据;
判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据;
若是,则确定所述音频数据为待校正时间戳的音频数据;
从第一功能模块读取第一参数,所述第一参数用于指示所述音频数据的初始时间戳;
根据所述音频数据的初始时间戳,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳。
2.根据权利要求1所述的方法,其特征在于,所述判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据之前,所述方法还包括:
从所述第一功能模块读取第二参数,所述第二参数用于指示所述缓存模块处于重建完成状态。
3.根据权利要求1所述的方法,其特征在于,所述判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据之后,还包括:
若否,则判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据;
若是,则确定所述音频数据为待校正时间戳的音频数据。
4.根据权利要求3所述的方法,其特征在于,所述判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据之前,所述方法还包括:
接收通知消息,所述通知消息用于指示所述缓存模块处于清空缓存状态。
5.根据权利要求1所述的方法,其特征在于,所述根据所述音频数据的初始时间戳,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳,包括:
将所述音频数据的初始时间戳作为所述音频数据校正后的时间戳。
6.根据权利要求1所述的方法,其特征在于,所述根据所述音频数据的初始时间戳,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳,包括:
确定所述音频数据的时间戳估算值;
根据所述音频数据的时间戳估算值和所述音频数据的初始时间戳,确定所述音频数据的时间戳校正值;
根据所述音频数据的时间戳估算值和所述音频数据的时间戳校正值,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳。
7.根据权利要求6所述的方法,其特征在于,所述根据所述音频数据的时间戳估算值和所述音频数据的初始时间戳,确定所述音频数据的时间戳校正值,包括:
将所述音频数据的时间戳估算值与所述音频数据的初始时间戳相减得到的差值,作为所述音频数据的时间戳校正值。
8.根据权利要求7所述的方法,其特征在于,所述根据所述音频数据的时间戳估算值和所述音频数据的时间戳校正值,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳,包括:
将所述音频数据的时间戳估算值和所述音频数据的时间戳校正值相加,得到所述音频数据校正后的时间戳。
9.根据权利要求6所述的方法,其特征在于,所述根据所述音频数据的时间戳估算值和所述音频数据的初始时间戳,确定所述音频数据的时间戳校正值之后,所述方法还包括:
将所述音频数据的时间戳校正值作为所述音频数据所在分段的其他音频数据的时间戳校正值,对所述其他音频数据的时间戳进行校正。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述得到所述音频数据校正后的时间戳之后,所述方法还包括:
在所述音频数据中添加头信息,所述头信息包括:所述音频数据校正后的时间戳;
将添加头信息后的音频数据发送给所述音频模块。
11.一种音频数据处理方法,应用于第一功能模块,所述第一功能模块用于向缓存模块写入音频数据,其特征在于,所述方法包括:
接收音频数据,所述音频数据包括所述音频数据的初始时间戳;
判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据;
若是,则确定所述音频数据为待校正时间戳的音频数据;
根据所述音频数据的初始时间戳设置第一参数,所述第一参数用于指示所述音频数据的初始时间戳。
12.根据权利要求11所述的方法,其特征在于,所述判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据之前,所述方法还包括:
对所述缓存模块进行重建;
在所述缓存模块重建完成后设置第二参数,所述第二参数用于指示所述缓存模块处于重建完成状态。
13.根据权利要求11所述的方法,其特征在于,所述判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据之后,还包括:
若否,则判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据;
若是,则确定所述音频数据为待校正时间戳的音频数据。
14.根据权利要求13所述的方法,其特征在于,所述判断所述音频数据是否为所述缓存模块清空缓存后传输的第一帧音频数据之前,所述方法还包括:
接收通知消息,所述通知消息用于指示所述缓存模块处于清空缓存状态。
15.一种音频数据处理装置,其特征在于,包括:
读取单元,用于从缓存模块中读取音频数据;
判断单元,用于判断所述音频数据是否为所述缓存模块重建完成后传输的第一帧音频数据,若是则确定所述音频数据为待校正时间戳的音频数据;
所述读取单元,还用于若所述音频数据为待校正时间戳的音频数据,则从第一功能模块读取第一参数,所述第一参数用于指示所述音频数据的初始时间戳;
校正单元,用于根据所述音频数据的初始时间戳,校正所述音频数据的时间戳,得到所述音频数据校正后的时间戳。
16.一种音频数据处理装置,其特征在于,包括:
音频数据接收单元,用于接收音频数据,所述音频数据包括所述音频数据的初始时间戳;
判断单元,用于判断所述音频数据是否为缓存模块重建完成后传输的第一帧音频数据,若是则确定所述音频数据为待校正时间戳的音频数据;
设置单元,用于若所述音频数据为待校正时间戳的音频数据,则根据所述音频数据的初始时间戳设置第一参数,所述第一参数用于指示所述音频数据的初始时间戳。
17.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行权利要求1-14任一项所述的方法步骤。
18.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1-14任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910194879.0A CN109905752B (zh) | 2019-03-14 | 2019-03-14 | 音频数据处理方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910194879.0A CN109905752B (zh) | 2019-03-14 | 2019-03-14 | 音频数据处理方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109905752A CN109905752A (zh) | 2019-06-18 |
CN109905752B true CN109905752B (zh) | 2021-06-08 |
Family
ID=66953198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910194879.0A Active CN109905752B (zh) | 2019-03-14 | 2019-03-14 | 音频数据处理方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109905752B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112153447B (zh) * | 2020-09-27 | 2022-06-14 | 海信视像科技股份有限公司 | 一种显示设备及音画同步控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237586A (zh) * | 2008-02-22 | 2008-08-06 | 上海华平信息技术股份有限公司 | 音视频缓存同步播放的方法 |
CN104269182A (zh) * | 2014-09-18 | 2015-01-07 | 歌尔声学股份有限公司 | 一种音频同步播放的方法、装置和*** |
CN107566890A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
CN107566889A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9001216B2 (en) * | 2012-10-12 | 2015-04-07 | Sony Corporation | Method and apparatus for video streaming |
US11625213B2 (en) * | 2017-05-15 | 2023-04-11 | MIXHalo Corp. | Systems and methods for providing real-time audio and data |
-
2019
- 2019-03-14 CN CN201910194879.0A patent/CN109905752B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237586A (zh) * | 2008-02-22 | 2008-08-06 | 上海华平信息技术股份有限公司 | 音视频缓存同步播放的方法 |
CN104269182A (zh) * | 2014-09-18 | 2015-01-07 | 歌尔声学股份有限公司 | 一种音频同步播放的方法、装置和*** |
CN107566890A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
CN107566889A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基于Gstreamer媒体播放器的研究与设计;贺志强;《中国优秀硕士学位论文全文数据库(电子期刊)》;20091115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109905752A (zh) | 2019-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1111612B1 (en) | Method and device for managing multimedia file | |
US8374480B2 (en) | Method and apparatus for video image data recording and playback | |
CN109936763B (zh) | 视频的处理及发布方法 | |
TWI287398B (en) | Recorder, player, and recording medium for displaying image, and methods therefor | |
CN110418186B (zh) | 音视频播放方法、装置、计算机设备和存储介质 | |
CN108848414A (zh) | 一种视频的播放方法、清晰度的切换方法及播放器 | |
EP1486979A1 (en) | Data recording method, data recording device, data recording medium, data reproduction method, and data reproduction device | |
CN105393544A (zh) | 媒体流传送中的动态轨道切换 | |
CN108111997A (zh) | 蓝牙设备音频同步方法和*** | |
CN109905752B (zh) | 音频数据处理方法、装置、电子设备和存储介质 | |
CN108156500B (zh) | 多媒体数据时间修正方法、计算机装置、计算机可读存储介质 | |
JP2015029231A (ja) | 記録装置およびその制御方法 | |
CN114025202A (zh) | 视频处理方法、装置及存储介质 | |
CN111263211B (zh) | 一种缓存视频数据的方法及终端设备 | |
US8185815B1 (en) | Live preview | |
CN113014981A (zh) | 视频播放方法、装置、电子设备及可读存储介质 | |
WO2018139283A1 (ja) | 画像処理装置および方法、並びにプログラム | |
CN113473215B (zh) | 录屏方法、装置、终端及存储介质 | |
WO2018076899A1 (zh) | 一种数据切换方法、装置、终端及计算机可读存储介质 | |
US8761573B2 (en) | Recording device, imaging and recording device, recording method, and program | |
CN115426501A (zh) | 一种音视频码流时间校准方法及电子设备 | |
US8442376B2 (en) | Image data recording/playback device, system, and method | |
CN108335706B (zh) | 一种多媒体文件的无缝播放方法、终端设备及存储介质 | |
US7672402B2 (en) | Data processing apparatus and method and encoding device | |
JP4270281B2 (ja) | 画像処理のための装置、方法、および、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant after: Hisense Visual Technology Co., Ltd. Address before: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant before: QINGDAO HISENSE ELECTRONICS Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |