一种实时传输协议系统的时间戳生成方法及装置制造方法及图纸

技术编号:15226247 阅读:125 留言:0更新日期:2017-04-27 05:46
本申请的实时传输协议系统的时间戳生成方法及装置,当系统时间没有被修改时,计算本次与上次时间取值的时间差,将时间差累加到上次的时间输出值上作为本次的时间输出值。如果时间有跳变,则不再计算时间差,用上次的时间差,累加到上次的时间输出值上作为本次的时间输出值。最后将当前数据帧的时间输出值与数据的采样率相乘,得到当前数据帧的时间戳,解决了因系统时间被修改而造成的时间戳跟着跳变的问题,减少时间戳的生成错误。

【技术实现步骤摘要】

本申请涉及领域,尤其涉及一种实时传输协议系统的时间戳生成方法及装置
技术介绍
时间戳反映了RTP分组中的数据的第一个字节的采样时刻。在一次会话开始时的时间戳初值也是随机选择的。即使是没有信号发送时,时间戳的数值也要随时间不断的增加。接收端使用时间戳可准确知道应当在什么时间还原哪一个数据块,从而消除传输中的抖动。时间戳还可用来使视频应用中声音和图像同步。现有技术中,时间戳一般取法有两种。第一种取法:随机生成视频流初始帧的时间戳,记为T0,根据帧率和视频采样率计算时间戳增量。例如:视频采样率为90000,帧率为25,RTP时间戳单位为1/90000,每帧的时间间隔为0.04秒,RTP时间戳增量=90000×0.04=3600,记为Delta=3600,之后,对每一帧i(i为大于0的自然数),对应的时间戳Ti=Ti-1+Delta。第二种取法:在视频编码器编出一帧数据时,通过系统函数,取到当前时间相对1970年1月1日的时间差,记为D0,单位是秒;将这个取值转换成RTP时间戳。例如:视频采样率为90000,RTP时间戳单位为1/90000,则RTP时间戳T0=D0×90000,之后每一帧的时间戳都按上述方法循环取得,即:Ti=Di×90000。上述两种取法存在如下问题:第一种取法属于理想取法,在实际应用中,视频编码器并不能保证每帧视频数据编出来所用的时间是固定0.04秒,所以实际的Delta取值是会随之变动的,如果Delta固定取3600,应用时间长了会有误差累计,而且误差会越来越大,最后导致客户端接收视频流后解码出现异常而断流。第二种取法是在实际应用中使用较多的取法,是实际取了每帧数据编码出来所对应的实际时间(相对1970年1月1日的时间差),不会有误差累计,但是这种取法存在的问题是:在系统时间被改变时,取到的时间戳也会跟着跳变,会造成客户端接收视频流后解码出现异常而断流。综上,现有技术中还没有一种较好的时间戳生成方法,能够解决因系统时间被修改而造成的时间戳跟着跳变的问题。
技术实现思路
本申请提供一种实时传输协议系统的时间戳生成方法及装置,可以解决因系统时间被修改而造成的时间戳跟着跳变的问题,减少时间戳的生成错误。根据本申请的第一方面,本申请提供一种实时传输协议系统的时间戳生成方法,包括:获取当前数据帧的时间取值以及所述当前数据帧的前一数据帧的时间取值;分别计算所述当前数据帧的时间取值与预设时间的第一差值Di以及所述当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di-1;根据所述第一差值和所述第二差值之间的差值大小的绝对值|Di–Di-1|判断系统时间是否发生跳变;若否,则将Di-Di-1作为第一备用差值Delta,将所述第一备用差值Delta与前一数据帧的时间输出值Outi-1相加,得到当前数据帧的时间输出值Outi;若是,则获取所述前一数据帧的前一数据帧,作为第三数据帧,分别获取所述前一数据帧的时间取值与所述第三数据帧的时间取值;分别计算所述当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di-1以及所述第三数据帧的时间取值与预设时间的第三差值Di-2;将Di-1-Di-2作为第二备用差值Delta',将所述第二备用差值Delta'与前一数据帧的时间输出值Outi-1相加,得到当前数据帧的时间输出值Outi;将所述当前数据帧的时间输出值Outi与数据的采样率相乘,得到当前数据帧的时间戳。根据本申请的第二方面,本申请提供一种实时传输协议系统的时间戳生成装置,包括:获取单元,用于获取当前数据帧的时间取值以及所述当前数据帧的前一数据帧的时间取值;第一差值计算单元,用于分别计算所述当前数据帧的时间取值与预设时间的第一差值Di以及所述当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di-1;绝对值大小判断单元,用于根据所述第一差值和所述第二差值之间的差值大小的绝对值|Di–Di-1|判断系统时间是否发生跳变;第一时间输出值计算单元,用于在所述绝对值大小判断单元的判断结果为否时,将Di-Di-1作为第一备用差值Delta,将所述第一备用差值Delta与前一数据帧的时间输出值Outi-1相加,得到当前数据帧的时间输出值Outi;时间取值单元,用于在所述绝对值大小判断单元的判断结果为是时,获取所述前一数据帧的前一数据帧,作为第三数据帧,分别获取所述前一数据帧的时间取值与所述第三数据帧的时间取值;第二差值计算单元,用于分别计算所述当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di-1以及所述第三数据帧的时间取值与预设时间的第三差值Di-2;第二时间输出值计算单元,用于将Di-1-Di-2作为第二备用差值Delta',将所述第二备用差值Delta'与前一数据帧的时间输出值Outi-1相加,得到当前数据帧的时间输出值Outi;时间戳生成单元,用于将所述当前数据帧的时间输出值Outi与数据的采样率相乘,得到当前数据帧的时间戳。本申请的实时传输协议系统的时间戳生成方法及装置,获取当前数据帧的时间取值以及当前数据帧的前一数据帧的时间取值,分别计算当前数据帧的时间取值与预设时间的第一差值Di以及当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di-1,根据第一差值和所述第二差值之间的差值大小的绝对值|Di–Di-1|判断系统时间是否发生跳变,若否,则将Di-Di-1作为第一备用差值Delta,将第一备用差值Delta与前一数据帧的时间输出值Outi-1相加,得到当前数据帧的时间输出值Outi;若是,则分别获取当前数据帧的前一数据帧的时间取值与当前帧的前二帧数据帧的时间取值,分别计算当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di-1以及前二帧数据帧的时间取值与预设时间的第三差值Di-2;将Di-1-Di-2作为第二备用差值Delta',将第二备用差值Delta'与前一数据帧的时间输出值Outi-1相加,得到当前数据帧的时间输出值Outi。最后,将当前数据帧的时间输出值Outi与数据的采样率相乘,得到当前数据帧的时间戳,解决因系统时间被修改而造成的时间戳跟着跳变的问题,有效减少时间戳的生成错误。附图说明本专利技术的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:图1为本申请实施例的实时传输协议系统的时间戳生成方法流程图;图2为本申请实施例的实时传输协议系统的时间戳生成装置结构示意图;图3为本申请实施例的实时传输协议系统的时间戳生成装置另一结构示意图。具体实施方式下面通过具体实施方式结合附图对本专利技术作进一步详细说明。本申请提供一种实时传输协议系统的时间戳生成方法及装置,可以减少时间戳的生成错误。实施例一:请参阅图1,图1为本申请实施例一的方法流程图,如图1所示,本申请实施例提供一种实时传输协议系统的时间戳生成方法,具体可以包括以下步骤:S101、获取当前数据帧的时间取值以及当前数据帧的前一数据帧的时间取值。S102、分别计算当前数据帧的时间取值与预设时间的第一差值Di以及当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di-1。S103、根据第一差值和第二差值之间的差值大小的绝对值|Di–Di-1|判断系统时间是否发生跳变,若否,则执行步骤S1本文档来自技高网
...
一种实时传输协议系统的时间戳生成方法及装置

【技术保护点】
一种实时传输协议系统的时间戳生成方法,其特征在于,包括:获取当前数据帧的时间取值以及所述当前数据帧的前一数据帧的时间取值;分别计算所述当前数据帧的时间取值与预设时间的第一差值Di以及所述当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di‑1;根据所述第一差值和所述第二差值之间的差值大小的绝对值|Di–Di‑1|判断系统时间是否发生跳变;若否,则将Di‑Di‑1作为第一备用差值Delta,将所述第一备用差值Delta与前一数据帧的时间输出值Outi‑1相加,得到当前数据帧的时间输出值Outi;若是,则获取所述前一数据帧的前一数据帧,作为第三数据帧,分别获取所述前一数据帧的时间取值与所述第三数据帧的时间取值;分别计算所述当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di‑1以及所述第三数据帧的时间取值与预设时间的第三差值Di‑2;将Di‑1‑Di‑2作为第二备用差值Delta',将所述第二备用差值Delta'与前一数据帧的时间输出值Outi‑1相加,得到当前数据帧的时间输出值Outi;将所述当前数据帧的时间输出值Outi与数据的采样率相乘,得到当前数据帧的时间戳。

【技术特征摘要】
1.一种实时传输协议系统的时间戳生成方法,其特征在于,包括:获取当前数据帧的时间取值以及所述当前数据帧的前一数据帧的时间取值;分别计算所述当前数据帧的时间取值与预设时间的第一差值Di以及所述当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di-1;根据所述第一差值和所述第二差值之间的差值大小的绝对值|Di–Di-1|判断系统时间是否发生跳变;若否,则将Di-Di-1作为第一备用差值Delta,将所述第一备用差值Delta与前一数据帧的时间输出值Outi-1相加,得到当前数据帧的时间输出值Outi;若是,则获取所述前一数据帧的前一数据帧,作为第三数据帧,分别获取所述前一数据帧的时间取值与所述第三数据帧的时间取值;分别计算所述当前数据帧的前一数据帧的时间取值与预设时间的第二差值Di-1以及所述第三数据帧的时间取值与预设时间的第三差值Di-2;将Di-1-Di-2作为第二备用差值Delta',将所述第二备用差值Delta'与前一数据帧的时间输出值Outi-1相加,得到当前数据帧的时间输出值Outi;将所述当前数据帧的时间输出值Outi与数据的采样率相乘,得到当前数据帧的时间戳。2.如权利要求1所述的实时传输协议系统的时间戳生成方法,其特征在于,所述根据所述第一差值和所述第二差值之间的差值大小的绝对值|Di–Di-1|判断系统时间是否发生跳变包括:判断所述第一差值和所述第二差值之间的差值大小的绝对值|Di–Di-1|是否大于预设值,若是,则表示系统时间发生跳变,若否,则表示系统时间未跳变。3.如权利要求3所述的实时传输协议系统的时间戳生成方法,其特征在于,所述预设值为2S。4.如权利要求1-3中任意一项所述的实时传输协议系统的时间戳生成方法,其特征在于,还包括:获取第零帧数据帧的时间取值与预设时间的时间差D0,将D0作为第零帧数据帧的时间输出值。5.一种实时传输协议系统的时间戳生成装置,其特征在于,包括:获取单元,用于获取当前数据帧的时间...

【专利技术属性】
技术研发人员:栗楠徐有亮刘平陈建文
申请(专利权)人:深圳市泛海三江科技发展有限公司
类型:发明
国别省市:广东;44

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

1