解码播放中音视频同步优化方法、存储介质、设备及系统技术方案

技术编号:20926964 阅读:40 留言:0更新日期:2019-04-20 12:01
本发明专利技术公开了一种解码播放中音视频同步优化方法、存储介质、设备及系统,涉及视频解码领域,该方法包括新建一变量,所述变量用于保存每一个解码的音频帧的解码时间戳;从视频待解码队列中依次取出视频包,判断取出的视频包的解码时间戳是否小于变量中保存的正在进行解码的音频帧的解码时间戳,若否,则解码当前取出视频包;若是,则判断当前取出的视频包的帧类型是否是B帧,若不是B帧,则解码当前取出的视频包,若是B帧,则进一步判断上次取出的视频包的帧类型是否是B帧,若不是,则丢弃当前取出的视频包,若是,则解码当前取出的视频包。本发明专利技术能够有效解决视频播放中音视频不同步的现象。

Audio and Video Synchronization Optimization Method, Storage Media, Equipment and System for Decoding and Playing

The invention discloses an optimization method, storage medium, equipment and system for audio and video synchronization in decoding and playing, which relates to the field of video decoding. The method includes a new variable, which is used to save the decoding timestamp of each decoded audio frame; video packets are extracted sequentially from the video decoding queue to determine whether the decoding timestamp of the extracted video packets is less than the variable. The decoding timestamp of the audio frame being decoded is saved, and if not, the current video packet is decoded; if not, the frame type of the current video packet is determined to be B frame, if not B frame, the current video packet is decoded, if B frame, the frame type of the last video packet is B frame, if not, the current video packet is discarded. Packet, if so, decodes the currently extracted video packet. The invention can effectively solve the phenomenon of asynchronization of audio and video in video playing.

【技术实现步骤摘要】
解码播放中音视频同步优化方法、存储介质、设备及系统
本专利技术涉及视频解码领域,具体涉及一种解码播放中音视频同步优化方法、存储介质、设备及系统。
技术介绍
无论是存储在本地磁盘文件中的视频文件,还是在网络上传输的视频流文件,均是通过相关的视频解码器编码压缩后进行存储和传输,其中H246编码器为常用的视频编码器。在对编码压缩后的视频文件解码播放时,需保证音频和视频的同步播放,对于音视频的同步,常用的方法有三种:一种是视频同步到音频,一种是音频同步到视频,再一种就是音频和视频均同步到系统时钟,其中视频同步到音频为最为常见的一种方式。当在解码视频时,视频分辨率越大、帧率越大,其所要耗费的CPU资源也就越多,即视频的分辨率和帧率同CPU的消耗是成正比的。上述的三种音视频同步方法,均是以当前CPU性能足以解码该视频为前提,但是,若当前CPU性能较低,如要解码一个分辨率为1920*1080,60FPS的视频,而当前CPU一秒钟只能解码部分帧视频,那么每秒便会剩下一部分帧的视频没有解码,从而造成视频流的累积,时间一长,便会出现音频和视频不同步的现象,影响用户对视频的观看体验。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种解码播放中音视频同步优化方法,有效解决视频播放中音视频不同步的现象。为达到以上目的,本专利技术采取的技术方案是,包括:新建一变量,所述变量用于保存每一个解码的音频帧的解码时间戳;从视频待解码队列中依次取出视频包,判断取出的视频包的解码时间戳是否小于变量中保存的正在进行解码的音频帧的解码时间戳,若否,则解码当前取出视频包;若是,则判断当前取出的视频包的帧类型是否是B帧,若不是B帧,则解码当前取出的视频包,若是B帧,则进一步判断上次取出的视频包的帧类型是否是B帧,若不是,则丢弃当前取出的视频包,若是,则解码当前取出的视频包。在上述技术方案的基础上,依次解码音频帧,并将当前进行解码的音频帧的解码时间戳保存至新建的变量中。在上述技术方案的基础上,所述视频包的帧类型包括I帧、P帧和B帧;所述I帧为帧内编码帧,所述P帧为前向预测帧,所述B帧为双向预测内插编码帧。在上述技术方案的基础上,从视频待解码队列中取出的视频包均对应有解码时间戳;新建视频包解码时间戳变量和视频包帧类型变量,所述视频包解码时间戳变量用于保存从视频待解码队列中取出的视频包的解码时间戳,所述视频包帧类型变量用于从视频待解码队列中取出的视频包的帧类型。在上述技术方案的基础上,当从视频待解码队列中取出视频包的解码时间戳小于变量中保存的对应音频帧的解码时间戳,且当前取出的视频包的帧类型是B帧,则根据视频包帧类型变量中记录的视频包帧类型,判断上次取出的视频包的帧类型是否是B帧。本专利技术还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的方法。本专利技术还提供一种解码播放中音视频同步优化设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述所述的方法。本专利技术还提供一种解码播放中音视频同步优化系统,包括:创建模块,其用于新建用于保存每一个解码的音频帧的解码时间戳的变量;执行模块,其用于从视频待解码队列中依次取出视频包。判断模块,其用于判断取出的视频包的解码时间戳是否小于变量中保存的正在进行解码的音频帧的解码时间戳,若否,则解码当前取出视频包;若是,则进一步判断当前取出的视频包的帧类型是否是B帧,若不是B帧,则解码当前取出的视频包,若是B帧,则进一步判断上次取出的视频包的帧类型是否是B帧,若不是,则丢弃当前取出的视频包,若是,则解码当前取出的视频包。在上述技术方案的基础上,依次解码音频帧,并将当前进行解码的音频帧的解码时间戳保存至新建的变量中;视频文件中,每一个视频帧均对应有一音频帧。在上述技术方案的基础上,所述视频包的帧类型包括I帧、P帧和B帧;所述I帧为帧内编码帧,所述P帧为前向预测帧,所述B帧为双向预测内插编码帧。与现有技术相比,本专利技术的优点在于:当CPU性能不足,不足以足数解码视频包时,将从视频待解码队列中取出的视频包的解码时间戳与当前正在进行解码的音频帧的解码时间戳的大小进行比对,若小于,则说明当前取出的视频包的解码已经落后于音频帧的解码,已发生音视频不同步的现象,此时进行B帧舍弃的判断,采用丢弃B帧的策略,有效解决在较低配置的机器上,播放大分辨率、大帧率的视频时,因CPU性能问题,出现音视频不同步的现象,有效保证用户对视频的观看体验。附图说明图1为本专利技术实施例中一种解码播放中音视频同步优化方法的流程图;图2为本专利技术实施例中一种解码播放中音视频同步优化设备的结构示意图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。参见图1所示,本专利技术实施例提供一种解码播放中音视频同步优化方法,适用于H264编码的视频文件,保证视频同步到音频,针对CPU性能不足,对视频帧解码可能存在延误的使用场景,保证视频和音频的同步,确保用户对视频的观看体验。本专利技术实施例的解码播放中音视频同步优化方法具体包括:S1:新建一变量,该变量用于保存每一个解码的音频帧的解码时间戳。H264编码的视频文件中,每一个视频包均对应有个解码时间戳,每一个音频帧均对应有个解码时间戳,解码时间戳用以记录每一个视频包或音频帧的解码时间,DTS(DecodeTimeStamp,解码时间戳)是一个递增的时间戳。依次解码音频帧,并将当前进行解码的音频帧的解码时间戳保存至新建的变量m_currentDecodingTime中。本专利技术实施例中,视频包即为视频帧。S2:从视频待解码队列中依次取出视频包,判断取出的视频包的解码时间戳是否小于变量中保存的正在进行解码的音频帧的解码时间戳,若否,则说明视频的解码没有落后音频的解码,则解码当前取出视频包;若是,则说明视频的解码已经落后音频的解码,则转到S3。对于H264编码器编码的视频文件,视频包按照解码的先后顺序,在视频待解码队列m_videoPackets中进行排列,本专利技术实施例的音视频同步优化方法是使视频同步到音频,因此,音频帧按照顺序进行依次解码,而由于CPU性能问题,视频包的解码可能存在延迟,因此在从视频待解码队列中取出视频包进行解码时,需对取出的视频包的解码时间戳与当前正在进行解码的音频帧的解码时间戳的大小进行比对,若小于,则说明当前取出的视频包的解码已经落后于音频帧的解码,已发生音视频不同步的现象,若不小于,则说明当前取出的视频包的解码没有落后音频帧的解码。因音频帧的解码所占用的CPU资源较少,而本专利技术实施例是实现视频同步到音频,故不会存在取出的视频包的解码时间戳大于当前正在进行解码的音频帧的解码时间戳,仅会存在取出的视频包的解码时间戳小于或等于当前正在进行解码的音频帧的解码时间戳。每个音频帧的解码间隔一般为200毫秒。S3:判断当前取出的视频包的帧类型是否是B帧,若不是B帧,则解码当前取出的视频包,若是B帧,则进一步判断上次取出的视频包的帧类型是否是B帧,若不是,则丢弃当前取出的视频包,若是,则解码当前取出的视频包。视频包的帧类型包括I帧、P帧和B帧;I帧为帧内编码帧,I帧即为关键帧,I帧的压缩比最低,但是I帧在视频解码的时候不需要依赖于其本文档来自技高网...

【技术保护点】
1.一种解码播放中音视频同步优化方法,适用于H264编码的视频文件,其特征在于,包括:新建一变量,所述变量用于保存每一个解码的音频帧的解码时间戳;从视频待解码队列中依次取出视频包,判断取出的视频包的解码时间戳是否小于变量中保存的正在进行解码的音频帧的解码时间戳,若否,则解码当前取出视频包;若是,则判断当前取出的视频包的帧类型是否是B帧,若不是B帧,则解码当前取出的视频包,若是B帧,则进一步判断上次取出的视频包的帧类型是否是B帧,若不是,则丢弃当前取出的视频包,若是,则解码当前取出的视频包。

【技术特征摘要】
1.一种解码播放中音视频同步优化方法,适用于H264编码的视频文件,其特征在于,包括:新建一变量,所述变量用于保存每一个解码的音频帧的解码时间戳;从视频待解码队列中依次取出视频包,判断取出的视频包的解码时间戳是否小于变量中保存的正在进行解码的音频帧的解码时间戳,若否,则解码当前取出视频包;若是,则判断当前取出的视频包的帧类型是否是B帧,若不是B帧,则解码当前取出的视频包,若是B帧,则进一步判断上次取出的视频包的帧类型是否是B帧,若不是,则丢弃当前取出的视频包,若是,则解码当前取出的视频包。2.如权利要求1所述的一种解码播放中音视频同步优化方法,其特征在于:依次解码音频帧,并将当前进行解码的音频帧的解码时间戳保存至新建的变量中。3.如权利要求1所述的一种解码播放中音视频同步优化方法,其特征在于:所述视频包的帧类型包括I帧、P帧和B帧;所述I帧为帧内编码帧,所述P帧为前向预测帧,所述B帧为双向预测内插编码帧。4.如权利要求1所述的一种解码播放中音视频同步优化方法,其特征在于:从视频待解码队列中取出的视频包均对应有解码时间戳;新建视频包解码时间戳变量和视频包帧类型变量,所述视频包解码时间戳变量用于保存从视频待解码队列中取出的视频包的解码时间戳,所述视频包帧类型变量用于从视频待解码队列中取出的视频包的帧类型。5.如权利要求2所述的一种解码播放中音视频同步优化方法,其特征在于:当从视频待解码队列中取出视频包的解码时间戳小于变量中保存的对应音频帧的解码时间戳,且当前取出的...

【专利技术属性】
技术研发人员:杨亮张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1