CN107566890B - 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 - Google Patents
处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN107566890B CN107566890B CN201710832499.6A CN201710832499A CN107566890B CN 107566890 B CN107566890 B CN 107566890B CN 201710832499 A CN201710832499 A CN 201710832499A CN 107566890 B CN107566890 B CN 107566890B
- Authority
- CN
- China
- Prior art keywords
- audio
- time
- data
- audio frame
- frame data
- 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
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明适用于音视频技术领域,提供了一种音频流异常处理方法、装置、计算机装置及计算机可读存储介质,所述方法包括:获取缓存中的音频帧数据;对音频帧数据的解码参数进行解析,获取相关音频数据,并记录第一帧音频帧数据的时间戳;对解析后的音频帧数据进行解码渲染;根据相关音频数据以及第一帧音频帧数据的时间戳,获取实际音频渲染时间;根据实际音频渲染时间,获取实时码流播放时间漂移;根据实时码流播放时间漂移,判断音频帧数据是否存在异常;当判断结果为是时,启动复位音频处理操作。本发明实施例,可有效处理由于码流抖动、信号不稳定或者码流跳变等因素导致的声音中断停止问题,提高了音频播放的稳定性,减小音频播放卡顿的情况。
Description
技术领域
本发明属于音视频技术领域,尤其涉及一种处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质。
背景技术
目前音视频播放器是采用解复用、解码、渲染的流程设计,每个环节都是透明可控,每个环节出现异常都可以很好的去判断并且处理,比如VLC播放器,基于FFMPEG的开源项目实现的一个方案,从解复用、解码、音视频渲染都是开源可控的,直接在解码输出端来判断音频PCM帧数据的缓冲是否有中断来控制音频的渲染输出。
但是,目前音视频播放器在音频处理部分通常会使用MacX AudioQueue框架来进行解码和渲染,由于解码到渲染的过程是不可控和封闭性,无法在解码或者渲染输出端实现异常情况的直接判断及处理,而实时节目的数据在传输和数据处理的各个环节都有可能存在抖动性和传输质量的问题,一旦发生数据的断流,都会导致MacX AudioQueue框架的服务终止,出现声音中断的问题。
因此,目前在通过MacX AudioQueue框架对音频的处理过程不可控和封闭性,导致无法实时对异常情况进行处理,导致声音中断的问题。
发明内容
本发明实施例提供一种处理音频流异常播放方法,旨在解决现有技术中无法实时对异常情况进行处理,导致声音中断的问题。
本发明实施例提供了一种处理音频流异常播放方法,包括:
获取缓存中的音频帧数据;
对所述音频帧数据的解码参数进行解析,获取相关音频数据,并记录第一帧音频帧数据的时间戳;
对解析后的音频帧数据进行解码渲染,并读取音频采样数;
根据所述音频采样数、相关音频数据以及所述第一帧音频帧数据的时间戳,获取实际音频渲染时间;
根据所述实际音频渲染时间,获取实时码流播放时间漂移;
根据所述实时码流播放时间漂移,判断所述音频帧数据是否存在异常;
当判断结果为是时,启动复位音频处理操作。
本发明实施例提供了一种处理音频流异常播放装置,包括:
音频帧数据获取单元,用于获取缓存中的音频帧数据;
解析单元,用于对所述音频帧数据的解码参数进行解析,获取相关音频数据,并记录第一帧音频帧数据的时间戳;
解码单元,用于对解析后的音频帧数据进行解码渲染,并读取音频采样数;
实际音频渲染时间获取单元,用于根据所述音频采样数、相关音频数据以及所述第一帧音频帧数据的时间戳,获取实际音频渲染时间;
实时码流播放时间漂移获取单元,用于根据所述实际音频渲染时间,获取实时码流播放时间漂移;
判断单元,用于根据所述实时码流播放时间漂移,判断所述音频帧数据是否存在异常;
第一复位启动单元,用于当判断结果为是时,启动复位音频处理操作。
本发明实施例还提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述处理音频流异常播放方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序(指令),其特征在于,所述计算机程序(指令)被处理器执行时实现如上述处理音频流异常播放方法的步骤。
本发明实施例提供了一种处理音频流异常播放方法,通过获取缓存中的音频帧数据,并对该音频帧数据的解码参数进行解析,获取相关音频数据,并记录第一帧音频帧数据的时间戳,对解析后的音频帧数据进行解码渲染处理,并进行输出,通过第一帧时间戳以及相关音频数据来获取实际音频渲染时间,进而获取实时码流播放漂移,以判断当前音频流是否存在异常,当存在异常时,将进行音频复位处理,可有效处理由于码流抖动、信号不稳定或者码流跳变等因素导致的声音中断停止问题,且可实时对音频处理过程进行监控,对异常情况及时处理,提高了音频播放的稳定性,减小音频播放卡顿的情况。
附图说明
图1是本发明实施例提供的一种处理音频流异常播放方法的实现流程图;
图2是本发明实施例提供的一种实时码流播放时间漂移获取方法的实现流程图;
图3是本发明实施例提供的一种实际音频渲染时间获取方法的实现流程图;
图4是本发明实施例提供的另一种处理音频流异常播放方法的实现流程图;
图5是本发明实施例提供的又一种处理音频流异常播放方法的实现流程图;
图6是本发明实施例提供的一种处理音频流异常播放装置的结构示意图;
图7是本发明实施例提供的一种实时码流播放时间漂移获取单元的结构示意图;
图8是本发明实施例提供的一种实际音频渲染时间获取单元的结构示意图;
图9是本发明实施例提供的另一种实时码流播放时间漂移获取单元的结构示意图;
图10是本发明实施例提供的又一种实时码流播放时间漂移获取单元的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供了一种处理音频流异常播放方法,通过获取缓存中的音频帧数据,并对该音频帧数据的解码参数进行解析,获取相关音频数据,并记录第一帧音频帧数据的时间戳,对解析后的音频帧数据进行解码渲染处理,并进行输出,通过第一帧时间戳以及相关音频数据来获取实际音频渲染时间,进而获取实时码流播放漂移,以判断当前音频流是否存在异常,当存在异常时,将进行音频复位处理,可有效处理由于码流抖动、信号不稳定或者码流跳变等因素导致的声音中断停止问题,且可实时对音频处理过程进行监控,对异常情况及时处理,提高了音频播放的稳定性,减小音频播放卡顿的情况。
实施例一、
图1示出了本发明实施例提供的一种处理音频流异常播放方法,详述如下:
在步骤S110中,获取缓存中的音频帧数据。
在本发明实施例中,音频帧数据具体可通过网络端口或者USB端口等通信端口接收到实时的音视频流数据,经解复用模块解复用处理后,进行缓存的音频数据。
在步骤S120中,对所述音频帧数据的解码参数进行解析,获取相关音频数据,并记录第一帧音频帧数据的时间戳。
作为本发明的一个实施例,音频帧数据包括音频帧序列,将获取的音频帧序列传输到AudioQueue音频处理框架中进行播放处理,AudioQueue音频处理框架接收到音频帧序列后,通过对音频帧序列的PES包头进行解析获取相关音频数据,并记录第一帧音频帧数据对应的时间戳PTS0。
其中,时间戳可用以表示在声音界面输出声音的时间,可通过解复用模块从音频流数据中解析获取。
在本发明实施例中,第一帧音频帧数据可为音频帧数据AudioQueue系统框架接收的音频帧数据的第一帧音频。
在本发明实施例中,解码参数包括音频格式,采样率,帧大小,帧时长等,相关音频数据为经过对音频帧数据的解码参数进行解析后,获取的当前传输的音频帧数据的音频格式,采样率,帧大小,帧时长等具体的数据,比如,解析后得到当前解析的音频帧数据的采样数为1024个。
在步骤S130中,对解析后的音频帧数据进行解码渲染,并读取音频采样数。
在本发明实施例中,当音频播放初始化完成后,进入音频帧播放处理流程,并不断将后续的音频数据传输到AudioQueue音频处理框架进行解码渲染后进行输出,声音正常播放,并通过AudioQueue音频处理框架的输出端读取音频采样数。
在本发明实施例中,音频采样数为音频帧数据的采样的次数,由于音频处理时是通过将声波波形转换成一连串的二进制数据来再现原始声音的,实现这个步骤使用的设备是模/数转换器(A/D)它以每秒上万次的速率对声波进行采样,所以音频采样数即为音频采集的次数。
在步骤S140中,根据所述音频采样数、相关音频数据以及所述第一帧音频帧数据的时间戳,获取实际音频渲染时间。
在本发明实施例中,相关音频数据包括音频采样率以及音频帧时长,音频采样率为每帧音频对应的音频采样数,而音频帧时长为每个音频帧的播放时长。
在本发明实施例中,当读取到音频采样数时,通过音频采样数以及音频采样率之间的商,获取音频帧数,并根据音频帧数与音频帧时长时间的乘积,获取音频渲染时间,之后,根据获取的第一帧音频帧的时间戳与音频渲染时间之间的和,得到实际音频渲染时间PTS。
在本发明实施例中,实际音频渲染时间PTS可提供给视频帧数据作为同步参考,使得视频处理可以根据音频处理的节奏,以达到同步播放的效果。
在步骤S150中,根据所述实际音频渲染时间,获取实时码流播放时间漂移。
在本发明实施例中,实时码流播放时间漂移为音频播放时,码流播放的时间长度。
在本发明实施例中,在音频帧数据解码过程中,实时记录音频缓冲区中最新进入的音频帧及其对应的时间戳PTSN,根据该时间戳PTSN与实际音频渲染时间PTS之间的差值,获取实时码流播放时间漂移,即,实时码流播放时间漂移=pts_drift=ptsN-pts。
在步骤S160中,根据所述实时码流播放时间漂移,判断所述音频帧数据是否存在异常。
在本发明实施例中,音频帧数据的异常情况可为因码流抖动、信号不稳定或者码流跳变等因素导致的声音中断停止情况。
在本发明实施例中,判断音频帧数据是否存在异常可通过如下方式进行判断:
判断所述实时码流播放时间漂移是否超过第一预设时间阈值。
具体的,当获取实时码流播放时间漂移后,将其与第一预设时间阈值进行比对,判断其是否超过第一预设时间阈值时,比如,实时码流播放时间漂移为3秒,第一预设时间阈值为2秒时,则说明实时码流播放时间漂移超过预设的时间阈值
在步骤S170中,当判断结果为是时,启动复位音频处理操作。
在本发明实施例中,由于当音频帧数据出现异常时,会出现声音终端或者爆音的情况出现,会影响音频处理设备的寿命以及声音播出质量,因此在出现音频帧数据异常时,可对AudioQueue音频处理框架进行复位处理,重新进行音频播放处理,以解决音频异常带来的音频播放卡顿的情况。
在本发明实施例中,当判断结果为否时,则正常播放。
参见图2、在本发明实施例中,步骤S150中,根据所述实际音频渲染时间,获取实时码流播放时间漂移,包括:
在步骤S151中,实时获取解码过程中最新进入缓存的音频帧的时间戳。
在步骤S152中,根据所述实际音频渲染时间以及所述时间戳之间的差值,获取实时码流播放时间漂移。
在本发明实施例中,实时码流播放时间漂移为音频播放时,码流播放的时间长度。
在本发明实施例中,在音频帧数据解码过程中,实时记录音频缓冲区中最新进入的音频帧及其对应的时间戳PTSN,根据该时间戳PTSN与实际音频渲染时间PTS之间的差值,获取实时码流播放时间漂移,即,实时码流播放时间漂移=pts_drift=ptsN-pts。
参见图3,在本发明实施例中,相关音频数据包括音频采样率以及音频帧时长,步骤S140中,所述根据所述相关音频数据以及所述第一帧音频帧数据的时间戳,获取实际音频渲染时间,包括:
在步骤S141中,根据所述音频采样数以及音频采样率之间的商,获取音频帧数。
在本发明实施例中,相关音频数据包括音频采样率以及音频帧时长,音频采样率为每帧音频对应的音频采样数,而音频帧时长为每个音频帧的播放时长。
在本发明实施例中,音频采样率为每帧音频数据对应的采样数,因此在获取到音频采样数后,根据音频采样数以及音频采样率之间的商,即可获取采集到的音频采样数对应的音频帧数。
在步骤S142中,根据所述音频帧数与所述音频帧时长的乘积,计算音频渲染时间。
在本发明实施例中,在获取到音频帧数后,根据解析到的音频帧时长与音频帧数之间的乘积,获取音频帧的音频渲染时间,比如,音频帧数为100,音频帧时长为0.01秒,则音频渲染时间为1秒。
在步骤S143中,根据所述第一帧音频帧数据的时间戳以及所述音频渲染时间之间的和,获取实际音频渲染时间。
在本发明实施例中,在本发明实施例中,第一帧音频帧数据可为音频帧数据AudioQueue系统框架接收的音频帧数据的第一帧音频。
在本发明实施例中,实际音频渲染时间PTS可提供给视频帧数据作为同步参考,使得视频处理可以根据音频处理的节奏,以达到同步播放的效果。
在本发明实施例中,实际音频渲染时间可以通过第一帧音频帧的时间戳与音频渲染时间之间的和进行获取,比如,第一帧音频帧的时间戳为3秒,音频渲染时间为5秒,则实际音频渲染时间为8秒。
参见图4、在本发明实施例中,步骤S110中,所述获取缓存中的音频帧数据,之前包括:
在步骤S111中,实时接收音频流数据。
在本发明实施例中,可通过网络端口、USB端口等通信端口实时接收音频流数据,该音频流数据可为压缩音频数据或者原始音频数据。
在步骤S112中,对所述音频流数据进行解复用,以获取音频帧数据。
在本发明实施例中,当接收音频流数据后,通过解复用模块将该音频流数据中类型相同的Packet进行存储,分别处理。以将音频或者其他业务信息的数据区分开来。其作用在于,将音频流数据中数据包分离,相同节目的TS包进行提取组合成音频帧的数据块。
在步骤S113中,对所述音频帧数据进行缓存与平滑处理。
在本发明实施例中,对音频帧数据进行缓冲以及平滑处理,主要通过开辟一块内存,用于存储解复用后输出的音频帧数据,由于实时传输流可能存在延时或者抖动,同时系统也存在调度的上分配,因此解复用模块对实时音频流数据的处理输出就会有瞬时峰值及低谷,将会发生在下一级的消费则会对流的抖动不能适应,导致播放异常的问题,因此需要对解复用后的音频帧数据进行平滑缓冲,即流在内存中缓存下来,然后以一定的消费速度向一级模块输入,起到了平滑作用。
实施例二、
图5示出了本发明实施例提供的另一种处理音频流异常播放方法,详述如下:
在本发明实施例中,相关音频数据包括音频帧时长,所述方法还包括:
在步骤S210中,计算多个连续音频帧的解码消耗平均时长。
在本发明实施例中,当音频帧数据解析之后,通过AudioQueue音频处理框架进行解码渲染并输出,同时统计连续多个音频帧的解码消耗时间,并根据AudioQueue音频处理框架接收音频帧数据的时间,获取两个时间之间的差值,并根据音频帧数计算每帧音频帧消费的时间长度,该时间长度即为解码消耗平均时长。
在本发明实施例中,可周期性对解码消耗平均时长进行监控,并保持更新,比如,每3个小时监控一次,当发生变化时,及时进行更新。
在步骤S220中,计算所述音频帧的解码消耗平均时长与所述音频帧时长之间的差值。
在步骤S230中,当所述差值大于第二预设时间阈值时,启动复位音频处理操作。
在本发明实施例中,当获取到音频帧的解码消耗平均时长后,根据解析获取的音频帧时长,并计算两者之间的差值,通过将该差值与预设第二预设时间阈值进行比对,当该差值大于预设第二预设时间阈值时,启动复位音频处理操作。
其中,第二预设时间阈值可以为具体的数据,比如,3秒、10秒等,具体可以根据实际情况进行设置,本发明不做限定。
在本发明实施例中,通过计算音频帧的解码平均时长,并根据音频帧时长与解码平均时长之间的差值来进行音频复位处理,在接收MPEG2 TS传输流时,由于MPEG2 TS传输流一般来自DVB-T(地面基站发射塔)或者DVB-S(卫星)前端,都是无线传输,信号屏蔽或者干扰严重导致的信号质量差,因此,通过上述方式可以实时对音频帧数据进行监控,并且音频帧时长与解码平均时长之间的差值可以灵敏的反映信号质量的变化情况,若是超出第二预设时间阈值,会导致AudioQueue音频处理框架在音频帧的输出时连续性被破坏而产生爆音或声音中断,通过在音频解码流程动态监控这个差值,及时的去复位AudioQueue音频处理机制,主动修复音频播放。
实施例三、
图6示出了本发明实施例提供的一种处理音频流异常播放装置,为了便于说明,仅示出了与本发明实施例相关的部分。
处理音频流异常播放装置300包括:音频帧数据获取单元31、解析单元32、解码单元33、实际音频渲染时间获取单元34、实时码流播放时间漂移获取单元35、判断单元36以及第一复位启动单元37。
音频帧数据获取单元31,用于获取缓存中的音频帧数据。
在本发明实施例中,音频帧数据具体可通过网络端口或者USB端口等通信端口接收到实时的音视频流数据,经解复用模块解复用处理后,进行缓存的音频数据。
解析单元32,用于对所述音频帧数据的解码参数进行解析,获取相关音频数据,并记录第一帧音频帧数据的时间戳。
作为本发明的一个实施例,音频帧数据包括音频帧序列,将获取的音频帧序列传输到AudioQueue音频处理框架中进行播放处理,AudioQueue音频处理框架接收到音频帧序列后,通过对音频帧序列的PES包头进行解析获取相关音频数据,并记录第一帧音频帧数据对应的时间戳PTS0。
其中,时间戳可用以表示在声音界面输出声音的时间,可通过解复用模块从音频流数据中解析获取。
在本发明实施例中,第一帧音频帧数据可为音频帧数据AudioQueue系统框架接收的音频帧数据的第一帧音频。
在本发明实施例中,解码参数包括音频格式,采样率,帧大小,帧时长等,相关音频数据为经过对音频帧数据的解码参数进行解析后,获取的当前传输的音频帧数据的音频格式,采样率,帧大小,帧时长等具体的数据,比如,解析后得到当前解析的音频帧数据的采样数为1024个。
解码单元33,用于对解析后的音频帧数据进行解码渲染,并读取音频采样数。
在本发明实施例中,当音频播放初始化完成后,进入音频帧播放处理流程,并不断将后续的音频数据传输到AudioQueue音频处理框架进行解码渲染后进行输出,声音正常播放,并通过AudioQueue音频处理框架的输出端读取音频采样数。
在本发明实施例中,音频采样数为音频帧数据的采样的次数,由于音频处理时是通过将声波波形转换成一连串的二进制数据来再现原始声音的,实现这个步骤使用的设备是模/数转换器(A/D)它以每秒上万次的速率对声波进行采样,所以音频采样数即为音频采集的次数。
实际音频渲染时间获取单元34,用于根据所述音频采样数、相关音频数据以及所述第一帧音频帧数据的时间戳,获取实际音频渲染时间。
在本发明实施例中,相关音频数据包括音频采样率以及音频帧时长,音频采样率为每帧音频对应的音频采样数,而音频帧时长为每个音频帧的播放时长。
在本发明实施例中,当读取到音频采样数时,通过音频采样数以及音频采样率之间的商,获取音频帧数,并根据音频帧数与音频帧时长时间的乘积,获取音频渲染时间,之后,根据获取的第一帧音频帧的时间戳与音频渲染时间之间的和,得到实际音频渲染时间PTS。
在本发明实施例中,实际音频渲染时间PTS可提供给视频帧数据作为同步参考,使得视频处理可以根据音频处理的节奏,以达到同步播放的效果。
实时码流播放时间漂移获取单元35,用于根据所述实际音频渲染时间,获取实时码流播放时间漂移。
在本发明实施例中,实时码流播放时间漂移为音频播放时,码流播放的时间长度。
在本发明实施例中,在音频帧数据解码过程中,实时记录音频缓冲区中最新进入的音频帧及其对应的时间戳PTSN,根据该时间戳PTSN与实际音频渲染时间PTS之间的差值,获取实时码流播放时间漂移,即,实时码流播放时间漂移=pts_drift=ptsN-pts。
判断单元36,用于根据所述实时码流播放时间漂移,判断所述音频帧数据是否存在异常。
在本发明实施例中,音频帧数据的异常情况可为因码流抖动、信号不稳定或者码流跳变等因素导致的声音中断停止情况。
在本发明实施例中,判断音频帧数据是否存在异常可通过如下方式进行判断:
判断所述实时码流播放时间漂移是否超过第一预设时间阈值。
具体的,当获取实时码流播放时间漂移后,将其与第一预设时间阈值进行比对,判断其是否超过第一预设时间阈值时,比如,实时码流播放时间漂移为3秒,第一预设时间阈值为2秒时,则说明实时码流播放时间漂移超过预设的时间阈值
第一复位启动单元37,用于当判断结果为是时,启动复位音频处理操作。
在本发明实施例中,由于当音频帧数据出现异常时,会出现声音终端或者爆音的情况出现,会影响音频处理设备的寿命以及声音播出质量,因此在出现音频帧数据异常时,可对AudioQueue音频处理框架进行复位处理,重新进行音频播放处理,以解决音频异常带来的音频播放卡顿的情况。
在本发明实施例中,当判断结果为否时,则正常播放。
参见图7,在本发明实施例中,实时码流播放时间漂移获取单元35:
时间戳获取模块351,用于实时获取解码过程中最新进入缓存的音频帧的时间戳;
实时码流播放时间漂移获取模块352,用于根据所述实际音频渲染时间以及所述时间戳之间的差值,获取实时码流播放时间漂移。
在本发明实施例中,实时码流播放时间漂移为音频播放时,码流播放的时间长度。
在本发明实施例中,在音频帧数据解码过程中,实时记录音频缓冲区中最新进入的音频帧及其对应的时间戳PTSN,根据该时间戳PTSN与实际音频渲染时间PTS之间的差值,获取实时码流播放时间漂移,即,实时码流播放时间漂移=pts_drift=ptsN-pts。
参见图8、在本发实际音频渲染时间获取单元明实施例中,相关音频数据包括音频采样率以及音频帧时长,34,包括:
音频帧数获取模块341,用于根据所述音频采样数以及音频采样率之间的商,获取音频帧数。
在本发明实施例中,相关音频数据包括音频采样率以及音频帧时长,音频采样率为每帧音频对应的音频采样数,而音频帧时长为每个音频帧的播放时长。
在本发明实施例中,音频采样率为每帧音频数据对应的采样数,因此在获取到音频采样数后,根据音频采样数以及音频采样率之间的商,即可获取采集到的音频采样数对应的音频帧数。
音频渲染时间计算模块342,用于根据所述音频帧数与所述音频帧时长的乘积,计算音频渲染时间。
在本发明实施例中,在获取到音频帧数后,根据解析到的音频帧时长与音频帧数之间的乘积,获取音频帧的音频渲染时间,比如,音频帧数为100,音频帧时长为0.01秒,则音频渲染时间为1秒。
实际音频渲染时间获取模块343,实际音频渲染时间获取模块,用于根据所述第一帧音频帧数据的时间戳以及所述音频渲染时间之间的和,获取实际音频渲染时间。
在本发明实施例中,在本发明实施例中,第一帧音频帧数据可为音频帧数据AudioQueue系统框架接收的音频帧数据的第一帧音频。
在本发明实施例中,实际音频渲染时间PTS可提供给视频帧数据作为同步参考,使得视频处理可以根据音频处理的节奏,以达到同步播放的效果。
在本发明实施例中,实际音频渲染时间可以通过第一帧音频帧的时间戳与音频渲染时间之间的和进行获取,比如,第一帧音频帧的时间戳为3秒,音频渲染时间为5秒,则实际音频渲染时间为8秒。
参见图9,在本发明实施例中,装置还包括:
音频流数据接收单元41,用于实时接收音频流数据。
在本发明实施例中,可通过网络端口、USB端口等通信端口实时接收音频流数据,该音频流数据可为压缩音频数据或者原始音频数据。
解复用模块42,用于对所述音频流数据进行解复用,以获取音频帧数据。
在本发明实施例中,当接收音频流数据后,通过解复用模块将该音频流数据中类型相同的Packet进行存储,分别处理。以将音频或者其他业务信息的数据区分开来。其作用在于,将音频流数据中数据包分离,相同节目的TS包进行提取组合成音频帧的数据块。
缓存模块43,用于对所述音频帧数据进行缓存与平滑处理在本发明实施例中,对音频帧数据进行缓冲以及平滑处理,主要通过开辟一块内存,用于存储解复用后输出的音频帧数据,由于实时传输流可能存在延时或者抖动,同时系统也存在调度的上分配,因此解复用模块对实时音频流数据的处理输出就会有瞬时峰值及低谷,将会发生在下一级的消费则会对流的抖动不能适应,导致播放异常的问题,因此需要对解复用后的音频帧数据进行平滑缓冲,即流在内存中缓存下来,然后以一定的消费速度向一级模块输入,起到了平滑作用。
实施例二、
图10示出了本发明实施例提供的另一种处理音频流异常播放装置的结构500,为了便于说明,仅示出了与本发明实施例相关的部分。
在本发明实施例中,相关音频数据包括音频帧时长,所述装置500还包括:
音频帧数据获取单元31、解析单元32、解码单元33、平均时长计算模块51、计算单元52以及第二复位启动单元53。
平均时长计算模块51,用于计算多个连续音频帧的解码消耗平均时长。
在本发明实施例中,当音频帧数据解析之后,通过AudioQueue音频处理框架进行解码渲染并输出,同时统计连续多个音频帧的解码消耗时间,并根据AudioQueue音频处理框架接收音频帧数据的时间,获取两个时间之间的差值,并根据音频帧数计算每帧音频帧消费的时间长度,该时间长度即为解码消耗平均时长。
在本发明实施例中,可周期性对解码消耗平均时长进行监控,并保持更新,比如,每3个小时监控一次,当发生变化时,及时进行更新。
计算单元52,用于计算所述音频帧的解码消耗平均时长与所述音频帧时长之间的差值。
第二复位启动单元53,用于当所述差值大于第二预设时间阈值时,启动复位音频处理操作。
在本发明实施例中,当获取到音频帧的解码消耗平均时长后,根据解析获取的音频帧时长,并计算两者之间的差值,通过将该差值与预设第二预设时间阈值进行比对,当该差值大于预设第二预设时间阈值时,启动复位音频处理操作。
其中,第二预设时间阈值可以为具体的数据,比如,3秒、10秒等,具体可以根据实际情况进行设置,本发明不做限定。
在本发明实施例中,通过计算音频帧的解码平均时长,并根据音频帧时长与解码平均时长之间的差值来进行音频复位处理,在接收MPEG2 TS传输流时,由于MPEG2 TS传输流一般来自DVB-T(地面基站发射塔)或者DVB-S(卫星)前端,都是无线传输,信号屏蔽或者干扰严重导致的信号质量差,因此,通过上述方式可以实时对音频帧数据进行监控,并且音频帧时长与解码平均时长之间的差值可以灵敏的反映信号质量的变化情况,若是超出第二预设时间阈值,会导致AudioQueue音频处理框架在音频帧的输出时连续性被破坏而产生爆音或声音中断,通过在音频解码流程动态监控这个差值,及时的去复位AudioQueue音频处理机制,主动修复音频播放。
本发明实施例还提供了一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上述所述的处理音频异常播放方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序(指令),其特征在于,所述计算机程序(指令)被处理器执行时实现如上述的处理音频异常播放方法的步骤。
示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行,以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。例如,计算机程序可以被分割成上述各个方法实施例提供的报站方法的步骤。
本领域技术人员可以理解,上述计算机装置的描述仅仅是示例,并不构成对计算机装置的限定,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件,例如可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述计算机装置集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信号以及软件分发介质等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种音频流播放异常处理方法,其特征在于,所述方法包括:
获取缓存中的音频帧数据;
对所述音频帧数据的解码参数进行解析,获取相关音频数据,并记录第一帧音频帧数据的时间戳,所述相关音频数据包括所述音频帧数据的音频格式、音频采样率、音频帧时长,所述音频采样率为每帧音频对应的音频采样数;
对解析后的音频帧数据进行解码渲染,并读取音频采样数;
根据所述音频采样数以及音频采样率之间的商,获取音频帧数;
根据所述音频帧数与所述音频帧时长的乘积,计算音频渲染时间;
根据所述第一帧音频帧数据的时间戳以及所述音频渲染时间之间的和,获取实际音频渲染时间;
根据所述实际音频渲染时间和音频帧数据解码过程中当前最新进入缓冲的音频帧对应的时间戳之间的差值,获取实时码流播放时间漂移;
根据所述实时码流播放时间漂移,判断所述音频帧数据是否存在异常;
当判断结果为是时,启动复位音频处理操作。
2.如权利要求1所述的音频流播放异常处理方法,其特征在于,所述判断所述音频帧数据是否存在异常,包括:
判断所述实时码流播放时间漂移是否超过第一预设时间阈值。
3.如权利要求1所述的音频流播放异常处理方法,其特征在于,所述方法还包括:
计算多个连续音频帧的解码消耗平均时长;
计算所述音频帧的解码消耗平均时长与所述音频帧时长之间的差值;
当所述差值大于第二预设时间阈值时,启动复位音频处理操作。
4.如权利要求1所述的音频流播放异常处理的方法,其特征在于,所述获取缓存中的音频帧数据,之前包括:
实时接收音频流数据;
对所述音频流数据进行解复用,以获取音频帧数据;
对所述音频帧数据进行缓存与平滑处理。
5.一种音频流播放异常处理装置,其特征在于,所述装置包括:
音频帧数据获取单元,用于获取缓存中的音频帧数据;
解析单元,用于对所述音频帧数据的解码参数进行解析,获取相关音频数据,并记录第一帧音频帧数据的时间戳,所述相关音频数据包括所述音频帧数据的音频格式、音频采样率、音频帧时长,所述音频采样率为每帧音频对应的音频采样数;
解码单元,用于对解析后的音频帧数据进行解码渲染,并读取音频采样数;
实际音频渲染时间获取单元,用于根据所述音频采样数以及音频采样率之间的商,获取音频帧数;以及根据所述音频帧数与所述音频帧时长的乘积,计算音频渲染时间;以及根据所述第一帧音频帧数据的时间戳以及所述音频渲染时间之间的和,获取实际音频渲染时间;
实时码流播放时间漂移获取单元,用于根据所述实际音频渲染时间和音频帧数据解码过程中当前最新进入缓冲的音频帧对应的时间戳之间的差值,获取实时码流播放时间漂移;
判断单元,用于根据所述实时码流播放时间漂移,判断所述音频帧数据是否存在异常;
第一复位启动单元,用于当判断结果为是时,启动复位音频处理操作。
6.如权利要求5所述的音频流播放异常处理装置,其特征在于,所述实时码流播放时间漂移获取单元,包括:
时间戳获取模块,用于实时获取解码过程中最新进入缓存的音频帧的时间戳;
实时码流播放时间漂移获取模块,用于根据所述实际音频渲染时间以及所述时间戳之间的差值,获取实时码流播放时间漂移;
所述判断单元,包括:
判断所述实时码流播放时间漂移是否超过第一预设时间阈值。
7.如权利要求5所述的音频流播放异常处理装置,其特征在于,所述装置还包括:
平均时长计算模块,用于计算多个连续音频帧的解码消耗平均时长;
计算单元,用于计算所述音频帧的解码消耗平均时长与所述音频帧时长之间的差值;
第二复位启动单元,用于当所述差值大于第二预设时间阈值时,启动复位音频处理操作。
8.如权利要求5所述的音频流播放异常处理装置,其特征在于,所述装置,还包括:
音频流数据接收单元,用于实时接收音频流数据;
解复用单元,用于对所述音频流数据进行解复用,以获取音频帧数据;
缓存单元,用于对所述音频帧数据进行缓存与平滑处理。
9.一种计算机装置,其特征在于,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-4中任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-4中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710832499.6A CN107566890B (zh) | 2017-09-15 | 2017-09-15 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710832499.6A CN107566890B (zh) | 2017-09-15 | 2017-09-15 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107566890A CN107566890A (zh) | 2018-01-09 |
CN107566890B true CN107566890B (zh) | 2020-05-22 |
Family
ID=60981159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710832499.6A Active CN107566890B (zh) | 2017-09-15 | 2017-09-15 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107566890B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108495164B (zh) * | 2018-04-09 | 2021-01-29 | 珠海全志科技股份有限公司 | 音视频同步处理方法及装置、计算机装置及存储介质 |
CN109635133B (zh) * | 2018-12-18 | 2022-12-09 | 腾讯音乐娱乐科技(深圳)有限公司 | 可视化音频播放方法、装置、电子设备及存储介质 |
CN109905752B (zh) * | 2019-03-14 | 2021-06-08 | 海信视像科技股份有限公司 | 音频数据处理方法、装置、电子设备和存储介质 |
CN110459233B (zh) * | 2019-03-19 | 2022-02-11 | 深圳壹秘科技有限公司 | 语音的处理方法、装置和计算机可读存储介质 |
CN109905763B (zh) * | 2019-03-20 | 2021-09-10 | 四川长虹电器股份有限公司 | 优化播放器音频播放卡顿的方法 |
CN110755843B (zh) * | 2019-10-24 | 2023-03-14 | 腾讯科技(深圳)有限公司 | 游戏音频的处理方法和装置、存储介质及电子装置 |
CN111131917B (zh) * | 2019-12-26 | 2021-12-28 | 国微集团(深圳)有限公司 | 音频频谱实时同步方法、播放装置 |
CN112272327B (zh) * | 2020-10-26 | 2021-10-15 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及设备 |
CN112423096B (zh) * | 2020-11-03 | 2022-10-04 | 上海哔哩哔哩科技有限公司 | 播放优化方法及系统 |
CN112437339A (zh) * | 2020-11-10 | 2021-03-02 | 深圳Tcl新技术有限公司 | 音频输出控制方法及装置、智能电视机、存储介质 |
CN114598895B (zh) * | 2020-12-04 | 2023-08-11 | 腾讯云计算(长沙)有限责任公司 | 音视频处理方法、装置、设备及计算机可读存储介质 |
CN114827640B (zh) * | 2021-01-28 | 2024-03-01 | 北京锐马视讯科技有限公司 | 安全实时编转码方法和装置、设备及存储介质 |
CN114827696B (zh) * | 2021-01-29 | 2023-06-27 | 华为技术有限公司 | 一种跨设备的音视频数据同步播放的方法和电子设备 |
CN113965786B (zh) * | 2021-09-29 | 2024-03-26 | 杭州当虹科技股份有限公司 | 精准控制视频输出播放的方法 |
CN114121050A (zh) * | 2021-11-30 | 2022-03-01 | 云知声智能科技股份有限公司 | 音频播放方法、装置、电子设备和存储介质 |
CN115394316A (zh) * | 2022-08-23 | 2022-11-25 | 汉桑(南京)科技股份有限公司 | 一种音频处理方法、系统、装置及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101036389A (zh) * | 2004-09-02 | 2007-09-12 | 索尼株式会社 | 内容接收器、视频-音频输出定时控制方法和内容提供系统 |
CN101533640A (zh) * | 2009-04-16 | 2009-09-16 | 北京中星微电子有限公司 | 一种数字音频的播放方法和装置 |
CN103621102A (zh) * | 2011-05-12 | 2014-03-05 | 英特尔公司 | 用于音频与视频同步的技术 |
CN103686315A (zh) * | 2012-09-13 | 2014-03-26 | 深圳市快播科技有限公司 | 一种音视频同步播放方法及装置 |
CN104620595A (zh) * | 2012-10-11 | 2015-05-13 | 坦戈迈公司 | 主动式视频帧丢弃 |
CN105245976A (zh) * | 2015-09-30 | 2016-01-13 | 合一网络技术(北京)有限公司 | 音频和视频同步播放的方法及系统 |
CN106686445A (zh) * | 2015-11-05 | 2017-05-17 | 北京中广上洋科技股份有限公司 | 对多媒体文件进行按需跳转的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7313313B2 (en) * | 2002-07-25 | 2007-12-25 | Microsoft Corporation | Audio/video synchronization with no clean points |
US20070165837A1 (en) * | 2005-12-30 | 2007-07-19 | Microsoft Corporation | Synchronizing Input Streams for Acoustic Echo Cancellation |
-
2017
- 2017-09-15 CN CN201710832499.6A patent/CN107566890B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101036389A (zh) * | 2004-09-02 | 2007-09-12 | 索尼株式会社 | 内容接收器、视频-音频输出定时控制方法和内容提供系统 |
CN101533640A (zh) * | 2009-04-16 | 2009-09-16 | 北京中星微电子有限公司 | 一种数字音频的播放方法和装置 |
CN103621102A (zh) * | 2011-05-12 | 2014-03-05 | 英特尔公司 | 用于音频与视频同步的技术 |
CN103686315A (zh) * | 2012-09-13 | 2014-03-26 | 深圳市快播科技有限公司 | 一种音视频同步播放方法及装置 |
CN104620595A (zh) * | 2012-10-11 | 2015-05-13 | 坦戈迈公司 | 主动式视频帧丢弃 |
CN105245976A (zh) * | 2015-09-30 | 2016-01-13 | 合一网络技术(北京)有限公司 | 音频和视频同步播放的方法及系统 |
CN106686445A (zh) * | 2015-11-05 | 2017-05-17 | 北京中广上洋科技股份有限公司 | 对多媒体文件进行按需跳转的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107566890A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566890B (zh) | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 | |
CN107566889B (zh) | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 | |
CN107147919B (zh) | 直播快速启播方法及系统 | |
US20160337691A1 (en) | System and method for detecting streaming of advertisements that occur while streaming a media program | |
US9369780B2 (en) | Methods and systems for detecting one or more advertisement breaks in a media content stream | |
US8638755B2 (en) | Content-based handover method and system | |
CN107277558A (zh) | 一种实现直播视频同步的播放器客户端、系统及方法 | |
US8542723B2 (en) | Information processing apparatus and information generation method | |
US20240127854A1 (en) | Methods and apparatus to perform speed-enhanced playback of recorded media | |
CN107484009A (zh) | 一种适用于网络直播的流媒体播放方法和装置 | |
CN109168083A (zh) | 一种流媒体实时播放方法及装置 | |
CN107371053B (zh) | 音频视频流对比分析方法及装置 | |
CN103517135A (zh) | 一种连续播放mp4格式视频文件的方法、系统及电视 | |
US10284889B1 (en) | Determining an actual start of program content relative to a scheduled start of the program content | |
US20230300390A1 (en) | Methods and apparatus for affiliate interrupt detection | |
KR20110063004A (ko) | 키 프레임 추출 장치 및 방법과 이를 이용한 방송 녹화 장치 및 방법 | |
CN105898625B (zh) | 一种播放处理方法及终端设备 | |
CN112771881A (zh) | 弹幕处理方法、装置、电子设备及计算机可读取存储介质 | |
CN112019873A (zh) | 视频码率调整方法、装置和电子设备 | |
CN105847990B (zh) | 播放媒体文件的方法和设备 | |
CN103501457A (zh) | 一种节目播放的方法及设备 | |
JP2008017328A (ja) | 録画機能付デジタル放送受信機 | |
CN110855645B (zh) | 流媒体数据播放方法、装置 | |
CN111131868B (zh) | 基于播放器的视频录制方法及装置 | |
CN117354579A (zh) | 投屏方法、投屏装置、计算机设备及计算机可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 22A, Guoshi building, 1801 Shahe West Road, high tech Zone, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Patentee after: GUOWEI GROUP (SHENZHEN) Co.,Ltd. Address before: 518000 Guangdong city of Shenzhen province Nanshan District high tech Industrial Park in the Southern District high SSMEC R & D Building 1 floor 2 floor west part Patentee before: SHENZHEN STATE MICRO TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |