一种多个媒体流同步的方法、装置及系统制造方法及图纸

技术编号:7580325 阅读:188 留言:0更新日期:2012-07-19 06:06
本发明专利技术提供了一种多个媒体流同步的方法、装置及系统,该方法包括:发送端在将多个媒体流封装为实时传送协议RTP数据包时,使用初始值相同、精度相同的时钟时间为RTP数据包打时间戳。该方法能够克服现有技术中多媒体流之间的同步稍嫌复杂的问题,进而降低客户端同步音视频的处理负荷和降低对实时控制协议RTCP的依赖。

【技术实现步骤摘要】
一种多个媒体流同步的方法、装置及系统
本专利技术涉及多媒体领域,特别是一种多个媒体流同步的方法、装置及系统。
技术介绍
在采用实时传送协议(Real-timeTransportProtocol,简称RTP)进行媒体传输和媒体控制传输中,媒体分组包中携带有媒体的RTP时间戳(timestamp),如图1所示。该时间戳(32比特)反映了RTP数据包中第一个字节的采样时间。时钟频率依赖于负载数据格式,并在描述文件(profile)中进行描述。也可以通过RTP方法对负载格式动态描述。如果RTP包是周期性产生的,那么将使用由采样时钟决定的名义上的采样时刻,而不是读取系统时间。例如,对一个固定速率的音频,采样时钟将在每个周期内增加1。如果一个音频从输入设备中读取含有160个采样周期的块,那么对每个块,时间戳的值增加160。时间戳的初始值应当是随机的。几个连续的RTP包如果是同时产生的。如:属于同一个视频帧的RTP包,将有相同的时间戳。不同媒体流的RTP时间戳可能以不同的速率增长。而且会有独立的随机偏移量。因此,虽然这些时间戳足以重构一个单独的流的时间,但直接比较不同的媒体流的时间戳不能进行同步。对于每一个媒体,我们可以把与采样时刻相关联的RTP时间戳与来自于参考时钟上的时间戳,例如采用网络时间协议(NTP)的时间戳相关联。NTP时间戳解决了RTP时间戳有随机偏移量的问题。参考时钟用于同步所有媒体的共同时间。这一时间戳对(RTP时间戳和NTP时间戳),用于判断RTP时间戳和NTP时间戳的对应关系,以进行媒体流的同步。它们不是在每一个数据包中都被发送,而在发送速率更低的实时控制协议(RTCP)的SR(发送者报告)中。基于上述RTP同步机制,可以看出RTP的多个媒体流之间的同步是比较麻烦的。首先RTP本身所带的时戳并不具备时间同步的功能,它要依赖RTCP发送报告中携带的绝对时间(NTP时间戳)和对应的RTP时戳进行一个关联映射,才能得到各个媒体流的时间相关性。
技术实现思路
本专利技术要解决的技术问题是,提供一种多个媒体流同步的方法、装置及系统,通过在RFC3550定义的RTP头的基础上进行改进来解决当前RTP协议定义的时戳不能够独立承担进行多个媒体流同步的任务。为了解决上述技术问题,本专利技术提出一种多个媒体流同步的方法,包括:发送端在将多个媒体流封装为实时传送协议RTP数据包时,使用初始值相同、精度相同的时钟时间为RTP数据包打时间戳;所述发送端为RTP数据包打时间戳包括:所述发送端分别为所述各媒体流维护一初始值相同的数据时长信息,并根据所述各媒体流被封装的数据时长,更新所述各媒体流的数据时长信息;所述发送端在为一媒体流打时间戳时,将时间戳的值设置为所述时钟时间的初始值与该更新的各媒体流的数据时长信息之和。进一步地,上述方法还可具有以下特点:接收端在接收到所述RTP数据包后,解码出所述多个媒体流的数据,并根据所述RTP数据包中的时间戳对所述多个媒体流的数据进行同步处理。进一步地,上述方法还可具有以下特点:所述多个媒体流为视频流和/或音频流。为了解决上述技术问题,本专利技术还提出一种多个媒体流同步的发送装置,包括:打时间戳模块,用于在将多个媒体流封装为实时传送协议RTP数据包时,使用初始值相同、精度相同的时钟时间为RTP数据包打时间戳;所述打时间戳模块包括第一运算模块和第二运算模块,其中:所述第一运算模块,用于分别为所述各媒体流维护一初始值相同的数据时长信息,并根据所述各媒体流被封装的数据时长,更新所述各媒体流的数据时长信息;所述第二运算模块,用于在为一媒体流打时间戳时,将时间戳的值设置为所述时钟时间的初始值与该更新的各媒体流的数据时长信息之和;发送模块,用于将打上所述时间戳的RTP数据包发送出去。进一步地,上述装置还可具有以下特点:所述多个媒体流为视频流和/或音频流。为了解决上述技术问题,本专利技术还提出一种多个媒体流同步的系统,包括:发送端,在将多个媒体流封装为实时传送协议RTP数据包时,使用初始值相同、精度相同的时钟时间为RTP数据包打时间戳;所述发送端为RTP数据包打时间戳包括:所述发送端分别为所述各媒体流维护一初始值相同的数据时长信息,并根据所述各媒体流被封装的数据时长,更新所述各媒体流的数据时长信息;所述发送端在为一媒体流打时间戳时,将时间戳的值设置为所述时钟时间的初始值与该更新的各媒体流的数据时长信息之和;接收端,在接收到所述RTP数据包后,解码出所述多个媒体流的数据,并根据所述RTP数据包中的时间戳对所述多个媒体流的数据进行同步处理。本专利技术提供的一种多个媒体流同步的方法、装置及系统,能够克服现有技术中多媒体流之间的同步稍嫌复杂的问题,进而降低客户端同步音视频的处理负荷和降低对RTCP的依赖。附图说明图1为RFC3550定义的RTP头的前12个字节的示意图;图2为本专利技术实施例定义的RTP头的前12个字节;图3为本专利技术实施例发送端为RTP数据包打时间戳的方法流程图;图4为本专利技术实施例发送装置方框图;图5为本专利技术实施例接收装置方框图;图6为本专利技术应用实例生成NTP时戳的RTP打包的流程图;图7为本专利技术应用实例使用NTP时戳进行同步的客户端处理的流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本专利技术进行详细描述。本专利技术实施例巧妙地在RFC3550定义的RTP头的基础上进行的一种改进来解决当前RTP协议定义的时戳不能够独立承担进行多个媒体流同步的任务。如图1是RFC3550定义的标准的RTP头。图2为本实施例一定义的RTP头,对timestamp字段的计算方式重新定义。即,在打时间戳时,巧妙地提出使用初始值相同、精度相同(即具有相同的步进,度量的基准相同)的时钟时间为RTP数据包打时间戳的方案。从而实现了各媒体流的时间戳运算时采用同一基准、同一度量单位。相应地,接收端在接收到所述RTP数据包后,解码出所述多个媒体流的数据后,根据对封装各媒体流的RTP数据包中的时间戳进行简单比较即可实现对所述多个媒体流的数据进行同步处理。较佳地,所述发送端为RTP数据包打时间戳可以包括图3所示步骤:步骤S301:所述发送端分别为所述各媒体流维护一初始值相同的数据时长信息,并根据所述各媒体流被封装的数据时长,更新所述各媒体流的数据时长信息;步骤S302:所述发送端在为一媒体流打时间戳时,将时间戳的值设置为所述时钟时间的初始值与该媒体流的数据时长信息之和。较佳地,所述多个媒体流为视频流和/或音频流:所述发送端在为视频流的RTP包打时间戳的时机为:所述发送端在从视频流获取视频帧打成RTP包后,为该RTP包打时间戳。所述发送端在为音频流的RTP包打时间戳的时机为:所述发送端在从音频流获取音频帧打成RTP包后,且该音频帧为所述RTP包中的首个帧时,才为该RTP包打时间戳。为了实现上述方法,本专利技术实施例还提供了一种多个媒体流同步的发送装置,如图4所示,包括:打时间戳模块,用于在将多个媒体流封装为实时传送协议RTP数据包时,使用初始值相同、精度相同的时钟时间为RTP数据包打时间戳;发送模块,用于将打上所述时间戳的RTP数据包发送出去。其中,所述打时间戳模块包括第一运算模块和第二运算模块,其中:所述第一运本文档来自技高网
...
一种多个媒体流同步的方法、装置及系统

【技术保护点】

【技术特征摘要】
1.一种多个媒体流同步的方法,其特征在于,包括:发送端在将多个媒体流封装为实时传送协议RTP数据包时,使用初始值相同、精度相同的时钟时间为RTP数据包打时间戳;所述发送端为RTP数据包打时间戳包括:所述发送端分别为所述各媒体流维护一初始值相同的数据时长信息,并根据所述各媒体流被封装的数据时长,更新所述各媒体流的数据时长信息;所述发送端在为一媒体流打时间戳时,将时间戳的值设置为所述时钟时间的初始值与更新的该媒体流的数据时长信息之和。2.如权利要求1所述的方法,其特征在于:接收端在接收到所述RTP数据包后,解码出所述多个媒体流的数据,并根据所述RTP数据包中的时间戳对所述多个媒体流的数据进行同步处理。3.如权利要求1所述的方法,其特征在于:所述多个媒体流为视频流和/或音频流。4.一种多个媒体流同步的发送装置,其特征在于,包括:打时间戳模块,用于在将多个媒体流封装为实时传送协议RTP数据包时,使用初始值相同、精度相同的时钟时间为RTP数据包打时间戳;所述打时间戳模块包括第一运算模块和第二运算模块,其中:所述第一运算模块,用于分...

【专利技术属性】
技术研发人员:赵宇孙健阮亚平刘继年陈光亮
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术