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

申请号 : CN201110327166.0

文献号 : CN102364952B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 胡开荆李群巍

申请人 : 浙江万朋网络技术有限公司

摘要 :

本发明涉及一种多路音视频同时播放时处理音视频同步的方法。传统的音视频同步技术不能满足多人沟通应用对多路音视频同时进行同步的要求。本发明方法中每个用户分别获取各自的音、视频数据并压缩成音、视频压缩包,每个音、视频压缩包标记时间戳,发送给服务器;服务器将接收到的每个用户的音频压缩包解压后混音,在混音结果中记录所有参与混音的音频压缩包对应的时间戳,压缩成混音压缩包,发送给客户端,视频压缩包直接发送给客户端;每个客户端接收到混音压缩包和视频压缩包后,将混音压缩包解压后顺序播放,然后根据音频驱动视频的原则,显示对应视频压缩包中的视频帧。本发明方法能够完整地保存所有音频和视频之间的同步关系。

权利要求 :

1.一种多路音视频同时播放时处理音视频同步的方法,其特征在于该方法的具体步骤是:步骤(1).每个用户分别获取各自的音视频数据并将音频和视频各自压缩;将采集的音频数据以10~120毫秒为单位分割成音频数据单元,将每个音频数据单元压缩成音频压缩包,每个音频压缩包标记采集时刻的客户端机器时间戳;将视频数据中的每一帧压缩成视频压缩包,每个视频压缩包标记采集时刻的客户端机器时间戳;将每个音频压缩包和每个视频压缩包发送给服务器;

每个用户分别获取各自的音视频数据的方法包括通过设备采集和从媒体文件中获取;

如通过设备采集,则所述的时间戳为采集的时刻;如从媒体文件中获取,媒体文件播放或解压组件会为数据设置时间戳,该时间戳为相对媒体文件开始的时刻,转换为以当前计算机时刻为标准的时间戳;

步骤(2).服务器将接收到的每个用户的音频压缩包解压后混音,然后在混音结果中记录所有参与混音的音频压缩包对应的时间戳,压缩成混音压缩包,发送给客户端;视频压缩包直接发送给客户端;

N个用户U1~UN,每个用户有一路音频,共有N路音频A1~AN;服务器需要混音出N+1路音频,分别是:第0路.包含了所有音频,记为M0、

第1路.除A1外其他所有音频,记为M1、

第2路.除A2外其他所有音频,记为M2、

以此类推,

第N路.除AN外其他所有音频,记为MN;

生成的每路音频都需要将其对应的N或N-1路源音频的时间戳写入这路音频中,该音频中将会有N或N-1个时间戳,以及这些时间戳所对应的源音频;

生成这N+1路音频后,将M0发送给所有没有发送音频的用户,M1发送给U1,M2发送给U2,以此类推,发送给每个用户的音频内容都不包含该用户的音频;

步骤(3).每个客户端接收到混音压缩包和视频压缩包后,将混音压缩包解压后顺序播放,然后根据音频驱动视频的原则,显示对应视频压缩包中的视频帧;

每个客户端接收到的内容为一路混音压缩包和服务器转发的N路视频压缩包;播放时通过音频驱动视频进行,即每播放一个音频压缩包,记录该音频压缩包中包含的所有时间戳(U,A);播放X用户的视频时,取出该路视频待播放的一帧对应的视频时间戳(UX,VX),同时取出最近播放过的音频帧的同一用户的时间戳(UX,AX),对VX和AX进行比较,若VX大于等于AX,则表示视频内容已经在音频内容之后了,可以播放,而若VX小于AX,根据音频驱动视频原则,表示这个视频帧还没有到播放的时刻,等待下一次的播放判断来决定是否可以播放。

说明书 :

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

技术领域

[0001] 本发明属于计算机多媒体技术领域,涉及经过网络传输后对多路音视频处理的方法,具体是一种多路音视频同时播放时处理音视频同步的方法。

背景技术

[0002] 随着当今互联网宽带技术和多媒体信息技术的飞速发展,网络多媒体应用已经成为internet应用的重要内容。特别是网络视频会议中,由于涉及到多人之间的交互行为,需要对多路音视频同时进行播放。此时每一路音视频都需要同步,否则无法做到“唇音同步”的效果,影响沟通的流畅性。传统的音视频同步技术是将音视频包各标记一个时间戳,在播放时根据该时间戳来进行同步。这种方式只能工作于一路音频和一路视频的情况,在多路音频和多路视频的情况下无法正常工作,不能满足视频会议这类多人沟通应用对多路音视频同时进行同步的要求。

发明内容

[0003] 本发明的目的是针对现有技术的不足,提供了一种基于音频播放驱动的多路视频同步方法。
[0004] 本发明方法的具体步骤为:
[0005] 步骤(1).每个用户分别获取各自的音视频数据并将音频和视频各自压缩;将采集的音频数据以10~120毫秒为单位分割成音频数据单元,将每个音频数据单元压缩成音频压缩包,每个音频压缩包标记采集时刻的客户端机器时间戳;将视频数据中的每一帧压缩成视频压缩包,每个视频压缩包标记采集时刻的客户端机器时间戳;将每个音频压缩包和每个视频压缩包发送给服务器;
[0006] 每个用户分别获取各自的音视频数据的方法包括通过设备采集和从媒体文件中获取;如通过设备采集,则所述的时间戳为采集的时刻;如从媒体文件中获取,媒体文件播放或解压组件会为数据设置时间戳,该时间戳为相对媒体文件开始的时刻,转换为以当前计算机时刻为标准的时间戳。
[0007] 步骤(2).服务器将接收到的每个用户的音频压缩包解压后混音,然后在混音结果中记录所有参与混音的音频压缩包对应的时间戳,压缩成混音压缩包,发送给客户端;视频压缩包直接发送给客户端。
[0008] N个用户U1~UN,每个用户有一路音频,共有N路音频A1~AN;服务器需要混音出N+1路音频,分别是:
[0009] 第0路.包含了所有音频,记为M0、
[0010] 第1路.除A1外其他所有音频,记为M1、
[0011] 第2路.除A2外其他所有音频,记为M2、
[0012] 以此类推,
[0013] 第N路.除AN外其他所有音频,记为MN。
[0014] 生成的每路音频都需要将其对应的N或N-1路源音频的时间戳写入这路音频中,该音频中将会有N或N-1个时间戳,以及这些时间戳所对应的源音频。
[0015] 生成这N+1路音频后,将M0发送给所有没有发送音频的用户,M1发送给U1,M2发送给U2,以此类推,发送给每个用户的音频内容都不包含该用户的音频。
[0016] 步骤(3).每个客户端接收到混音压缩包和视频压缩包后,将混音压缩包解压后顺序播放,然后根据音频驱动视频的原则,显示对应视频压缩包中的视频帧。
[0017] 每个客户端接收到的内容为一路混音压缩包和服务器转发的N路视频压缩包;播放时通过音频驱动视频进行,即每播放一个音频压缩包,记录该音频压缩包中包含的所有时间戳(U,A)…;播放X用户的视频时,取出该路视频待播放的一帧对应的视频时间戳(UX,VX),同时取出最近播放过的音频帧的同一用户的时间戳(UX,AX),对VX和AX进行比较,若VX大于等于AX,则表示视频内容已经在音频内容之后了,可以播放,而若VX小于AX,根据音频驱动视频原则,表示这个视频帧还没有到播放的时刻,因此需要等待下一次的播放判断来决定是否可以播放。
[0018] 本发明方法以音频时间戳为纽带,将多路视频与音频同步,达到所有视频均能够与音频“唇音同步”的效果。本发明方法中音频在服务器混音时,并不使用单一的时间戳来标记一个音频混音压缩包,而是将参与这个音频混音压缩包的多路音频的时间戳都保存起来,作为音频混音压缩包的时间戳,这样就完整地保存了所有音频和视频之间的同步关系。

具体实施方式

[0019] 一种多路音视频同时播放时处理音视频同步的方法,具体步骤为:
[0020] 步骤(1).每个用户分别获取各自的音视频数据并将音频和视频各自压缩;将采集的音频数据以10~120毫秒为单位分割成音频数据单元,将每个音频数据单元压缩成音频压缩包,每个音频压缩包标记采集时刻的客户端机器时间戳;将视频数据中的每一帧压缩成视频压缩包,每个视频压缩包标记采集时刻的客户端机器时间戳;将每个音频压缩包和每个视频压缩包发送给服务器。
[0021] 每个用户分别获取各自的音视频数据的方法包括通过设备采集和从媒体文件中获取;如通过设备采集,则所述的时间戳为采集的时刻;如从媒体文件中获取,媒体文件播放或解压组件会为数据设置时间戳,该时间戳为相对媒体文件开始的时刻,转换为以当前计算机时刻为标准的时间戳。
[0022] 视频处理则是将输入的视频以帧为单位,使用视频编码器压缩后,根据网络情况,切割成适宜传输的大小(一般为400~1400个字节),和该视频帧的时间戳一起发送给服务器。为方便接收端排序以及判断是否在传输过程中有丢包现象,音视频包均带有序列号。序列号为2字节递增,超过最大值后从0重新开始。为提高带宽较差时的用户体验,音视频数据使用不同的连接来发送,这样当带宽不够时,音频连接由于数据相对视频连接比较少,容易得到保障。而我们交互的主要手段是通过音频,视频一般来说是辅助手段,这样做可以让音频比较流畅,减少对用户的影响。
[0023] 步骤(2).服务器将接收到的每个用户的音频压缩包解压后混音,然后在混音结果中记录所有参与混音的音频压缩包对应的时间戳,压缩成混音压缩包,发送给客户端;视频压缩包直接发送给客户端。