一种多路音视频同时播放时处理音视频同步的方法

文档序号:7995407阅读:430来源:国知局
专利名称:一种多路音视频同时播放时处理音视频同步的方法
技术领域
本发明属于计算机多媒体技术领域,涉及经过网络传输后对多路音视频处理的方法,具体是一种多路音视频同时播放时处理音视频同步的方法。
背景技术
随着当今互联网宽带技术和多媒体信息技术的飞速发展,网络多媒体应用已经成为internet应用的重要内容。特别是网络视频会议中,由于涉及到多人之间的交互行为, 需要对多路音视频同时进行播放。此时每一路音视频都需要同步,否则无法做到“唇音同步”的效果,影响沟通的流畅性。传统的音视频同步技术是将音视频包各标记一个时间戳, 在播放时根据该时间戳来进行同步。这种方式只能工作于一路音频和一路视频的情况,在多路音频和多路视频的情况下无法正常工作,不能满足视频会议这类多人沟通应用对多路音视频同时进行同步的要求。

发明内容
本发明的目的是针对现有技术的不足,提供了一种基于音频播放驱动的多路视频同步方法。本发明方法的具体步骤为
步骤(1).每个用户分别获取各自的音视频数据并将音频和视频各自压缩;将采集的音频数据以10 120毫秒为单位分割成音频数据单元,将每个音频数据单元压缩成音频压缩包,每个音频压缩包标记采集时刻的客户端机器时间戳;将视频数据中的每一帧压缩成视频压缩包,每个视频压缩包标记采集时刻的客户端机器时间戳;将每个音频压缩包和每个视频压缩包发送给服务器;
每个用户分别获取各自的音视频数据的方法包括通过设备采集和从媒体文件中获取; 如通过设备采集,则所述的时间戳为采集的时刻;如从媒体文件中获取,媒体文件播放或解压组件会为数据设置时间戳,该时间戳为相对媒体文件开始的时刻,转换为以当前计算机时刻为标准的时间戳。步骤O).服务器将接收到的每个用户的音频压缩包解压后混音,然后在混音结果中记录所有参与混音的音频压缩包对应的时间戳,压缩成混音压缩包,发送给客户端;视频压缩包直接发送给客户端。N个用户U1、U2、…、UN,每个用户有一路音频,共有N路音频,分别为A1、A2、…、 AN ;服务器需要混音出N+1路音频,分别是
第0路.包含了所有音频,记为M0、 第1路.除Al外其他所有音频,记为Ml、
第2路.除A2外其他所有音频,记为M2、 * * *、
第N路.除AN外其他所有音频,记为丽。
生成的每路音频都需要将其对应的N或N-I路源音频的时间戳写入这路音频中, 该音频包将会有N或N-I个时间戳,以及这些时间戳所对应的源音频。生成这N+1路音频后,将MO发送给所有没有发送音频的用户,Ml发送给U1,M2发送给U2,以此类推,发送给每个用户的音频内容都不包含该用户的音频。步骤(3).每个客户端接收到混音压缩包和视频压缩包后,将混音压缩包解压后顺序播放,然后根据音频驱动视频的原则,显示对应视频压缩包中的视频帧。每个客户端接收到的内容为一路混音压缩包和服务器转发的N路视频压缩包;播放时通过音频驱动视频进行,即每播放一个音频压缩包,记录该音频压缩包中包含的所有时间戳(U,A)···;播放X用户的视频时,取出该路视频待播放的一帧对应的视频时间戳(UX, VX),同时取出最近播放过的音频帧的同一用户的时间戳(UX,AX),对VX和AX进行比较,若 VX大于等于AX,则表示视频内容已经在音频内容之后了,可以播放,而若VX小于AX,根据音频驱动视频原则,表示这个视频帧还没有到播放的时刻,因此需要等待下一次的播放判断来决定是否可以播放。本发明方法以音频时间戳为纽带,将多路视频与音频同步,达到所有视频均能够与音频“唇音同步”的效果。本发明方法中音频在服务器混音时,并不使用单一的时间戳来标记一个音频混音压缩包,而是将参与这个音频混音压缩包的多路音频的时间戳都保存起来,作为音频混音压缩包的时间戳,这样就完整地保存了所有音频和视频之间的同步关系。
具体实施例方式一种多路音视频同时播放时处理音视频同步的方法,具体步骤为
步骤(1).每个用户分别获取各自的音视频数据并将音频和视频各自压缩;将采集的音频数据以10 120毫秒为单位分割成音频数据单元,将每个音频数据单元压缩成音频压缩包,每个音频压缩包标记采集时刻的客户端机器时间戳;将视频数据中的每一帧压缩成视频压缩包,每个视频压缩包标记采集时刻的客户端机器时间戳;将每个音频压缩包和每个视频压缩包发送给服务器。每个用户分别获取各自的音视频数据的方法包括通过设备采集和从媒体文件中获取;如通过设备采集,则所述的时间戳为采集的时刻;如从媒体文件中获取,媒体文件播放或解压组件会为数据设置时间戳,该时间戳为相对媒体文件开始的时刻,转换为以当前计算机时刻为标准的时间戳。视频处理则是将输入的视频以帧为单位,使用视频编码器压缩后,根据网络情况, 切割成适宜传输的大小(一般为400 1400个字节),和该视频帧的时间戳一起发送给服务器。为方便接收端排序以及判断是否在传输过程中有丢包现象,音视频包均带有序列号。序列号为2字节递增,超过最大值后从0重新开始。为提高带宽较差时的用户体验,音视频数据使用不同的连接来发送,这样当带宽不够时,音频连接由于数据相对视频连接比较少,容易得到保障。而我们交互的主要手段是通过音频,视频一般来说是辅助手段,这样做可以让音频比较流畅,减少对用户的影响。步骤O).服务器将接收到的每个用户的音频压缩包解压后混音,然后在混音结果中记录所有参与混音的音频压缩包对应的时间戳,压缩成混音压缩包,发送给客户端;视频压缩包直接发送给客户端。
N个用户U1、U2、…、UN,每个用户有一路音频,共有N路音频,分别为Al、A2、…、 AN ;服务器需要混音出N+1路音频,分别是
第0路.包含了所有音频,记为M0、 第1路.除Al外其他所有音频,记为Ml、
第2路.除A2外其他所有音频,记为M2、 * * *、
第N路.除AN外其他所有音频,记为丽。生成的每路音频都需要将其对应的N或N-I路源音频的时间戳写入这路音频中, 该音频包将会有N或N-I个时间戳,以及这些时间戳所对应的源音频。例如MO将会包含 (Ul, Al) (U2,A2)…(UN,AN),Ml 将会包含(U2,A2) (U3, A3)…(UN,AN)。生成这N+1路音频后,将MO发送给所有没有发送音频的用户,Ml发送给U1,M2发送给U2,以此类推,发送给每个用户的音频内容都不包含该用户的音频,即避免在该用户喇叭中产生回声。步骤(3).每个客户端接收到混音压缩包和视频压缩包后,将混音压缩包解压后顺序播放,然后根据音频驱动视频的原则,显示对应视频压缩包中的视频帧。每个客户端接收到的内容为一路混音压缩包和服务器转发的N路视频压缩包;播放时通过音频驱动视频进行,即每播放一个音频压缩包,记录该音频压缩包中包含的所有时间戳(U,A)···;播放X用户的视频时,取出该路视频待播放的一帧对应的视频时间戳(UX, VX),同时取出最近播放过的音频帧的同一用户的时间戳(UX,ΑΧ),对VX和AX进行比较,若 VX大于等于ΑΧ,则表示视频内容已经在音频内容之后了,可以播放,而若VX小于ΑΧ,根据音频驱动视频原则,表示这个视频帧还没有到播放的时刻,因此需要等待下一次的播放判断来决定是否可以播放。网络传输的不确定性比较强,主要表现有以下几点数据包乱序和接收延时的不确定性。通过TCP发送数据时,不同连接发出的数据在接收时可能会与发送的顺序不同,通过UDP发送数据时,不同的数据包到达的顺序也是不能保证的,这是数据包的乱序特性。无论使用TCP还是UDP,发出的数据包到达对方计算机所消耗的时间都是不确定的,会随着网络传输质量状况而变化,一般可能在1毫秒到500毫秒内波动,网络差的时候甚至有可能达到数秒钟。由于以上两个特性,需要对接收到的音视频数据分别进行排序和缓冲处理。排序的依据是数据包中的序列号,缓冲的时间将根据网络延迟决定。网络延迟越小,表示网络状况越好,那么可以适当减少缓冲的音频数据,来获取更好的实时性。网络延迟越大,表示网络状况越差,那么我们将暂停播放,直到缓冲的音频数据时长等于网络延时的时长,这样虽然牺牲了实时性,但是提高了播放的流畅度,减少播放的时候由于缓冲过短,数据被播放完后没有数据可用造成的一卡一卡的现象。
权利要求
1. 一种多路音视频同时播放时处理音视频同步的方法,其特征在于该方法的具体步骤是步骤(1).每个用户分别获取各自的音视频数据并将音频和视频各自压缩;将采集的音频数据以10 120毫秒为单位分割成音频数据单元,将每个音频数据单元压缩成音频压缩包,每个音频压缩包标记采集时刻的客户端机器时间戳;将视频数据中的每一帧压缩成视频压缩包,每个视频压缩包标记采集时刻的客户端机器时间戳;将每个音频压缩包和每个视频压缩包发送给服务器;每个用户分别获取各自的音视频数据的方法包括通过设备采集和从媒体文件中获取; 如通过设备采集,则所述的时间戳为采集的时刻;如从媒体文件中获取,媒体文件播放或解压组件会为数据设置时间戳,该时间戳为相对媒体文件开始的时刻,转换为以当前计算机时刻为标准的时间戳;步骤O).服务器将接收到的每个用户的音频压缩包解压后混音,然后在混音结果中记录所有参与混音的音频压缩包对应的时间戳,压缩成混音压缩包,发送给客户端;视频压缩包直接发送给客户端;N个用户U1、U2、…、UN,每个用户有一路音频,共有N路音频,分别为A1、A2、…、AN; 服务器需要混音出N+1路音频,分别是 第0路.包含了所有音频,记为M0、 第1路.除Al外其他所有音频,记为Ml、 第2路.除A2外其他所有音频,记为M2、第N路.除AN外其他所有音频,记为丽;生成的每路音频都需要将其对应的N或N-I路源音频的时间戳写入这路音频中,该音频包将会有N或N-I个时间戳,以及这些时间戳所对应的源音频;生成这N+1路音频后,将MO发送给所有没有发送音频的用户,Ml发送给U1,M2发送给 U2,以此类推,发送给每个用户的音频内容都不包含该用户的音频;步骤(3).每个客户端接收到混音压缩包和视频压缩包后,将混音压缩包解压后顺序播放,然后根据音频驱动视频的原则,显示对应视频压缩包中的视频帧;每个客户端接收到的内容为一路混音压缩包和服务器转发的N路视频压缩包;播放时通过音频驱动视频进行,即每播放一个音频压缩包,记录该音频压缩包中包含的所有时间戳(U,A);播放X用户的视频时,取出该路视频待播放的一帧对应的视频时间戳(UX,VX),同时取出最近播放过的音频帧的同一用户的时间戳(UX,AX),对VX和AX进行比较,若VX大于等于AX,则表示视频内容已经在音频内容之后了,可以播放,而若VX小于AX,根据音频驱动视频原则,表示这个视频帧还没有到播放的时刻,等待下一次的播放判断来决定是否可以播放。
全文摘要
本发明涉及一种多路音视频同时播放时处理音视频同步的方法。传统的音视频同步技术不能满足多人沟通应用对多路音视频同时进行同步的要求。本发明方法中每个用户分别获取各自的音、视频数据并压缩成音、视频压缩包,每个音、视频压缩包标记时间戳,发送给服务器;服务器将接收到的每个用户的音频压缩包解压后混音,在混音结果中记录所有参与混音的音频压缩包对应的时间戳,压缩成混音压缩包,发送给客户端,视频压缩包直接发送给客户端;每个客户端接收到混音压缩包和视频压缩包后,将混音压缩包解压后顺序播放,然后根据音频驱动视频的原则,显示对应视频压缩包中的视频帧。本发明方法能够完整地保存所有音频和视频之间的同步关系。
文档编号H04N7/52GK102364952SQ20111032716
公开日2012年2月29日 申请日期2011年10月25日 优先权日2011年10月25日
发明者李群巍, 胡开荆 申请人:浙江万朋网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1