一种基于RTP/RTCP协议的音视频同步算法研究
2015-10-22周旭艳李先哲
周旭艳,李先哲,谭 彬,2,朱 兵,肖 英
(1.井冈山大学电子与信息工程学院,江西,吉安 343009;2.同济大学电子与信息学院,上海 201804)
一种基于RTP/RTCP协议的音视频同步算法研究
*周旭艳1,李先哲1,谭彬1,2,朱兵1,肖英1
(1.井冈山大学电子与信息工程学院,江西,吉安343009;2.同济大学电子与信息学院,上海201804)
提出了一种基于RTP/RTCP协议的音视频同步算法。该算法将到达接收端的音视频RTP数据包时间戳映射至一个公共的绝对时间轴上,以测算出网络传输过程中的延时误差△Ti。然后,针对接收端音视频播映不同的速度,测算数据包在缓冲区等待播映过程中的延时误差△Wi。最后以△Ti和△Wi的和作为总误差给出相应的播映策略。仿真实验结果表明,该算法的RSME低于其他同步算法,对于音视频的失步现象具有较明显的纠正效果,用户对于播映质量的满意度大幅提升。
音视频同步; RTP/RTCP;时间戳;播映策略
0 引言
随着信息技术的发展,尤其是网络技术、通信技术和多媒体技术的应用普及[1],使得网络直播、视频会议、远程教学已经越来越贴近人们的生活。而这些多媒体业务对于音频和视频服务质量以及两者之间同步的要求越来越高,因此如何提高多媒体中音视频的同步效果已成为学术界研究的热点。
Escobar等设计出一种流同步协议,它需要全网同步时间,适用于一般的通信模式[2];Palacharla S等提出了一种实时通信协议实现音视频同步的解决方案[3];Chen T提出了一种基于语音信号与口型对应的同步算法[4];曹宁等提出了一种基于MCU模式的IP视频会议中的音视频同步的研究[5];刘丽霞等提出了一种基于FFMPEG解码的音视频同步实现算法[6]。以上算法均是基于特定环境及特定条件下实现音视频的同步控制,并且算法复杂度较高。
本文针对音视频流传输及播映特点,提出了一种基于RTP(Real-time Transport Protocol,实时传输协议)/RTCP RTCP(time Transport Control Protocol控制协议)的音视频实时同步算法。该算法在接收端测算音视频流在传输以及播映过程中所出现的误差,并给出相应的播映策略。与其他算法比较,该算法无需全网同步时钟,也无需采用反馈机制,适合于各种需要音视频同步控制的场合。
1 音视频不同步因素分析
音视频同步是音视频数据所特有的特性。当发送端将采集得到的音视频数据经过网络传输至接收端的过程中,音视频数据间的时域特征必定会因某些因素遭到破坏,造成接收端无法正确播放音视频数据。因此,需要研究从发送端的采集、编码、传输,以及接收端的接收、解码、缓冲、播映等各个环节提取影响同步的相关因素,从而提出一种更好的控制音视频同步的方法,能够满足客户高质量的主观感受需求,达到“音唇同步”的紧密效果。音视频流媒体的传输过程如图1所示。
图1 音视频流媒体传输过程图Fig.1 Process of audio and video streaming media transmission
目前,造成音视频流的不同步主要因素[7-9]为:多个采集端起始时间偏移、各端时钟漂移、延时抖动、网络传输条件的变化、节点数据丢包以及播放时间的偏差等。根据失步因素以及音视频流媒体传输过程,得出对音视频同步影响最大的是音视频的传输过程,因为网络存在着极大的变数,尤其在网络堵塞时,网络的时延、丢包率、闪断都将增加,从而造成音视频的失步。其次,对音视频同步影响较大的是接收端对音视频数据包的缓冲,这是由于音视频在播放之前必须在缓冲区内进行按序排队及消抖,才能予以播映。
2 音视频同步性能的测量标准
多媒体同步系统的同步性能评价通常从客观和主观两个方面予以衡量。
2.1客观标准
H.Liu[10]提出用均方根误差RMSE(ROOT MEAN SQUARE ERROR)作为媒体连续性的二阶测度(metric)。
RMSE可以用于测量出媒体信息流i的n(n=1,2,…,J)个多媒体单元的播映时间和产生时间,其中播映时间和产生时间分别用Gi(n)、Pi(n)表示。RMSE可用下列两种方式予以定义:
公式中的Gv(n)为多媒体单元n的产生时间,Pv(n)为多媒体单元n的播映时间;Ga(m)为多媒体单元m的产生时间,Pa(m)为多媒体单元m的播映时间;Ma为播映的媒体流单元总数目。对于所测同步系统,如果RMSE的值越小,则同步性能越好。
2.2主观QOS评定
主观QoS(quality of service服务质量)评定的是视频与音频错位范围可被接受程度。对应的音频和视频数据包的时延差称为偏移。研究表明,当偏移范围不超过±60 ms时,用户对于播映情况非常满意,媒体流“唇音同步”,该区域为同步区域;当偏移量滞后或超前范围超过±160 ms时,用户会明显察觉到音视频不同步,对播映情况非常不满意,该区域为不同步区域;在同步区域和不同步区域之间,还存在着临界区和调整区。音视频同步关系如图2所示。
图2 音视频同步关系Fig.2 Relationship between audio and video synchronization
3 音视频同步算法设计
根据上述音视频不同步主因分析,可知音视频失步误差在网络传输过程以及播放端的缓冲等待。因此,必须求出传输误差以及等待误差后,给出相应播放策略,就好比某一音乐家和一群伴舞者在舞台上的同步。首先音乐家和各个伴舞者从不同地域乘坐不同交通工具赶到演出地点后,存在着时间误差。其次,当该音乐家的节目时间到达后,音乐家和伴舞者在上台之前,还必须在舞台下面进行最后同步,才能保证节目的同步效果。
3.1算法设计思路
第一步:音视频RTP数据包的传输误差,我们将音视频流中的RTP时间戳映射到一个公共的绝对参考时间上。RTP数据包的时间戳记录的是RTP数据包中首字节的采样时间,而RTCP SR报文包含与RTP时间戳相对应的实时信息,具体表现为音视频同步源的时间信息和两个SR报文之间所发送的RTP数据包数量。SR报文中的NTP时间戳为64位,反映的是SR包发出的绝对时间。因此,我们可以利用NTP时间戳作为公共参考时间系,将音频与视频RTP数据包的时间戳分别映射至该公共参考时间系上,再根据同源的RTP数据包的时间戳即可得出传输过程中的时延误差。
第二步:将接收端缓冲区设置为FIFO(先进先出)模型,根据不同的音视频播映速度可以计算出数据包在缓冲区排队的时延误差。
第三步:根据传输误差和缓冲区误差求出失步偏移DISP,并根据求出的DISP范围采取相应的播映策略。
3.2音视频RTP时间戳映射
在网络中,保证音视频信息的同步,采用的是RTP/RTCP协议。RTP详细定义了在互联网上传递音频和视频的标准数据包格式,但是RTP属于一种轻型协议,提供的是一种无连接、无差错控制的服务,因此需要RTCP为其服务质量提供保证。RTP的控制协议,它用于监视网络的服务质量和数据手法双方的传递信息,主要功能是服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识。
由于RTP包中的时间戳初始值是随机产生的,在采集端同一时刻采集的音视频RTP数据包中的时间戳将是不同的。其次,采集端对于音视频采样频率是不同的,而音视频RTP数据包的时间戳的增长又与数据采样频率相关,这也会导致同时采集的数据由于音视频RTP包的不同而时间戳不同。因此,不能直接在接收端比较RTP包中的时间戳计算误差。为了解决这个问题,我们将RTCP SR数据包的NTP时间戳作为一个公共的参考时间系,这是因为音视频RTP数据包采用的是独立的传输通道,在传输过程中为了保证传输质量,音视频会话各自周期性地发送RTCP SR包。在两个SR数据包坐标系中,假设发送端通过独立信道发送了n个RTP音频数据包与k个视频数据包,发送数据包的数量与媒体采样频率直接关联。这n个音频RTP数据包中的任意一个均可以映射至NTP时间戳的公共参考时间系上,再将同源的视频RTP数据包映射至同一坐标系上,即可得出音视频同源数据包在网络传输过程中的时间误差。图3描绘了音视频RTP数据包在RTCP SR的NTP时间段内的映射情况。
图3 RTP数据包在NTP时间戳坐标系映射图Fig.3 The map of RTP packets in the NTP timestamp system
由图3可知,音视频RTP数据包映射坐标时间为:
其中,Ti(j)为音频或视频j数据包在NTP时间戳坐标系上的值;R为接收端对音视频数据的采样频率,是一个衡量;△ti(k)为任意两个相邻的RTP数据包的时间戳差值。而Ti(1)可由下式计算:
ti(1)为音视频RTP数据包1的时间戳,ti(0)为音视频RTP数据包0的时间戳。因此,式(4)等于:
假设第jA个音频包与第jV个视频包同时到达接收端,由下列公式即可计算出音频包和视频包对应的绝对时间差值为:
3.3缓冲区时延
音频和视频数据进入接收端后,分别进入各自的缓冲区得到播映。音频数据通过声卡进行播映,而视频数据通过显卡进行播映,并且音视频的播映速度是不同的。因此,误差也是比较明显的(在缓冲区内进行最后的同步控制)。RTP数据包i在缓冲区内的状态如图4所示。
图4 接收端缓冲区RTP数据包等待播映示意图Fig.4 The RTP packets wait to play at receive buffer
由图4可知,设第i个数据包到达缓冲区时,第k个数据包正在播映,其剩余播映时间为Tr,此时等待队列中还有i个数据包等待播映。可得数据包i等待时间为:
即:
则第jA个音频包与第jV个视频包的时延误差时间为:
3.4播映策略
接收端的误差控制即同步控制方法为:
STEP1:SKEW<T-,此时音视频不同步,且视频滞后于音频,则删除该晚到的视频帧,不予播映;
STEP2:T-<DISP>T+,此时音视频同步,无需调整即可播映;
STEP3:DISP>T+,此时音频滞后于视频,则延时DISP时间后,再进行同步判断。
音视频时间偏移DISP=(△Ti+△Wi)。根据上面定义的音视频同步性能,T-=60 ms,T+=60 ms。
1、仿真实验分析
以普通的Internet为测试网络,音频编码格式为G.729A,使用8 kbps编码速率,每30 ms语音作为一帧音频;视频编码格式为H.264,编码图像为CIF格式,播放帧率为15 FPS。每次测试时间为10分钟视频,本文算法与文献[11]进行同步测试,RMSE结果如表1所示。
表1 本文算法与文献[11]的RSME比较Table 1 RSME Comparison between the algorithm in this thesis and the algorithm proposed in the paper 11
由表1所示,与文献[11]提出的同步算法相比,本文算法的同步性能优于文献[7]算法,RMSE值平均降低了5.45%,最高降低了6.59%。
4 结 论
本文利用RTP/RTCP数据包中的各种时间戳,映射出音视频RTP数据包到达接收端后的相对时间坐标,从而得出在网络传输过程中由于时延、抖动等因素造成音视频数据包失步的误差,同时考虑了接收端在播映音视频数据中的不同速度所造成的时延,根据总体误差给出了相应的播映策略。该算法易于理解和实现,与传统的RTP/RTCP音视频同步算法比较,该算法无需全网同步时钟与反馈机制,具有较低的算法复杂度,适用于各种远程会议等场合。
[1]- [11]参考文献:
[1] 齐成名.音视频同步问题的研究与实现[D].哈尔滨:哈尔滨工业大学,2009.
[2] Escobar J, Partridge C, Deutsch D.Flow synchronization protocol[J].Networking, IEEE/ACM Transactions on 1994, 2(2): 111-121.
[3] Palacharla S, Karmouch A, Mahmoud S A.Design and implementation of a real-time multimedia presentation system using RTP[C].The Twenty-First Annual International Computer Software and Applications Conference.IEEE, 1997: 376-381.
[4] Chen T, Graf H P, Wang K.Lip synchronization using speech-assisted video processing[J].Signal Processing Letters, IEEE, 1995, 2(4): 57-59.
[5] 曹宁,胡建荣,马银松.IP视频会议系统中音视频同步的研究[J].中国图像图形学报,2005,(2):255-259.
[6] 刘丽霞,边金松,张琍,穆森.基于FFMPEG解码的音视频同步实现[J].计算机工程与设计,2013,6:2088-2992.
[7] 方立华.网络监控系统中音视频实时流同步技术的研究与设计[D].杭州:浙江工业大学,2012.
[8] 王少燕.多媒体通信中的音视频同步问题研究与实现[D].西安:西安电子科技大学,2003.
[9] 陈运德,张灿, 陈德元.空间多媒体通信中音视频同步技术研究[J].计算机仿真,2010,6:130-134.
[10] Liu H, El Zarki M.Delay and synchronization control middleware to support real-time multimedia services over wireless PCS networks[J].Selected Areas in Communications, IEEE Journal on, 1999, 17(9): 1660-1672.
[11]王凤纯,鲁静.基于RTP/RTCP的音视频同步方法研究[J].软件,2011,6:78-80.
RESEARCH OF AUDIO AND VIDEO SYNCHRONIZATION ALGORITHM BASED ON RTP/RTCP PROTOCOL
*ZHOU Xu-yan1, LI Xian-zhe1, TAN Bin1,2, ZHU Bing1, XIAO Ying1
(1.School of Electronics and Information Engineering,Jinggangshan University,Ji’an ,Jiangxi 343009,China;2.School of Electronics and Information,Tongji University,Shanghai 201804,China)
An algorithm of audio and video synchronization control based on RTP / RTCP protocol is proposed.The core idea of this algorithm was to map the timestamp of the audio frame and the video frame to a public absolute time axis at the receiver so as to compute the delay error△Tiduring the transfer process across the internet.Furthermore, the delay error △Wiof the packet which is waiting in the buffer was obtained according to different speed of audio and video broadcast at the receiving end.Finally, we use△Tiand△Wias the total error and give the corresponding broadcast strategy.Simulations results show that RSME of this algorithm is less than other synchronization algorithm.The method can well correct audio and video out of synchronization.The users’feeling of quality greatly enhanced.
audio and video synchronization; RTP/RTCP; timestamp; strategies for playing
TP301.6
ADOI:10.3969/j.issn.1674-8085.2015.02.010
1674-8085(2015)02-0038-04
2014-09-09;修改日期:2015-02-21
江西省科技厅科技支撑计划项目 (20123BBE50076); 江西省教育厅科技计划项目 (GJJ13539)
*周旭艳(1978-),女,江西上饶人,讲师,硕士,主要从事嵌入式系统研究(E-mail:zhouxuyan@jgsu.edu.cn);
李先哲(1995-),男,山东淄博人,井冈山大学电子与信息工程学院2012级本科生(E-mail:jalxz@126.com);
谭彬(1982-),女,湖南常宁人,讲师,博士研究生,主要从事无线通信视频传输研究(E-mail:jatanbin@163.com);
朱兵(1975-),男,江西吉安人,副教授,硕士,主要从事嵌入式系统研究(E-mail:jazhubing@126.com);
肖英(1965-),女,江西吉安人,教授,硕士,主要从事计算机网络通信和图像处理研究(E-mail:mengya11@126.com).