基于多媒体信息交互系统的音视频同步方法

2016-07-10 07:38陈伟刘永红高菡
电子技术与软件工程 2016年8期

陈伟 刘永红 高菡

摘 要:本文从分析引起音视频不同步现象的因素以及目前音视频同步的优缺点入手,运用时间戳、缓存技术和丢包处理机制来提出改进音视频同步的方法。在发送端,同步发送出同时采集的音视频数据;在接收端,采用主从流同步控制的方法,在时间戳判断音视频数据的同步关系上最终实现音频播放的流畅性以及音视频媒体间的同步性。经实际测试可发现效果良好。

【关键词】音视频同步 时间戳 缓存技术 丢包处理机制 主从流

1 现有的音视频同步方法

在当今的多媒体交互系统中,其传输具有信息传送服务不可靠的特点。数据传输过程会遇到数据包丢失的问题以及包的到达时延不同,最终会造成播放时发生声像不同步的现象。国内外以对媒体同步技术投以广泛关注,目前为止,已经有多种同步方案和模型。 时间戳同步信道法、音频嵌入视频同步技术和基于RTP/RTCP的同步机制是当前最主流的三种同步方法。

1.1 时间戳同步信道法

时间戳同步信道法是将媒体数据与同步控制信息相分离的技术。流间同步和流内同步分别采用同步信道技术和时间戳技术。通过该同步方法,会使流间和流内均拥有较好的容错性和准确性。然而在媒体流与同步信号被分开传输时,需要增加额外的信道花费。

1.2 基于RTP/RTCP的同步机制

基于RTP/RTCP的同步机制的工作原理是通过RTCP来传送控制分组,同时提供QoS监视体制,动态改变发送端数据传输速率。该方法优点明显,即实时性佳,控制灵活;但是缺点也很显著,在数据通信过程中,会极易改变媒体流的发送过程,从而导致接收端的播放过程被改变。

1.3 音频嵌入视频同步技术

音频嵌入视频同步技术是音视频同步方法中的一大突破,该方法使音视频数据能够在信道实现同步传输和同时到达接收端。然而音频嵌入视频对技术人员提出了极高的要求,该方法会大大提高编码的计算复杂度,并且最终会对视频质量产生一定的影响。

2 音视频同步方法的改进

2.1 音视频同步方法的简介

音视频同步方法即是基于数据缓存技术、丢包处理机制和RTP包头时间戳来进行的音视频同步,最终实现音视频的同步与交互的实时性均衡。在发送端,音视频数据在经过采集、编码与打包之后分别存进各自的发送缓存,然后通过开启发送线程来顺次交错地从音视频缓存中提取出数据发送。在接收端,运用缓存机制来消除抖动,达到媒体内的同步;运用主从流同步控制方式,其中音频是主流,视频是从流,从音视频数据的时间戳来判断其中的同步关系。当检测到丢包时,如果为音频丢包,就采用固定噪声包来代替丢失的音频包;如果为视频丢包,就按照一定规则来进行丢帧处理。

2.2 发送端的同步实现

发送端同时开启两个线程来进行音频与视频的采集。音频的编解码采用G.711标准,视频的编解码采用H.264标准,需保证音视频帧率的一致性。在音视频数据采集工作结束后,进行编码与打包,最后存入各自列属的发送缓存队列中等待发送线程来提取数据发送。音频数据量比较小,一个RTP包就可以承载一帧,然而视频帧比较大,需要对其进行分包。在视频帧分包时,每一帧结束时采用RTP包头中的Mark字段来标志,该字段为1就表明当前包为一帧的末包。先通过发送线程从音视频的缓存队列中提取RTP包发送,然后向同一个端口交替输送音视频数据。

2.3 接收端的同步实现

2.3.1 媒体内同步

网络抖动会对媒体流的播放流畅性产生极大影响,为了消除该弊端,接收端利用缓存机制来实现媒体内的同步,从而保证音频流能连续输送。在接收到音频数据后先将其存入缓存,设定一个阈值R,在缓存的数据帧数大于R时才可以从缓存中取出数据播放。当播放R个单元所用的时间大于网络的最大抖动时间时,可以使音频播放的流畅性得到显著提高。

音频数据的存储是运用一级缓存链表,经过判断接收的音频RTP数据包的序列号来将音频数据按照顺序依次放入缓存中。因为数据在网络传输中也会遭遇丢包,所以如果对丢包不进行处理,就会影响到音频播放的流畅性,进而对音视频同步播放产生一定的影响。针对该种现象,本文设计出一种音频丢包时的处理机制,在检测出存在音频丢包时,采用固定噪声包来填补丢失的音频包,并且设置其相应的时间戳。

2.3.2 媒体间同步

主流连续播放,并且主流决定从流的播放,这是音视频同步所采用的主从流方式。本文选择音频流担当主流,视频流为从流,让音频流连续地播放。经研究表明,对音频以及相关的视频流而言,当偏移-80ms(音频滞后于视频)至+80ms(音频超前于视频)之内,大多数的用户都不会觉察到偏移的存在,此区域被称为同步区域;当偏移范围在-160ms至+160ms以外时,称为不同步区域。所以,本文设置偏移阈值M为160ms,在同步播放的线程中,定时地播放从音频缓存中提取出的音频帧,并且记下当时音频帧的时间戳Ta。在播放音频之前,先从视频数据缓冲中提取出一帧图像数据,以得到其时间戳Tv。

(1)Ta-Tv>M,表明视频帧滞后,则丢弃视频帧;

(2)Tv-Ta>M,表明视频帧超前,则将当前的视频帧缓存,在播放下一帧的音频时来进行重新判断;

(3)-M≤Tv-Ta≤M,表明一切正常,则播放当前的视频帧

在进行同步处理时,需加入去马赛克机制。若主帧滞后,则应丢弃主帧以及主帧以后的所有辅帧;若辅帧滞后,则应仅丢弃当前的辅帧。

3 效果演练

把本方案运用于多媒体信息交互系统中,从而实现一个简单的安卓客户端,通过媒体服务器转发音视频数据。本客户端经测试显示出音频流畅性佳,视频图像的清晰度高,未出现明显的马赛克现象。

为了检验同步机制是否存在效果,在接收端分别统计出采用同步机制的前后,音视频同步关系分布概率。在测试时把发送端设置发送1000个视频帧,经过多次测试后采取均值,表1统计出音视频同步关系概率,从该表可以看出运用同步方法可很好地改正音视频失步问题。

4 结束语

在当今的多媒体交互系统中,关键技术为音视频同步。经过分析造成音频不同步的原因,并结合目前已存在的音视频同步方案,本文提出了一种新型的音视频同步方法。基于RTP包头时间戳、缓存机制和丢包处理机制,采用主从流方式播放音视频以保证其流畅性。该方法运行简单,运算方便,占用系统资源量少,且具有扩展性。经测试,同步效果优良,有高度的实用价值。

作者单位

广东威创视讯科技股份有限公司 广东省广州市 510670