
摘要:针对网络传输中由于延迟、抖动、网络传输条件变化等因素引起的音视频不同步的问题,设计并实现了一种适应不同网络条件的音视频同步方案。利用 音视频编码技术AMR-WB和 H.264具有在复杂网络环境中速率可选择的特性,结合 RTP 时间戳和RTCP反馈检测QOS,通过控制音视频编码方式,实现了动态网络环境下的音视频同步方案。重点介绍了可靠网络环境和动态网络环境下同步算法的设计过程,并通过实际测试验证了此方案的可行性。结果表明,此方案能够保证不同网络环境中的音视频同步。
引言
音视频媒体间同步是多媒体系统服务质量(QoS)研究中的一项重要内容。在网络上传输多媒体数据时,由于终端对数据的处理方式,以及网络中的延时、抖动,会引起音视频流的不同步。传统的解决方案往往存在实时性差, 时间开销大,且无法适应动态网络环境等缺陷,针对此问题,本文在分析媒体间同步性定义、影响因素等的基础上,提出了一种基于循环缓冲队列和RTCP反馈控制的同步解决方案。
1 媒体间同步性定义
同步是多媒体通信的主要特征,也是其重要研究内容之一,同步与否直接影响多媒体通信的质量。媒体间同步即是要保持 音频流和视频流之间的 时间关系[1]。为了描述同步,实现相关的控制机制,定义了相应的服务质量参数(QoS)。针对音视频,采用时间差即偏差来表示。结果表明,如果偏差限制在一定的范围内,认为媒体是同步的。当偏移在-90ms(音频滞后于视频)到+20ms(音频超前视频)之间时,人感觉不到试听质量的变化,这个区域可以认为是同步区域;当偏移在-185到+90之外时,音频和视频会出现严重的不同步现象,此区域认为是不同步区域。本设计认为偏移在-120ms到+40ms之间音视频同步。
1.1 音视频同步的影响因素
在网络环境下,多媒体信息在传输过程中受到各种因素的影响,会导致其在接收端不能正确播放,即音视频不同步。引起音视频不同步的原因主要有两种:一种是终端处理数据引起的,发送端在数据的采集、编码、打包等模块和接收端在处理解包、解压、回放等模块时,由于音频和视频的数据量以及编码算法不同而引起的 时间差。并且发送端没有统一的同步时钟;另一种是网络传输延时,网络传输是受到网络的实时传输带宽、传输距离和网络节点的处理速度等因素的影响,在网络阻塞时,媒体信息不能保证以连续的“流”数据方式传输,特别是不能保证数据量大的视频信息的连续传输,从而引起媒体流内和流间的失步[2-3]。
2 音视频同步系统设计
在音视频同步系统中,发送端在发送音视频流时,要给各帧数据打上相对 时间戳,并且 音频流和视频流,一个作为主流,另一个作为从流。主流连续播放,从流的播放由主流的播放状态决定,从而实现同步。考虑到人对声音更为敏感,在本设计中选择音频流作为主流,视频流作为从流。发送端通过AMR-WB和 H.264编码模块对DirectShow采集到的音视频数据进行编码,经过同步处理,最后利用 RTP/RTCP等协议实现媒体流的传输和控制。接收端接收到RTP传过来的音视频数据包后,对数据进行解码,然后同步处理,最后通过DirectShow播放音视频。
3 音视频同步方案设计
考虑到传统的同步方案只是在接收端通过 RTP 时间戳实现同步,即将具有相同时间戳的音视频数据同时表现出来,这种方案由于没有从有效控制和适应不同网络环境的角度去实现,并且读写时间戳的开销太大,需要全网同步时钟等缺陷,因此不适应于音视频媒体间同步[4]。针对此问题,这里提出一种结合发送端,利用RTP/RTCP以及可控 音视频编码技术,适用于不同网络条件的同步方案。主要表现在以下两方面:1、发送端数据的采集、编码即发送控制;2、利用RTCP的反馈指标,通过可控速率的音视频编码算法动态适应不同的网络环境。