一种音视频播放方法及装置与流程

文档序号:11157685阅读:401来源:国知局
一种音视频播放方法及装置与制造工艺

本发明涉及多媒体技术领域,特别涉及一种音视频播放方法及装置。



背景技术:

随着互联网技术的发展,用户获取多媒体信息的渠道越来越便捷,各种多媒体播放器呈现飞速发展的趋势,音视频同步播放是体现多媒体播放器的服务质量的一项重要内容。

音视频同步是指要保持音频帧和视频帧时间上的同步关系,可以通过减小音频帧和视频帧的播放时间差来实现。由于每个音频帧带有音频时间戳,每个视频帧带有视频时间戳,音视频同步方法主要使用的是时间戳同步方法,即首先选择一个参考时钟(要求参考时钟上的时间是线性递增的);生成音视频数据流时依据参考时钟上的时间给每个音频数据块和视频数据块都打上时间戳(一般包括开始时间和结束时间);在播放时,读取数据块上的时间戳,同时参考当前参考时钟上的时间来安排播放:如果数据块的开始时间大于当前参考时钟上的时间,则不急于播放该数据块,直到参考时钟达到数据块的开始时间;如果数据块的开始时间小于当前参考时钟上的时间,则尽快播放这块数据,以使播放进度追上参考时钟。

多媒体播放器对于接收的音频帧和视频帧,都需要进行解码后才能播放,多媒体播放器通过音频设备播放音频帧,通过视频设备播放视频帧。多媒体播放器在处理音频帧时,主要有两种方式:一种是多媒体播放器需要将音频帧解码还原成原始音频数据,即PCM(Pulse Code Modulation,线性脉冲编码调制)音频数据之后,再将PCM音频数据推送给音频设备进行播放,解码是通过播放器内置的解码器完成;另一种是多媒体播放器不需要将音频帧解码还原成原始音频数据,直接将音频帧输出给音频设备,由音频设备自行解码播放,这种方式也称为音频直通输出模式。

对于处于音频直通输出模式下的多媒体播放器来说,实现音视频同步播放是一个技术难点。目前,有的多媒体播放器没有进行音视频同步处理,例如:几乎没有多媒体播放器支持杜比EAC3音频的同步处理。由此可见,现有的多媒体播放器在音频直通输出模式下,缺乏实现音视频同步的播放方法,造成多媒体播放器的播放效果不佳。



技术实现要素:

本发明实施例的目的在于提供一种音视频播放方法及装置,以实现多媒体播放器在音频直通模式下,音频帧和视频帧的同步播放,提高多媒体播放器的播放效果。

为达到上述目的,本发明实施例公开了一种音视频播放方法及装置,应用于处于音频直通模式下的多媒体播放器,所述方法包括:

每隔预设同步时长或每到达预设同步时间点时,计算当前音频缓冲区的缓冲时间,其中,所述当前音频缓冲区存储的音频帧为按照预设封装标准封装后的音频帧;

根据所述缓冲时间以及第一目标时间戳,确定音频播放时间,其中,所述第一目标时间戳为所述音频缓冲区当前存储的音频帧中时间戳最小的音频帧的时间戳;

根据所述音频播放时间以及第二目标时间戳,确定当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧是否满足同步播放条件,其中,第二目标时间戳为所述视频缓冲区当前存储的视频帧中时间戳最小的视频帧的时间戳;

如果满足,将视频缓冲区当前存储的视频帧推送给视频设备播放,并将音频缓冲区当前存储的音频帧推送给音频设备播放。

可选的,所述预设封装标准为:IEC 61937标准;所述音频帧为:基于EAC3格式的音频帧。

可选的,所述计算当前音频缓冲区的缓冲时间,包括:

根据公式:计算当前音频缓冲区的缓冲时间;

其中,T为当前音频缓冲区的缓冲时间,M为所述音频缓冲区存储的所有音频帧的总字节数,S为针对音频帧的采样率,N为单个音频帧的字节数。

可选的,所述根据所述缓冲时间以及第一目标时间戳,确定音频播放时间,包括:

将所述缓冲时间与所述第一目标时间戳对应的时间之和确定为音频播放时间。

可选的,所述根据所述音频播放时间以及第二目标时间戳,确定当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧是否满足同步播放条件,包括:

判断所述音频播放时间是否大于所述第二目标时间戳对应的时间,如果是,确定当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧满足同步播放条件。

为达到上述目的,本发明实施例还公开了一种音视频播放装置,应用于处于音频直通模式下的多媒体播放器,所述装置包括:

计算模块,用于每隔预设同步时长或每到达预设同步时间点时,计算当前音频缓冲区的缓冲时间,其中,所述当前音频缓冲区存储的音频帧为按照预设封装标准封装后的音频帧;

第一确定模块,用于根据所述缓冲时间以及第一目标时间戳,确定音频播放时间,其中,所述第一目标时间戳为所述音频缓冲区当前存储的音频帧中时间戳最小的音频帧的时间戳;

第二确定模块,用于根据所述音频播放时间以及第二目标时间戳,确定当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧是否满足同步播放条件,其中,第二目标时间戳为所述视频缓冲区当前存储的视频帧中时间戳最小的视频帧的时间戳;

播放模块,用于在当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧满足同步播放条件的情况下,将视频缓冲区当前存储的视频帧推送给视频设备播放,并将音频缓冲区当前存储的音频帧推送给音频设备播放。

可选的,所述预设封装标准为:IEC 61937标准;所述音频帧为:基于EAC3格式的音频帧。

可选的,所述计算模块,具体用于:

每隔预设同步时长或每到达预设同步时间点时,根据公式:计算当前音频缓冲区的缓冲时间;

其中,T为当前音频缓冲区的缓冲时间,M为所述音频缓冲区存储的所有音频帧的总字节数,S为针对音频帧的采样率,N为单个音频帧的字节数。

可选的,所述第一确定模块,具体用于:

根据所述缓冲时间以及第一目标时间戳,将所述缓冲时间与所述第一目标时间戳对应的时间之和确定为音频播放时间。

可选的,所述第二确定模块,具体用于:

根据所述音频播放时间以及第二目标时间戳,判断所述音频播放时间是否大于所述第二目标时间戳对应的时间,如果是,确定当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧满足同步播放条件。

由上述的技术方案可见,本发明实施例提供的音视频播放方法及装置,每隔预设同步时长或每到达预设同步时间点时,计算当前音频缓冲区的缓冲时间,其中,当前音频缓冲区存储的音频帧为经过按照预设封装标准封装后的音频帧;根据缓冲时间以及第一目标时间戳,确定音频播放时间,其中,第一目标时间戳为音频缓冲区当前存储的音频帧中时间戳最小的音频帧的时间戳;根据音频播放时间以及第二目标时间戳,确定当前音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧是否满足同步播放条件,其中,第二目标时间戳为视频缓冲区当前存储的视频帧中时间戳最小的视频帧的时间戳;如果满足,将视频缓冲区当前存储的视频帧推送给视频设备播放,并将音频缓冲区当前存储的音频帧推送给音频设备播放。

应用本发明实施例,将满足同步播放条件的音频帧和视频帧同时播放,实现了多媒体播放器在音频直通模式下,音视频的同步播放,提高了多媒体播放器的播放效果。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种音视频播放方法的流程示意图;

图2为本发明实施例提供的一种音视频播放装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种音视频播放方法及装置,应用于处于音频直通模式下的多媒体播放器,以下分别进行详细说明。

参见图1,图1为本发明实施例提供的一种音视频播放方法的流程示意图,包括如下步骤:

S101,每隔预设同步时长或每到达预设同步时间点时,计算当前音频缓冲区的缓冲时间。

需要说明的是,当前音频缓冲区存储的音频帧为按照预设封装标准封装后的音频帧。

示例性的,假设预设同步时长为600ms,则每隔600ms,计算当前音频缓冲区的缓冲时间;或者,假设音频时长为2小时,预设同步时间点分别为音频的第10分钟、第30分钟、第60分钟,第90分钟和第105分钟,则每到达第10分钟、第30分钟、第60分钟,第90分钟和第105分钟时,计算当前音频缓冲区的缓冲时间。

具体的,预设封装标准为:IEC 61937标准,音频帧为:基于EAC3格式的音频帧。IEC 61937标准是由国际电工委员会(International Electro technical Commission,IEC)设计的,可用于封装音频帧的国际标准,因此,按照IEC 61937标准封装的音频帧具有通用性,用于播放音频帧的音频设备都支持对按照IEC 61937标准封装的音频帧的解封装以及解码播放。音频格式是指音频文件的编码技术,有多种实现方式,例如:AC3(Audio Coding-3,音频编码3)、AAC(Advanced Audio Coding,高级音频编码)、EAC3(Enhanced AC-3,增强版AC-3)等等,不同格式的音频帧对应的采样率以及编解码方式不一样。按照预设封装标准封装音频帧,会在音频帧前面加一个包头字段,通过获取包头信息,使得音频设备无需解码音频帧,就能获得音频帧的音频格式以及音频帧的起止字节位置,从而提高音频帧的解码速度以及准确度。

例如:按照IEC 61937标准封装EAC3格式的音频帧,则会在EAC3格式的音频帧前面加一个包头,一个包头的长度为8个字节,包头中包括分别占用两个字节的Pa,Pb,Pc和Pd,其中,Pa和Pb为同步字节,Pc为Burst(突发)信息,用于记录数据类型,Pd为负载的长度信息。当检测到Pa值为0xF872,Pb值为0x4E1F时,就可以获得音频帧的起始位置为Pa字节所在位置,当检测到Pc值为0x0015(即21)时,可以确定该音频帧的音频格式为EAC3格式,并且可以确定该音频帧的音频帧长度为6144*4,通过计算包头第8字节的位置与6144*4的和值,获得音频帧的终止位置。

在实际应用中,计算当前音频缓冲区的缓冲时间,可以根据公式:计算当前音频缓冲区的缓冲时间;

其中,T为当前音频缓冲区的缓冲时间,M为音频缓冲区存储的所有音频帧的总字节数,S为针对音频帧的采样率,N为单个音频帧的字节数。

需要说明的是,计算当前音频缓冲区的缓冲时间可以根据当前缓冲区的音频帧的个数A以及每个音频帧的缓冲时间B,计算当前音频缓冲区的缓冲时间T=A×B,其中,M为音频缓冲区存储的所有音频帧的总字节数,L为按照预设封装标准封装后的一个音频帧对应的采样样本个数,N为单个音频帧的字节数;其中,S为针对音频帧的采样率,故而,

相比于现有的处于音频直通模式下的多媒体播放器,对未经封装的音频帧的计算缓冲时间公式:M为音频缓冲区存储的所有音频帧的总字节数,P为一个未经封装的音频帧的字节数,本发明实施例考虑采样率以及封装后的一个音频帧对应的采样样本个数对当前音频缓冲区的缓冲时间的影响,使得当前音频缓冲区的缓冲时间的计算结果更为准确。

需要说明的是,采集的原始声音信号为连续变化的模拟信号,因此,需要将模拟信号经过采样、量化、编码,以获得数字信号,便于多媒体播放器对音频数据的传输和处理。由于,人耳所能听到的声音信号的频率范围为20Hz-20KHZ,因此,音频的最大带宽是20KHZ,根据奈魁斯特(NYQUIST)采样定理,用两倍于一个正弦波的频繁率进行采样就能完全真实地还原该波形。所以,对于声音信号而言,要想对数字信号进行还原成模拟信号,必须将采样率定为40KHz以上。一般来说,对于EAC3格式的音频帧的采样率为48KHz,48KHz采样率表示用48000个数据来描述1秒钟的声音波形。

假设,音频缓冲区存储的所有音频帧的总字节数为100KB,针对音频帧的采样率为48KHz,单个音频帧的字节数为4B,则当前音频缓冲区的缓冲时间为521ms。

S102,根据缓冲时间以及第一目标时间戳,确定音频播放时间。

需要说明的是,第一目标时间戳为音频缓冲区当前存储的音频帧中时间戳最小的音频帧的时间戳,音频帧是按照时间戳从小到大依次存储于音频缓冲区,在播放时,也是根据时间戳从小到大依次播放,因此,第一目标时间戳对应的音频帧,为音频缓冲区中最先播放的音频帧,其余的音频帧按时间戳从小到大依次播放。

具体的,根据缓冲时间以及第一目标时间戳,将缓冲时间与第一目标时间戳对应的时间之和确定为音频播放时间。

假设,当前音频缓冲区的缓冲时间为521ms,第一目标时间戳对应的时间为23ms,则将521+23=544ms确定为音频播放时间。

S103,根据音频播放时间以及第二目标时间戳,确定当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧是否满足同步播放条件,如果满足,执行S104。

需要说明的是,第二目标时间戳为视频缓冲区当前存储的视频帧中时间戳最小的视频帧的时间戳,即第二目标时间戳对应的视频帧为视频缓冲区中最先播放的视频帧。

具体的,根据音频播放时间以及第二目标时间戳,确定当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧是否满足同步播放条件,可以为:

判断音频播放时间是否大于第二目标时间戳对应的时间,如果是,确定当前音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧满足同步播放条件。

需要说明的是,在音频播放时间大于第二目标时间戳对应的时间的情况下,进一步的,还可以考虑音频播放时间与第二目标时间戳对应的时间之差是否小于预设阈值,如果是,则确定当前音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧满足同步播放条件。

可以理解的是,第二目标时间戳对应的时间为第二目标时间戳对应的视频帧的播放时间,选取音频播放时间为参考时间,通过建立音频帧播放时间与参考时间的对应关系,以及视频帧时间戳与参考时间的对应关系,确定音频帧和视频帧的相对时间关系,从而确定音频帧和视频帧的播放时间,以实现音视频的同步播放。在到达音频播放时间时,即将播放的是当前音频缓冲区存储的时间戳最小的音频帧,当音频播放时间大于第二目标时间戳对应的时间时,说明此时视频帧滞后于音频帧,需要立即播放第二目标时间戳对应的视频帧,才能实现音视频同步播放。其中,建立音频帧时间戳与参考时间的对应关系以及视频帧时间戳与参考时间的对应关系,属于现有技术,在此不再赘述。

假设,音频播放时间为544ms,第二目标时间戳对应的时间为520ms,预设阈值为100ms,则根据音频播放时间544ms大于第二目标时间戳对应的时间520ms,可以确定当前音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧满足同步播放条件;或者,进一步考虑音频播放时间与第二目标时间戳对应的时间之差为:544ms-520ms=24ms,小于100ms,则可以确定当前音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧满足同步播放条件。

S104,将视频缓冲区当前存储的视频帧推送给视频设备播放,并将音频缓冲区当前存储的音频帧推送给音频设备播放。

需要说明的是,音频设备和视频设备可以是同一个设备,例如:同时具有播放音频帧和视频帧的电视机。或者,音频设备和视频设备可以是两个独立的设备,例如:音频设备为功放设备,视频设备为显示器。由于本发明实施例应用于处于音频直通模式下的多媒体播放器,因此,音频缓冲区当前存储的音频帧是未解码的音频帧,需要将音频缓冲区当前存储的音频帧推送给音频设备,以使音频设备解封装、解码后才能播放音频帧。

示例性的,假设音频设备为功放设备,视频设备为显示器,则可以借助一个数字音视频接口,例如:HDMI(High Definition Multimedia Interface,高清晰度多媒体接口)或SPDIF(Sony/Philips Digital Interface Format,数字音频接口),将音频帧传输给功放设备,以使功放设备解封装、解码播放音频帧,并且,还可以借助另一个数字音视频接口将视频帧传输给显示设备,以使显示设备播放视频帧。

示例性的,假设音频设备和视频设备为电视机,则可以借助上述数字音视频接口,将音频帧和视频帧传输给电视机,以使电视机播放视频帧,并且解封装、解码播放音频帧。

可见,应用本发明实施例,将满足同步播放条件的音频帧和视频帧同时播放,实现了多媒体播放器在音频直通模式下,音视频的同步播放,提高了多媒体播放器的播放效果。

与上述的方法实施例相对应,本发明实施例还提供一种音视频播放装置。

参见图2,图2为本发明实施例所提供的一种音视频播放装置的结构示意图,包括:

计算模块201,用于每隔预设同步时长或每到达预设同步时间点时,计算当前音频缓冲区的缓冲时间,其中,所述当前音频缓冲区存储的音频帧为按照预设封装标准封装后的音频帧;

第一确定模块202,用于根据所述缓冲时间以及第一目标时间戳,确定音频播放时间,其中,所述第一目标时间戳为所述音频缓冲区当前存储的音频帧中时间戳最小的音频帧的时间戳;

第二确定模块203,用于根据所述音频播放时间以及第二目标时间戳,确定当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧是否满足同步播放条件,其中,第二目标时间戳为所述视频缓冲区当前存储的视频帧中时间戳最小的视频帧的时间戳;

播放模块204,用于在当前所述音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧满足同步播放条件的情况下,将视频缓冲区当前存储的视频帧推送给视频设备播放,并将音频缓冲区当前存储的音频帧推送给音频设备播放。

其中,本发明实施例的预设封装标准为:IEC 61937标准,本发明实施例的音频帧为:基于EAC3格式的音频帧。

其中,计算模块201,具体用于:

每隔预设同步时长或每到达预设同步时间点时,根据公式:计算当前音频缓冲区的缓冲时间;

其中,T为当前音频缓冲区的缓冲时间,M为音频缓冲区存储的所有音频帧的总字节数,S为针对音频帧的采样率,N为单个音频帧的字节数。

其中,第一确定模块202,具体用于:

根据缓冲时间以及第一目标时间戳,将缓冲时间与第一目标时间戳对应的时间之和确定为音频播放时间。

其中,第二确定模块203,具体用于:

根据音频播放时间以及第二目标时间戳,判断音频播放时间是否大于第二目标时间戳对应的时间,如果是,确定当前音频缓冲区存储的音频帧和当前视频缓冲区存储的视频帧满足同步播放条件。

可见,应用本发明实施例,将满足同步播放条件的音频帧和视频帧同时播放,实现了多媒体播放器在音频直通模式下,音视频的同步播放,提高了多媒体播放器的播放效果。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1