音频和视频同步播放的方法及系统
技术领域
本申请涉及多媒体数据处理的技术领域,具体地说,是涉及一种音频和视频同步播放的方法及系统。
背景技术
通常为进行媒体播放,音频数据流和视频数据流这两路数据流分别输入音频编码器和视频编码器进行解码,得到音频解码数据和视频解码数据,然后把这两路编码数据发送给文件合成器进行文件格式合成或者直接进行音频解码数据和视频解码数据的播放。在这个过程中,音频和视频播放不同步是困扰播放的一个主要问题,导致音频视频不同步的原因可能是音频数据流和视频数据流分别输入音频解码器和视频解码器之前,并没有进行交织,或者没有进行正确的交织,导致文件合成不正确或者播放进度不一致,从而引起音频和视频播放不同步。并且,解码后,由于编码器消耗数据与交织数据不同步,导致文件合成不正确或者音频和视频播放进度不一致,同样会引起音频视频播放不同步。
在多媒体播放过程中,通过硬件解码或者软件解码耗时出现抖动;音频数据和视频数据需要经过渲染后才能输出能进行播放的视频数据,音频数据渲染为连续渲染,而视频渲染为不连续渲染,视频帧渲染过程中会有间隔,因为渲染间隔的不同会使得视频渲染后输出长度不确定;以及所依赖实现细节平台的差异,都会造成音频与视频播放进度不一致,从而导致音频和视频同步播放发生异常,用户在主观上就会感受到声音与画面不同步、画面渲染帧率不稳定等问题,严重影响了用户的观看体验。
目前,音频与视频同步播放的通用做法是根据音频与视频时间戳之差按照固定比例调节渲染节奏,最后达到音频与视频同步播放,如图1所示,现有技术中音频与视频同步播放方法步骤如下:
步骤101,终端接收目标音频和视频数据,进行播放;
步骤102,获取播放的音频时间戳和视频时间戳,生成延迟时间值;
步骤103,根据延迟时间值设定固定渲染比例;
步骤104,按照所述固定渲染比例对视频进行渲染;
步骤105,播放渲染后的音频和视频数据。
但是每个视频帧渲染节奏的情况不相同,按照固定值调节渲染节奏会导致音视频同步异常以及输出帧率不稳定和调节变化过于剧烈的现象,致使画面卡顿或停滞,影响用户体验。而当出现音频与视频播放不同步时,还是按照之前的固定值调节渲染节奏,不能在音频与视频同步播放异常的情况下重新将音频与视频进行同步播放。
视频解码是按照特定周期进行的,解码周期一般设定在25毫秒—33毫秒之间。例如,在Android电视盒子中,为了提高业务多样性,部分视频使用软件解码方式进行视频解码,由于软件解码效率相比硬件解码要低,实际解码耗时会存在较大抖动,普通视频解码速率为30帧/秒,预留给解码的时间不能大于33毫秒,在播放高清晰度视频时,会出现解码时间超过33毫秒或者解码时间大幅抖动不均匀,就会导致音频和视频不同步。
发明内容
为了解决在上述现有技术中出现的问题,本发明的目的是提供一种音频和视频同步播放的方法及系统。
本发明提供了一种音频和视频同步播放方法,包括:
终端根据多媒体播放请求获取音频数据和视频数据进行播放;
获取当前播放的音频时间戳和视频时间戳,并根据所述音频时间戳和所述视频时间戳得到当前音频和视频播放的延迟值;
将预先设置的期望误差值与所述延迟值进行比较,获得变量标记;
根据所述变量标记生成累积误差值、比例误差值及预测误差值,将所述累积误差值、比例误差值及预测误差值加权获得视频渲染间隔量;
对当前播放音频数据进行渲染,并根据所述视频渲染间隔量对当前播放视频数据进行渲染;
在所述终端上播放渲染后的音频数据及视频数据。
进一步地,其中,所述将预先设置的期望误差值与所述延迟值进行比较,获得变量标记,进一步包括:所述期望误差值范围为0—200毫秒。
进一步地,其中,所述根据所述变量标记生成累积误差值、比例误差值及预测误差值,将所述累积误差值、比例误差值及预测误差值加权获得视频渲染间隔量,进一步包括:
根据当前变量标记与累积误差系数之积获得累积误差值,其中,所述累积误差系数范围为20—1000。
进一步地,其中,所述根据所述变量标记生成累积误差值、比例误差值及预测误差值,将所述累积误差值、比例误差值及预测误差值加权获得视频渲染间隔量,进一步包括:
根据当前变量标记与前一周期的变量标记获得变量标记差量;
根据变量标记差量及比例误差系数获得比例误差值,其中,所述比例误差系数范围为20—1000。
进一步地,其中,所述根据所述变量标记生成累积误差值、比例误差值及预测误差值,将所述累积误差值、比例误差值及预测误差值加权获得视频渲染间隔量,进一步包括:
根据变量标记差值与前一周期变量标记差值获得变量标记差值变化量;
再根据变量标记差值变化量及预测误差系数获得预测误差值,其中,所述预测误差系数范围为20—1000。
一种音频和视频同步播放系统,包括:接收模块、处理模块和播放器;其中,
所述接收模块,用于根据多媒体播放请求获取音频数据和视频数据,并发送至播放器进行播放;
所述处理模块,用于获取当前播放的音频时间戳和视频时间戳,并根据所述音频时间戳和所述视频时间戳得到当前音频和视频播放的延迟值;将预先设置的期望误差值与所述延迟值进行比较,获得变量标记;根据所述变量标记生成累积误差值、比例误差值及预测误差值,将所述累积误差值、比例误差值及预测误差值加权获得视频渲染间隔量;对当前播放音频数据进行渲染,并根据所述视频渲染间隔量对当前播放视频数据进行渲染;
所述播放器,用于对音频数据及视频数据进行播放。
进一步地,其中,进一步包括:所述期望误差值范围为0—200毫秒。
进一步地,其中,所述处理模块,进一步用于:
根据当前变量标记与累积误差系数获得累积误差值,其中,所述累积误差系数范围为20—1000。
进一步地,其中,所述处理模块,进一步用于:
根据当前变量标记与前一周期变量标记获得变量标记差量;
根据变量标记差量及比例误差系数获得比例误差值,其中,所述比例误差系数范围为20—1000。
进一步地,其中,所述处理模块,进一步用于:
根据变量标记差值与前一周期变量标记差值获得变量标记差值变化量;
再根据变量标记差值变化量及预测误差系数获得预测误差值,其中,所述预测误差系数范围为20—1000。
与现有技术相比,本申请所述的音频和视频同步播放的方法及系统,具有以下优点:
(1)本发明的音频和视频同步播放的方法及系统,通过播放音频及视频的间隔结合用户观看音频视频同步的主观误差确定变量标记,通过变量标记生成累积误差值、比例误差值及预测误差值对音频和视频同步变化趋势进行预测,并根据所获取的误差值提前调整视频帧的渲染节奏,使视频和音频实时同步播放,还避免了视频输出帧率不稳定及调节变化过于剧烈造成的卡顿或停滞现象。
(2)本发明的音频和视频同步播放的方法及系统,对音频和视频同步过程进行预测及调整,遇到出现音频和视频同步异常时也能提前进行控制,并且实时地根据当前播放情况平稳过渡到同步播放,不会影响用户观看体验。
(3)本发明的音频和视频同步播放的方法及系统,其中,期望误差值可以根据不同用户到需求进行调整,从而按照用户自身特点调节音频和视频渲染、播放的节奏,提升了用户体验。
(4)本发明的音频和视频同步播放的方法及系统,可以根据当前音频和视频播放情况提前预测,并在用户体验允许误差内调整音频和视频同步,能适用于不同操作平台、框架及自身结构。
当然,实施本申请的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是现有技术的音频和视频同步播放方法流程示意图;
图2是本方案的音频和视频同步播放方法流程示意图;
图3是本方案实施例2所述的音频和视频同步播放方法流程示意图;
图4是本方案一个具体实施例所述的音频和视频同步播放方法流程示意图;
图5是本方案的音频和视频同步播放的系统结构框图。
具体实施方式
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
以下结合附图对本申请作进一步详细说明,但不作为对本申请的限定。
实施例1:
如图2所示,为本发明实施例1所述的一种音频和视频同步播放方法,包括:
步骤201,终端根据多媒体播放请求获取音频数据和视频数据进行播放;其中,
终端获取音频数据和视频数据进行解码、播放,所述音频数据和视频数据中均带有时间戳。
步骤202,获取当前播放的音频时间戳和视频时间戳,并根据所述音频时间戳和所述视频时间戳得到当前音频和视频播放的延迟值;
其中,所述延迟值为所述音频时间戳和所述视频时间戳的差值。
步骤203,将预先设置的期望误差值与所述延迟值进行比较,获得变量标记;其中,
所述期望误差值为用户能容忍音频和视频非绝对同步的误差范围值,所述期望误差值为0则表示所述音频和视频绝对同步,所述变量标记为所述期望误差值与所述延迟值的差值。
步骤204,根据所述变量标记生成累积误差值、比例误差值及预测误差值,将所述累积误差值、比例误差值及预测误差值加权获得视频渲染间隔量;其中,
所述视频解码是按照特定周期进行的,解码周期一般设定在25毫秒—33毫秒之间,优选地,解码周期为30毫秒。
将得到的所述累积误差值、比例误差值及预测误差值相加得到延时值,使用该延时值作为视频渲染间隔量,能保证按此渲染的视频与所述音频在允许的误差范围内达到同步播放的目的。
根据当前的变量标记结合累积误差系数获得累积误差值;根据当前变量标记与前一周期的变量标记的差值结合比例误差系数获得比例误差值;根据当前变量标记差值与前一变量标记差值的差值结合预测误差系数获得预测误差值。
步骤205,对当前播放音频数据进行渲染,并根据所述视频渲染间隔量对当前播放视频数据进行渲染;其中,
所述音频数据渲染为连续渲染过程,而所述视频数据渲染是非连续渲染,每个渲染周期之间会有间隔,根据上述方法获得的视频渲染间隔量渲染视频数据使得播放时的音频和视频达到同步的效果。
步骤206,在所述终端上播放渲染后的音频数据及视频数据。
实施例2:
如图3所示,在实施例1的基础上,本发明的种音频和视频同步播放方法,包括:
步骤301,终端根据多媒体播放请求获取音频数据和视频数据进行播放。
步骤302,获取当前播放的音频时间戳和视频时间戳,并根据所述音频时间戳和所述视频时间戳得到当前音频和视频播放的延迟值。
步骤303,将预先设置的期望误差值与所述延迟值进行比较,获得变量标记。其中,
所述期望误差值范围为0—200毫秒,优选地,所述期望误差值为100毫秒。过大的期望误差值会影响用户观看音频和视频同步的效果,而太小的误差值可能处在实际的误差值以下,按照小的误差值进行音频和视频同步处理也会影响到用户的观看体验。优选地,也可以根据用户需求设定合理的期望误差值,方便不同用户观看。
步骤304,根据所述变量标记生成累积误差值、比例误差值及预测误差值,将所述累积误差值、比例误差值及预测误差值加权获得视频渲染间隔量。
具体地,其中,根据所述变量标记生成累积误差值,进一步为:
根据当前变量标记与累积误差系数之积获得累积误差值,其中,所述累积误差系数范围为20—1000。
根据所述变量标记生成比例误差值,进一步为:
根据当前变量标记与前一周期的变量标记获得变量标记差量;
再根据变量标记差量及比例误差系数获得比例误差值,其中,所述比例误差系数范围为20—1000。
根据所述变量标记生成预测误差值,进一步为:
根据变量标记差值与前一周期变量标记差值获得变量标记差值变化量;
再根据变量标记差值变化量及预测误差系数获得预测误差值,其中,所述预测误差系数范围为20—1000。
如此,通过变量标记生成累积误差值、比例误差值及预测误差值对每个周期的音频和视频同步变化趋势进行预测,并在进行视频渲染前获取预测处理后的视频渲染间隔量,利用音频和视频的变量标记所获取的视频渲染间隔量进行渲染后的视频与所述音频能达到同步播放的效果。
步骤305,对当前播放音频数据进行渲染,并根据所述视频渲染间隔量对当前播放视频数据进行渲染。
步骤306,在所述终端上播放渲染后的音频数据及视频数据。
该方法可以根据当前音频和视频播放情况提前预测,并在用户体验允许误差内调整音频和视频同步,能适用于不同操作平台、框架及自身结构。并且对音频和视频同步过程进行预测及调整,遇到出现音频和视频同步异常时也能提前进行控制,实时地根据当前播放情况平稳过渡到同步播放,不会影响用户观看体验。
实施例3:
如图4所示,为本发明的种音频和视频同步播放方法的一个具体实施例,包括:
步骤401,终端根据多媒体播放请求获取音频数据和视频数据进行播放。
步骤402,获取当前播放的音频时间戳和视频时间戳,并根据所述音频时间戳和所述视频时间戳得到当前音频和视频播放的延迟值。
步骤403,将期望误差值设置为90毫秒,并与与所述延迟值进行比较,获得变量标记。
步骤404,根据所述变量标记生成累积误差值、比例误差值及预测误差值,将所述累积误差值、比例误差值及预测误差值加权获得视频渲染间隔量。
具体地,其中,根据所述变量标记生成累积误差值,进一步为:
根据当前变量标记与累积误差系数之积获得累积误差值,其中,所述累积误差系数为100。
根据所述变量标记生成比例误差值,进一步为:
根据当前变量标记与前一周期的变量标记获得变量标记差量;
再根据变量标记差量及比例误差系数获得比例误差值,其中,所述比例误差系数为200。
根据所述变量标记生成预测误差值,进一步为:
根据变量标记差值与前一周期变量标记差值获得变量标记差值变化量;
再根据变量标记差值变化量及预测误差系数获得预测误差值,其中,所述预测误差系数为240。
步骤405,对当前播放音频数据进行渲染,并根据所述视频渲染间隔量对当前播放视频数据进行渲染。
步骤406,在所述终端上播放渲染后的音频数据及视频数据。
实施例4
如图5所示,为本发明所述的一种音频和视频同步播放系统,该系统包括:接收模块501、处理模块502和播放器503。
所述接收模块501,与所述处理模块502相耦接,用于根据多媒体播放请求获取音频数据和视频数据,并发送至播放器进行播放。
所述处理模块502,与所述接收模块501及所述播放器503相耦接,用于获取当前播放的音频时间戳和视频时间戳,并根据所述音频时间戳和所述视频时间戳得到当前音频和视频播放的延迟值;将预先设置的期望误差值与所述延迟值进行比较,获得变量标记;根据所述变量标记生成累积误差值、比例误差值及预测误差值,将所述累积误差值、比例误差值及预测误差值加权获得视频渲染间隔量;对当前播放音频数据进行渲染,并根据所述视频渲染间隔量对当前播放视频数据进行渲染。
所述播放器503,与所述处理模块502相耦接,用于对音频数据及视频数据进行播放。
本实施例所述的期望误差值范围为0—200毫秒,优选地,所述期望误差值为100毫秒。
具体地,其中,所述处理模块502,进一步用于:
根据当前变量标记与累积误差系数获得累积误差值,其中,所述累积误差系数范围为20—1000。
所述处理模块502,进一步还用于:
根据当前变量标记与前一周期变量标记获得变量标记差量;
根据变量标记差量及比例误差系数获得比例误差值,其中,所述比例误差系数范围为20—1000。
所述处理模块502,进一步还用于:
根据变量标记差值与前一周期变量标记差值获得变量标记差值变化量;
再根据变量标记差值变化量及预测误差系数获得预测误差值,其中,所述预测误差系数范围为20—1000。
与现有技术相比,本申请所述的音频和视频同步播放的方法及系统,具有以下优点:
(1)本发明的音频和视频同步播放的方法及系统,通过播放音频及视频的间隔结合用户观看音频视频同步的主观误差确定变量标记,通过变量标记生成累积误差值、比例误差值及预测误差值对音频和视频同步变化趋势进行预测,并根据所获取的误差值提前调整视频帧的渲染节奏,使视频和音频实时同步播放,还避免了视频输出帧率不稳定及调节变化过于剧烈造成的卡顿或停滞现象。
(2)本发明的音频和视频同步播放的方法及系统,对音频和视频同步过程进行预测及调整,遇到出现音频和视频同步异常时也能提前进行控制,并且实时地根据当前播放情况平稳过渡到同步播放,不会影响用户观看体验。
(3)本发明的音频和视频同步播放的方法及系统,其中,期望误差值可以根据不同用户到需求进行调整,从而按照用户自身特点调节音频和视频渲染、播放的节奏,提升了用户体验。
(4)本发明的音频和视频同步播放的方法及系统,可以根据当前音频和视频播放情况提前预测,并在用户体验允许误差内调整音频和视频同步,能适用于不同操作平台、框架及自身结构。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。