媒体流切换同步方法和流媒体服务器的制作方法

文档序号:7714460阅读:249来源:国知局
专利名称:媒体流切换同步方法和流媒体服务器的制作方法
技术领域
本发明涉及通信技术领域,具体涉及媒体流切换同步方法和流媒体服务器。
背景技术
实时传输协议(Realtime Transport Protocol, RTP)是针对互联网(Internet) 上多媒体数据流的一个传输协议。RTP被定义为在一对一或一对多的传输情况下工作,其 目的是提供时间信息和实现流同步。RTP本身只保证实时数据的传输,并不能为按顺序传 送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠实时传输控制协议 (Real-time Control Protocol, RTCP)提供服务。RTCP协议负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期 间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数 量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类 型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传 送网上的实时数据。RTP包中,包序列号和时间戳的初始值都是随机的,时间戳只是反映了第一个字节 的采样时间。不同媒体流的RTP时间戳可能以不同的速率增长,而且会有独立的随机偏移 量。因此,但直接比较不同的媒体流的时间戳并不能进行同步。RTCP的一个关键作用就是能让接收方同步多个RTP流,例如当音频与视频一起 传输的时候,由于编码的不同,RTP使用两个流分别进行传输,这样两个流的时间戳以不同 的速率运行,接收方必须同步两个流,以保证声音与影像的一致。为能进行流同步,在传递 的发送者报告中含有一个以网络时间协议NTP (Network Time Protocol)格式表示的绝对 时间值,接着发送者报告(Sender Report, SR)中给出一个RTP时间戳(timestamp)值,产 生该值的时钟就是产生RTP分组中的时间戳字段的那个时钟。发送者报告为RTCP数据包, 符合RTCP协议标准,由于发送方发出的所有流和发送方报告都使用同一个绝对时钟(NTP 时钟),接收方就可以比较来自同一数据源的两个流的绝对时间,从而确定如何将一个流中 的时间戳值映射为另一个流中的时间戳值。

发明内容
本发明实施例提供媒体流切换同步方法和流媒体服务器,可以在NTP不同源的情 况下,实现媒体流的同步切换。本发明实施例提供的一种媒体流切换同步方法,包括流媒体服务器接收媒体流的发送者报告包;流媒体服务器记录收到所述发送者报告包时的系统时间,并依据所述记录的系统 时间修改所述发送者报告包包的网络校时协议网络校时协议时间戳;当进行媒体流切换时,根据媒体流的发送者报告包中的网络校时协议时间戳进行 同步切换。
本发明实施例提供的一种媒体流切换同步方法,包括流媒体服务器接收媒体流的实时传输协议包;流媒体服务器根据实时传输协议到达时的系统时间戳替换实时传输协议包中的 实时传输协议时间戳;所述系统时间戳按照系统时间生成,每个单位时间生成唯一的系统 时间戳;当进行媒体流切换时,根据媒体流的实时传输协议包中的系统时间戳的进行同步 切换。本发明实施例提供的一种流媒体服务器,包括数据包接收单元,用于接收媒体流的发送者报告包;时间戳修改单元,用于记录收到所述实时传输控制协议包时的系统时间,并依据 所述记录的系统时间修改所述发送者报告包的网络校时协议网络校时协议时间戳;切换控制单元,用于在进行媒体流切换时,根据媒体流的发送者报告包中的网络 校时协议时间戳进行同步切换。本发明实施例提供的一种流媒体服务器,包括接收单元,用于接收媒体流的实时传输协议包;时间戳替换单元,用于根据实时传输协议到达时的系统时间戳替换实时传输协议 包中的实时传输协议时间戳;所述系统时间戳按照系统时间生成,每个单位时间生成唯一 的系统时间戳;切换控制单元,用于根据媒体流的实时传输协议包中的系统时间戳的进行同步切换。本发明实施例中,对流媒体数据包进行修改,采用将流媒体服务器的系统时间替换 NTP时间戳,完成多个媒体流的NTP时间戳从不同源到同源的转换,或者直接根据流媒体服务 器的系统时间对收到的多个媒体流的RTP时间戳进行绝对统一校准,以此实现媒体切换的同 步。解决了现有技术中不同NTP时钟的媒体流无法切换的问题,提高了用户的业务体验。


为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。图1是本发明一实施例媒体流切换同步方法的流程图;图2是本发明实施例媒体流同步切换的流程图;图3是本发明另一实施例媒体流切换同步方法的流程图;图4是本发明一实施例流媒体服务器的结构示意图;图5是本发明实施例流媒体服务器的切换控制单元的结构示意图;图6是本发明另一实施例流媒体服务器的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明实施例,基于本发明中的实施例,本领域普 通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的 范围。由于基于NTP时钟机制进行的媒体流的同步,需要保证切换的两个媒体流采用同 一个NTP时钟,否则将无法完成媒体流之间的切换,但是在实际应用中,有时很难保证所有 媒体流之间的NTP时钟同源,经常无法进行同步切换或切换出错。针对于此,本发明提出了 解决方案。本发明提供一种媒体流切换同步方法实施例,流程图如图1所示,包括Al,流媒体服务器接收媒体流的SR包;A2,流媒体服务器记录收到SR包时的系统时间,并依据记录的系统时间修改SR包 的网络校时协议NTP时间戳;A3,当进行媒体流切换时,根据媒体流的SR包中的NTP时间戳进行同步切换。本发明实施例中,对流媒体数据包进行修改,采用将流媒体服务器的系统时间替 换NTP时间戳,完成多个媒体流的NTP时间戳从不同源到同源的转换,以此实现媒体切换的 同步。解决了现有技术中不同NTP时钟的媒体流无法切换的问题,提高了用户的业务体验。本发明实施例中,根据媒体流的实时传输控制协议包中的NTP时间戳进行同步切 换的方式可以参照现有技术的常规实现方式,为使得切换后媒体流的获得时间戳更加准 确,本发明提供一种可行的切换方式,具体参见图2所示,包括Bi,进行媒体流切换时,流媒体服务器根据切换前媒体流最后一个实时传输协议 RTP包中的RTP时间戳以及切换前媒体流的SR包中NTP时间戳和切换后的媒体流的SR包 中的NTP时间戳,重新计算切换后媒体流第一个RTP包中的RTP时间戳。具体的重新计算切换后媒体流的RTCP包中的RTP时间戳的过程包括切换后的媒体流第一个RTP包的RTP时间戳=(切换后的媒体流的SR包的NTP 时间戳-切换前媒体流的SR包的NTP时间戳)X切换前媒体流的采样率+切换前媒体流 的SR包的RTP时间戳。当得到切换后的媒体流的第一个RTP包时间戳之后,则可以第一个RTP包中的RTP 时间戳,为切换后的媒体流后续的数据包重新生成RTP时间戳。这里的切换后的媒体流的 第一个RTP包是指媒体切换后发送给用户的第一个RTP包。B2,将时间戳计算单元计算得到的切换后媒体流的RTP时间戳加入到切换后的媒 体流的RTP包中发送给用户。可以理解,在本发明实施例中,计算得到的RTP时间戳还可以根据用户的反馈进 行调整用户定期进行时延反馈,当接收用户的时延反馈,根据用户的时延反馈调整发送 RTP包的RTP时间戳的值,这样则可以通过对时间戳进行的提前量调整,来消除用户侧的延迟。条件假设下面结合具体应用对本发明实施例的方法进行描述,本例中,切换前后的两个频 道的媒体流在媒体格式、采样率、分辩率均保持一致。可以理解,以下技术细节均为本申请 实现过程中的具体实例,不构成对本发明的限制。本例中,基于常用的流媒体服务器的系统时间的精确程度很可能无法达到对每一个数据包精确计时的要求,因此本例中采用系统时间+实时时钟(Real-Time Clock, RTC) 时钟的模式进行计时。当服务器启动时,读取当前系统时间并将此作为基准时间,服务器采 用Iinux系统自带的高精度RTC时钟来计算所流逝的时间,将流逝的时间再加上基准时间, 便得到一个当前时间,后续采样时均取当前的RTC时间。在上述高精度时钟机制存在的前提下,建立基于RTC机制的RTP时间戳偏差校正 模型。利用从各个轨道接收到的SR包中提取当前RTC时钟信息,替换原来的NTP时钟信息, 作为该SR包的NTP时间戳,频道切换后,就可以根据当前新的NTP时钟信息将原本不相关 的两个轨道的时间戳具备连续性。模型具体的推算过程如下对于该轨道每一个RTP包,在发送之前根据轨道的采样率,轨道最近收到的SR的 时间戳、RTC时间戳,RTP本身的时间戳,轨道最近发送的RTP的时间戳等信息,计算出RTC 时间值(单位秒),计算公式如下Nn = Nsec+Nfrac/X+(tsr-TS)/t 公式(1)该轨道前后两个包的RTC时间差值Δ N(单位秒),计算公式如下Δ N = Νη+1-Νη公式 O)该轨道当前发送RTP包的纠正后的时间戳Um,计算公式如下tsm = (ANXt)+tsc 公式(3)该轨道当前发送RTP包的纠正后的包序列号seqm,计算公式如下seqm = seqc+l公式该轨道当前发送RTP包的payload type需保持跟轨道最初的负载类型(payload type) 一致。ptm = pt公式(5)对于该轨道每一个SR包,由于其RTC时间戳是可以保证正确的,那么只需纠正时 间戳。在发送之前需根据轨道的采样率,以轨道最近发送的SR包的时间戳、RTC时间戳、当 前发送SR的RTC时间戳信息,重新纠正SR包的时间戳(单位秒),计算公式如下TSffl= (nsec+nfrac/X- (nsec_c+nfrac_c/X)) /t+TSc 公式(6)综合公式(1) (2) (3) (4) (5) (6),可得音视频同步目标函数如下目标函数ptm = pt公式(7)seqm = seq。+l公式(8)tsm = (Nn+1-Nn) Xt+tsc 公式(9)TSffl= (nsec+nfrac/X- (nsec_c+nfrac_c/X)) /t+TSc 公式(10)约束条件η 彡 0,η e 1,2,· ·,Ntsrc Φ tsr以上公式的中的参量定义如下TS 媒体轨最近的RTCP包的时间戳(timestamp)。TSffl 媒体轨发送的RTCP包经过纠正后的时间戳。X NTP时间戳的整除因子,例如OxFFFFFFFF。Nsec 媒体轨最近收到的SR包的RTC时间戳的整数部分(单位秒)。Nfrac 媒体轨最近收到的SR包的RTC时间戳的小数部分(单位1/X秒)。t 轨道的采样率时标(time scale)。
seqr 当前 RTP 包的原始序列号(sequence number)。seqm 当前 RTP 包校正后的 sequence number。tsr 当前 RTP 包的原始 timestamp。tsm 当前 RTP 包校正后的 timestamp。nsec 当前SR包的RTC时间戳的整数部分(单位秒)。nfrac 当前SR包的RTC时间戳的小数部分(单位1/X秒)。pt 频道最初的 payload type。ptm 当前 RTP 包校正后的 payload type。Nn 媒体轨序号为η的RTP包的RTC时间(单位秒)。Δ N 媒体轨前后两个RTP包的RTC时间绝对差(单位秒)。seqc 轨道最近发送的RTP包的sequence。tsc 轨道最近发送的RTP包的timestamp。tsrc 轨道最近发送的RTP包的原始timestamp。TSc 轨道最近发送的SR包的timestamp。nse。_。轨道最近发送的SR包的RTC时间戳的整数部分(单位秒)。nfrac_c 轨道最近发送的SR包的RTC时间戳的小数部分(单位1/X秒)。本发明提供另一种媒体流切换同步方法实施例,流程图如图3所示,包括Cl,流媒体服务器接收媒体流的RTP包;C2,流媒体服务器根据RTP到达时的系统时间戳替换RTP包中的RTP时间戳;系统 时间戳按照系统时间生成,每个单位时间生成唯一的系统时间戳;C3,当进行媒体流切换时,根据媒体流的RTP包中的系统时间戳的进行同步切换。本发明上述实施例均使用流媒体服务器的本地系统时间作为参考点重新建立参 考时间轴,而本实施例则是根据参考时间轴重新对收到的RTP数据包重新生成系统时间戳 作为RTP时间戳,生成的时间戳以参考时间轴为基准,在流媒体服务器系统时间的同一单 位(单位时间与系统时间的时间精度相关如如毫秒)收到的多个数据包,生成的时间戳 数值相等,那么在进行媒体流切换时,则无需进行RTP时间戳转换,实现了媒体流的同步切 换。下面对本发明提供的流媒体服务器进行详细描述。为了便于说明,仅示出了与本 发明实施例相关的部分,该终端设备可以是手机或数据卡或类似的终端,其包含的功能模 块/单元可以是硬件模块/单元、软件模块/单元或软硬件相结合的模块/单元。本发明提供一种流媒体服务器实施例,结构示意图如图4所示,包括数据包接收单元410,用于接收媒体流的SR包;时间戳修改单元420,用于记录收到实时传输控制协议包时的系统时间,并依据记 录的系统时间修改数据包接收单元收到的SR包的网络校时协议NTP时间戳;切换控制单元430,用于在进行媒体流切换时,根据媒体流的SR包中的NTP时间戳 进行同步切换。如图5所示,本实施例中,切换控制单元430可以包括时间戳生成单元431,根据切换前媒体流最后一个实时传输协议RTP包中的RTP时 间戳以及切换前媒体流的SR包中NTP时间戳和切换后的媒体流的SR包中的NTP时间戳,重新计算生成切换后媒体流第一个RTP包中的RTP时间戳;发送单元432,用于将时间戳计算单元计算得到的切换后媒体流的RTP时间戳加 入到切换后的媒体流的RTP包中发送给用户。所述时间戳生成单元431还可以用于根据重新计算得到的切换后媒体流第一个 RTP包中的RTP时间戳,为切换后的媒体流后续的数据包重新生成RTP时间戳,并接收用户 的时延反馈,根据用户的时延反馈调整发送RTP包的RTP时间戳的值。本发明提供另一种流媒体服务器实施例,结构示意图如图6所示,包括接收单元610,用于接收媒体流的RTP包;时间戳替换单元620,用于根据RTP到达时的系统时间戳替换RTP包中的RTP时间 戳;系统时间戳按照系统时间生成,每个单位时间生成唯一的系统时间戳;切换控制单元630,用于根据媒体流的RTP包中的系统时间戳的进行同步切换。上述本发明装置实施例可以运行的方法参照上述方法实施例的描述,此处不再赘 述。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通 过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该 程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括只读存储器 (Read-Only Memory, ROM)、随机存取器(Random Access Memory, RAM)、磁碟或者光盘等各 种可以存储程序代码的介质。以上对本发明实施例所提供的媒体流切换同步方法和流媒体服务器进行了详细 介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明 只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本 发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应 理解为对本发明的限制。
权利要求
1.一种媒体流切换同步方法,其特征在于,包括流媒体服务器接收媒体流的发送者报告包;流媒体服务器记录收到所述发送者报告包时的系统时间,并依据所述记录的系统时间 修改所述发送者报告包包的网络校时协议网络校时协议时间戳;当进行媒体流切换时,根据媒体流的发送者报告包中的网络校时协议时间戳进行同步 切换。
2.如权利要求1所述的方法,其特征在于,所述根据媒体流的发送者报告包中的网络 校时协议时间戳进行同步切换包括进行媒体流切换时,流媒体服务器根据切换前媒体流最后一个实时传输协议包中的实 时传输协议时间戳以及切换前媒体流的发送者报告包中网络校时协议时间戳和切换后的 媒体流的发送者报告包中的网络校时协议时间戳,重新计算切换后媒体流第一个实时传输 协议包中的实时传输协议时间戳;将时间戳计算单元计算得到的切换后媒体流的实时传输协议时间戳加入到切换后的 媒体流的实时传输协议包中发送给用户。
3.如权利要求2所述的方法,其特征在于,所述重新计算切换后媒体流第一个实时传 输协议包中的实时传输协议时间戳之后包括根据所述重新计算得到的切换后媒体流第一个实时传输协议包中的实时传输协议时 间戳,为切换后的媒体流后续的数据包重新生成实时传输协议时间戳。
4.如权利要求1至3任意一项所述的方法,其特征在于,接收用户的时延反馈,根据所 述用户的时延反馈调整发送实时传输协议包的实时传输协议时间戳的值。
5.一种媒体流切换同步方法,其特征在于,包括流媒体服务器接收媒体流的实时传输协议包;流媒体服务器根据实时传输协议到达时的系统时间戳替换实时传输协议包中的实时 传输协议时间戳;所述系统时间戳按照系统时间生成,每个单位时间生成唯一的系统时间 戳;当进行媒体流切换时,根据媒体流的实时传输协议包中的系统时间戳的进行同步切换。
6.一种流媒体服务器,其特征在于,包括数据包接收单元,用于接收媒体流的发送者报告包;时间戳修改单元,用于记录收到所述实时传输控制协议包时的系统时间,并依据所述 记录的系统时间修改所述发送者报告包的网络校时协议网络校时协议时间戳;切换控制单元,用于在进行媒体流切换时,根据媒体流的发送者报告包中的网络校时 协议时间戳进行同步切换。
7.如权利要求6所述的流媒体服务器,其特征在于,所述切换控制单元包括时间戳计算单元,根据切换前媒体流最后一个实时传输协议实时传输协议包中的实时 传输协议时间戳以及切换前媒体流的发送者报告包中网络校时协议时间戳和切换后的媒 体流的发送者报告包中的网络校时协议时间戳,重新计算切换后媒体流第一个实时传输协 议包中的实时传输协议时间戳;发送单元,用于将时间戳计算单元计算得到的切换后媒体流的实时传输协议时间戳加入到切换后的媒体流的实时传输协议包中发送给用户。
8.如权利要求7所述的方法,其特征在于,所述时间戳计算单元还用于根据所述重新 计算得到的切换后媒体流第一个实时传输协议包中的实时传输协议时间戳,为切换后的媒 体流后续的数据包重新生成实时传输协议时间戳。
9.如权利要求6至8任意一项所述的流媒体服务器,其特征在于,所述时间戳计算单元 还用于接收用户的时延反馈,根据所述用户的时延反馈调整发送实时传输协议包的实时传 输协议时间戳的值。
10.一种流媒体服务器,其特征在于,包括接收单元,用于接收媒体流的实时传输协议包;时间戳替换单元,用于根据实时传输协议到达时的系统时间戳替换实时传输协议包中 的实时传输协议时间戳;所述系统时间戳按照系统时间生成,每个单位时间生成唯一的系 统时间戳;切换控制单元,用于根据媒体流的实时传输协议包中的系统时间戳的进行同步切换。
全文摘要
本发明公开了媒体流切换同步方法和流媒体服务器。本发明实施例中,对流媒体数据包进行修改,采用将流媒体服务器的系统时间替换NTP时间戳,完成多个媒体流的NTP时间戳从不同源到同源的转换,或者直接根据流媒体服务器的系统时间对收到的多个媒体流的RTP时间戳进行绝对统一校准,以此实现媒体切换的同步。解决了现有技术中不同NTP时钟的媒体流无法切换的问题,提高了用户的业务体验。
文档编号H04L1/16GK102065060SQ20091018019
公开日2011年5月18日 申请日期2009年11月16日 优先权日2009年11月16日
发明者仇刚, 刘启铭 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1