音视频的同步处理方法和装置与流程

文档序号:12628823阅读:331来源:国知局
音视频的同步处理方法和装置与流程

本发明实施例涉及计算机技术,尤其涉及一种音视频的同步处理方法和装置。



背景技术:

随着第四代移动通信技术(英文:the 4th Generation mobile communication technology,简称:4G)和智能终端设备的普及,实时流媒体的应越来越广泛,用户可以在智能终端设备上安装不同的流媒体播放器进行流媒体播放时,即实时接收另一设备发送的视频和音频。

在接收并播放音视频的过程中,常用的处理方式是:接收端设备接收音频包和视频包,获取音频和视频的播放时间点,然后将音频帧和视频帧放到音视频帧队列中,依次从音视频队列中取出数据进行解码,对音视频进行同步,并播放同步后的音视频。图1为现有的音视频同步机制示意图,如图1所示,根据播放时间点,一般采用视频向音频靠拢的同步机制,即使用音频的播放时间点作为播放时间轴,当音频播放到点6的时候,如果当前视频的播放点是5,则视频快进刷新到播放点的6的视频,若当前视频的时间点为7,则视频延迟刷新,直到音频播放到7时再刷新,实现音视频同步。

然而,通过上述视频的快进刷新或者延迟刷新来实现音视频同步,在播放过程中会出现跳帧或者卡顿现象。



技术实现要素:

本发明实施例提供的音视频的同步处理方法和装置,解决了视频的快进刷新或者延迟刷新来实现音视频同步,在播放过程中会出现跳帧或者卡顿的问题。

本发明实施例第一方面提供一种音视频的同步处理方法,包括:

对视频帧进行解码获取视频数据,并在开始解码视频帧的第一时间之后 开始对音频帧进行解码获取音频数据;其中,所述第一时间为预先获取的解码一个视频帧的最大解码时间;

依次播放每个播放时间点对应的视频数据和音频数据。

本发明实施例第二方面提供一种音视频的同步处理装置,包括:

解码模块,用于对视频帧进行解码获取视频数据,并在开始解码视频帧的第一时间之后开始对音频帧进行解码获取音频数据;其中,所述第一时间为预先获取的解码一个视频帧的最大解码时间;

播放模块,用于依次播放每个播放时间点对应的视频数据和音频数据。

本发明实施例提供的音视频的同步处理方法和装置,通过预先获取对一个视频帧进行解码需要的最长时间,在开始对视频帧进行解码开始之后,音频帧暂时不开始解码,等待上述获取的最长时间之后,再开始解码音频帧获取音频数据,再按照播放时间点指示的顺序依次播放每个播放时间点对应的音频数据和视频数据,通过音频帧解码滞后视频帧解码第一时间长度,保证了在解码出的音频数据对应播放时间点的视频帧已经解码,可以连续的进行音频数据和视频数据的播放,避免出现卡顿现象。

附图说明

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

图1为现有的音视频同步机制示意图;

图2为本发明音视频的同步处理方法实施例一的流程图;

图3为本发明音视频的同步处理方法实施例二的流程图;

图4为本发明音视频的同步处理方法实施例三的流程图;

图5为本发明中实时流媒体的播放原理示意图;

图6为本发明音视频的同步机制示意图;

图7为本发明音视频的同步机制实例示意图;

图8为本发明音视频的同步处理装置实施例一的结构示意图;

图9为本发明音视频的同步处理装置实施例二的结构示意图;

图10为本发明音视频的同步处理设备实施例一的结构示意图。

具体实施方式

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

本发明实施例提供的技术方案可以用于对安卓系统的各类终端设备进行模拟按键和按键触屏事件的自动化测试,该类设备包括:手机、平板、智能终端等,也可以参照该方式对其他系统类型的设备进行测试。

图2为本发明音视频的同步处理方法实施例一的流程图,如图2所示,本实施例提供的音视频的同步处理方法的具体步骤为:

S101:对视频帧进行解码获取视频数据,并在开始解码视频帧的第一时间之后开始对音频帧进行解码获取音频数据。

在本实施例中,所述第一时间为预先获取的解码一个视频帧的最大解码时间;在对视频帧和音频帧进行解码处理之前,首先要获取解码一个视频帧的最长时间,即上述第一时间,获取到第一时间之后,对视频帧开始依次进行解码,待视频帧解码过程持续第一时间之后,再开始对音频帧进行解码,即音频帧的解码开始时间滞后视频帧解码开始时间的时长为第一时间。

S102:依次播放每个播放时间点对应的视频数据和音频数据。

在本实施例中,在实时流媒体的传输过程中,数据携带有时间标识,即播放时间点,解码后的每个音频数据和每个视频数据都对应相应的播放时间点,该播放时间点是对音视频进行同步的基础,在根据上述解码方式对音频帧和视频帧分别进行解码,获取到音频数据和视频数据之后,按照播放时间点的顺序,依次播放每个播放时间点对应的音频数据和视频数据,完成实时流媒体的播放。

本实施例提供的音视频的同步处理方法,通过预先获取对一个视频帧进行解码需要的最长时间,在开始对视频帧进行解码开始之后,音频帧暂时不开始解码,等待上述获取的最长时间之后,再开始解码音频帧获取音频数据, 再按照播放时间点指示的顺序依次播放每个播放时间点对应的音频数据和视频数据,通过音频帧解码滞后视频帧解码第一时间长度,保证了在解码出的音频数据对应播放时间点的视频帧已经解码,可以连续的进行音频数据和视频数据的播放,避免在播放音频数据时对应的视频数据还没解码的问题,避免出现卡顿现象。

图3为本发明音视频的同步处理方法实施例二的流程图,如图3所示,在上述实施例的基础上,在上述步骤S101之前,该音视频的同步处理方法还包括如下步骤:

S201:接收第一设备发送的视频数据包和音频数据包。

S202:将所述视频数据包和所述音频数据包进行组帧处理,获取音频帧、视频帧和播放时间点。

S203:将所述音频帧、视频帧按照所述播放时间点指示的播放顺序放入音视频帧队列。

在本实施例中,接收端的设备接收发送端的第一设备发送的视频数据包和音频数据包,每个数据包中包括数据以及时间标识,为实时传输协议包,进行组帧处理得到音频帧和视频帧,接收端的设备根据实时传输协议,计算出音频帧和视频帧的播放时间点,把音频帧和视频帧,播放时间点以及其他相关的信息放入音视频帧队列。

S204:在预设时段内,统计解码一个视频帧需要的最大解码时间。

在本实施例中,在所述预设时段内,对所述视频帧和音频帧分别进行解码,并获取解码每一个视频帧的解码时间;获取多个视频帧的解码时间中的最大解码时间。

该预设时段为预先配置的获取第一时间即最大解码时间的时间段,根据经验值确定,具体时长根据实际情况确定,保证在该时段可以获取到解码一个视频帧的最大解码时间即可。

一般设置时长为1S或者大于1S,为了保证输出端的流媒体播放质量,尽量不设置太长时间。

一种获取第一时间的方式为:在设置的这段时间内,对音频帧和视频帧按照现有方式同时进行解码,并获取解码每个视频帧的解码时间,然后检测出多个视频帧的解码时间中的最长时间作为上述最大解码时间。

在获取到上述最大解码时间后,后续步骤跟实施例一的S101和S102一致,按照实施例一种的方式进行同步和播放,完成实时流媒体的传输。

本实施例提供的音视频的同步处理方法,通过音频帧解码滞后视频帧解码第一时间长度,保证了在解码出的音频数据对应播放时间点的视频帧已经解码,可以连续的进行音频数据和视频数据的播放,避免在播放音频数据时对应的视频数据还没解码的问题,避免出现卡顿现象。

图4为本发明音视频的同步处理方法实施例三的流程图,如图4所示,在上述任一实施例的基础上,步骤S102的具体实现步骤如下:

S301:将解码后的所述音频数据和所述视频数据按照所述播放时间点指示的播放顺序放入播放队列。

S302:按照所述播放时间点指示的时间顺序,依次从所述播放队列中取出每个播放时间点对应的音频数据和视频数据同步进行播放。

在本实施例中,解码后的音频数据和视频数据以播放时间点为时间轴,依次放入播放队列,以便后续进行同步播放,在上述实施例的基础上,音频帧解码滞后视频帧解码一段时间,放入播放队列的视频数据相对较多一点,在音视频播放同步机制中,一般采用视频向音频靠拢的方式中,将音频数据的播放时间点作为时间轴,按照播放时间点指示的顺序,依次播放每个时间点对应的音频数据和视频数据。

在上述实施例一至实施例三的基础上,下面举例详细说明该音视频的同步处理方法的实现过程:

图5为本发明中实时流媒体的播放原理示意图;如图5所示,在接收端设备中,分别接收发送端设备发送的音频数据包和视频数据包,经过对数据的组帧处理分别获取到视频帧和音频帧,后续分别对视频帧和音频帧进行解码得到视频数据和音频数据,然后对解码后得到的视频数据和音频数据进行音视频同步处理,然后输出,输出方式即按照播放时间点播放音频数据和视频数据。

图6为本发明音视频的同步机制示意图;如图6所示,Xms为音频帧的解码时间,Yms以及Zms(假设Z>Y)为视频帧的解码时间,上述的时间只是为了描述问题所写,不具有实际的意义,根据开发过程中遇到的场景,音频的解码时间基本上是固定的。

在视频数据的播放点1,2,3,4的时候音视频都是同步的,在视频数据播放时间点为5的时候,解码该视频帧的时间需要Zms,大大超过正常所需要的Yms,在播放时间点为5视频数据的时候,需要Yms的时间进行解码,造成卡顿的情况,当然这个问题可以用另外一个方法去解决,增加音视频解码后的缓冲,这样会造成两个问题,一是用户面时延会增加,二是所需要的缓冲会增大,因为解码后的视频数据会很大,而系统的资源是有限的,对于实时流媒体播放器不推荐这种的解决方法。本申请提出以下处理方式来解决上述几个问题,具体过程为:

为了描述的方便,假设音频的解码时间为Xms,假设预设时段的时长为1S。

1、在播放器开始播放的1s内,统计视频解码模块解码一帧视频的最大时间。上述时间点5在该预设时段范围内。

2、获取到的最大视频解码时间为Zms,则音频解码模块暂停音频帧的解码,视频帧开始解码,在Zms后,开始对音频帧进行解码。

3、这个时候解码后的视频播放时间点与解码后的音频播放时间点相吻合,音视频同步。

根据上述描述,下面举一实例进行说明,图7为本发明音视频的同步机制实例示意图;如图7所示,假设音频的解码时间为20ms,视频的解码时间为40ms和200ms。200ms为解码一个视频帧需要的最长时间。

首先,在音频和视频都播放到5的时候,预设时段时长假设为1s,获得了视频解码的最大时间为200ms。

其次,音频解码模块对音频帧的解码暂停200ms,视频解码模块正常工作,继续对视频帧进行解码,假设解视频播放时间点为6的视频帧需要200ms,在200ms后,音频开始解音频播放时间点为6的音频帧,这个时候正好音视频同步,如果解视频帧6需要100ms,则200ms后,音频开始播放点为6的音频帧,视频已经解到播放点为7的视频帧,解码后的视频帧6和7就会缓冲在待刷屏队列,音频帧6与视频帧6也同步进行播放。

使音频晚200ms解码,使用这个时间差达到音视频流畅播放的效果。播放时延只比先前增加了200ms并且保持了播放的流畅性。

本实施例提供的音视频的同步处理方法,通过预先获取对一个视频帧进 行解码需要的最长时间,在开始对视频帧进行解码开始之后,音频帧暂时不开始解码,等待上述获取的最长时间之后,再开始解码音频帧获取音频数据,再按照播放时间点指示的顺序依次播放每个播放时间点对应的音频数据和视频数据,通过音频帧解码滞后视频帧解码第一时间长度,保证了在解码出的音频数据对应播放时间点的视频帧已经解码,可以连续的进行音频数据和视频数据的播放,避免在播放音频数据时对应的视频数据还没解码的问题,避免出现卡顿现象。克服平台解码能力差别带来的卡顿现象,使得流媒体的播放更流畅。

图8为本发明音视频的同步处理装置实施例一的结构示意图,如图8所示,该音视频的同步处理装置10,包括:解码模块11和播放模块12。

解码模块11,用于对视频帧进行解码获取视频数据,并在开始解码视频帧的第一时间之后开始对音频帧进行解码获取音频数据;其中,所述第一时间为预先获取的解码一个视频帧的最大解码时间;

播放模块12,用于依次播放每个播放时间点对应的视频数据和音频数据。

本实施例提供的音视频的同步处理装置,用于执行图2至7所示的方法实施例的技术方案,其实现原理和技术效果类似,通过音频帧解码滞后视频帧解码第一时间长度,保证了在解码出的音频数据对应播放时间点的视频帧已经解码,可以连续的进行音频数据和视频数据的播放,避免出现卡顿现象。

图9为本发明音视频的同步处理装置实施例二的结构示意图,如图9所示,在上述实施例的基础上,该装置10还包括:

统计模块13,用于在预设时段内,统计解码一个视频帧需要的最大解码时间。

可选的,所述解码模块11还用于在所述预设时段内,对所述视频帧和音频帧分别进行解码,并获取解码每一个视频帧的解码时间;

所述统计模块13用于获取多个视频帧的解码时间中的最大解码时间。

可选的,所述装置10还包括:

接收模块14,用于接收第一设备发送的视频数据包和音频数据包;

处理模块15,用于将所述视频数据包和所述音频数据包进行组帧处理,获取音频帧、视频帧和播放时间点;

所述处理模块15还用于将所述音频帧、视频帧按照所述播放时间点指示 的播放顺序放入音视频帧队列。

可选的,所述处理模块15还用于将解码后的所述音频数据和所述视频数据按照所述播放时间点指示的播放顺序放入播放队列;

所述播放模块12具体用于按照所述播放时间点指示的时间顺序,依次从所述播放队列中取出每个播放时间点对应的音频数据和视频数据同步进行播放。

本实施例提供的音视频的同步处理装置,用于执行图2至图7所示的方法实施例的技术方案,其技术效果和实现原理类似,在此不再赘述。

图10为本发明音视频的同步处理设备实施例一的结构示意图,如图10所示,该音视频的同步处理设备20,包括:接收器21、处理器22和播放器23。

处理器22,用于对视频帧进行解码获取视频数据,并在开始解码视频帧的第一时间之后开始对音频帧进行解码获取音频数据;其中,所述第一时间为预先获取的解码一个视频帧的最大解码时间;

播放器23,用于依次播放每个播放时间点对应的视频数据和音频数据。

可选的,处理器22用于在预设时段内,统计解码一个视频帧需要的最大解码时间。

可选的,所述处理器22还用于:

在所述预设时段内,对所述视频帧和音频帧分别进行解码,并获取解码每一个视频帧的解码时间;

获取多个视频帧的解码时间中的最大解码时间。

可选的,所述接收器21用于接收第一设备发送的视频数据包和音频数据包;

处理器22用于将所述视频数据包和所述音频数据包进行组帧处理,获取音频帧、视频帧和播放时间点;

所述处理器22还用于将所述音频帧、视频帧按照所述播放时间点指示的播放顺序放入音视频帧队列。

可选的,所述处理器22还用于将解码后的所述音频数据和所述视频数据按照所述播放时间点指示的播放顺序放入播放队列;

所述播放器23具体用于按照所述播放时间点指示的时间顺序,依次从所 述播放队列中取出每个播放时间点对应的音频数据和视频数据同步进行播放。

本实施例提供的音视频的同步处理设备,用于执行图2至7所示的方法实施例的技术方案,其实现原理和技术效果类似,通过音频帧解码滞后视频帧解码第一时间长度,保证了在解码出的音频数据对应播放时间点的视频帧已经解码,可以连续的进行音频数据和视频数据的播放,避免出现卡顿现象。

在上述音视频的同步处理设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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