RTP时间戳定义和分装类(RTP/RTCP详解系列1)

RTP时间戳的定义

RTP包头的第2个32Bit即为RTP包的时间戳,Time Stamp ,占32位。

时间戳反映了RTP分组中的数据的第一个字节的采样时刻。在一次会话开始时的时间戳初值也是随机选择的。即使是没有信号发送时,时间戳的数值也要随时间不断的增加。接收端使用时间戳可准确知道应当在什么时间还原哪一个数据块,从而消除传输中的抖动。时间戳还可用来使视频应用中声音和图像同步。

在RTP协议中并没有规定时间戳的粒度,这取决于有效载荷的类型。因此RTP的时间戳又称为媒体时间戳,以强调这种时间戳的粒度取决于信号的类型。例如,对于8kHz采样的话音信号,若每隔20ms构成一个数据块,则一个数据块中包含有160个样本(0.02×8000=160)。因此每发送一个RTP分组,其时间戳的值就增加160。

官方的解释看懂没?没看懂?没关系,我刚开始也没看懂,那就听我的解释吧。

首先,时间戳就是一个值,用来反映某个数据块的产生(采集)时间点的,后采集的数据块的时间戳肯定是大于先采集的数据块的。有了这样一个时间戳,就可以标记数据块的先后顺序。

第二,在实时流传输中,数据采集后立刻传递到RTP模块进行发送,那么,其实,数据块的采集时间戳就直接作为RTP包的时间戳。

第三,如果用RTP来传输固定的文件,则这个时间戳就是读文件的时间点,依次递增。这个不再我们当前的讨论范围内,暂时不考虑。

第四,时间戳的单位采用的是采样频率的倒数,例如采样频率为8000Hz时,时间戳的单位为1 / 8000 ,在Jrtplib库中,有设置时间戳单位的函数接口,而ORTP库中根据负载类型直接给定了时间戳的单位(音频负载1/8000,视频负载1/90000)

第五,时间戳增量是指两个RTP包之间的时间间隔,详细点说,就是发送第二个RTP包相距发送第一个RTP包时的时间间隔(单位是时间戳单位)。

如果采样频率为90000Hz,则由上面讨论可知,时间戳单位为1/90000,我们就假设1s钟被划分了90000个时间块,那么,如果每秒发送25帧,那么,每一个帧的发送占多少个时间块呢?当然是 90000/25 = 3600。因此,我们根据定义“时间戳增量是发送第二个RTP包相距发送第一个RTP包时的时间间隔”,故时间戳增量应该为3600。

分享一个RTP时间戳的分装类

class RTP_Timestamp

{

public:

    RTP_Timestamp(DWORD unit)

        : m_dwUnit(unit)

    {

        QueryPerformanceFrequency ( (LARGE_INTEGER*)&m_Freq ) ;

    }

    ~RTP_Timestamp(void)

    {

    }

    DWORD GetTime ()

    {

        __int64 current ;

        QueryPerformanceCounter ( (LARGE_INTEGER*)&current ) ;

        DWORD ts = current * m_dwUnit / m_Freq ;

        return ts ;

    }

private:

    DWORD m_dwUnit ;

    __int64 m_Freq ;

};

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

  • 音视频网络简介及RTP协议起源

    使用包网络(如互联网)传输语音和视频的想法并不新鲜。分组网络上的语音实验可以追溯到20世纪70年代早期。关于这个主题的第一个RFC—网络语音协议-从1977年起。视频出现的较晚,但…

    2023年4月18日
  • RTP 时间戳的定义和应用

    时间戳单位:时间戳计算的单位不是秒之类的单位,而是由采样频率所代替的单位,这样做的目的就是 为了是时间戳单位更为精准。比如说一个音频的采样频率为8000Hz,那么我们可以把时间戳单…

    2023年4月17日
  • RTP之H264封包和解包

    1. RTP数据包格式 RTP报文头格式(见RFC3550 Page12): 1) V:RTP协议的版本号,占2位,当前协议版本号为2 2) P:填充标志,占1位,如果P=1,则在…

    2023年2月2日
  • 流媒体传输技术rtp

    WebRTC作为一个实时音视频传输技术,实时性是RTC技术的主要评判标准。在整个实时音视频系统中,对实时性影响最大的就是传输层。当今通信技术众多,但是都离不开两个基础的协议,即TC…

    2023年2月5日
  • 实时传输协议RTP简况及实现概述

    RTP是由IETF的音频/视频传输工作组开发的,后来被国际电联作为其H.323系列建议的一部分而采用,并被其他各种标准组织采用。RTP的第一个版本是在1996年1月完成的,在完成之…

    2023年4月18日
  • 实时传输协议 (RTP)收发流程概览-1

    因为现在主流的IP网络部署使用SIP协议比较多,因此RTP和SIP应用相对比较紧密。很多时候,我们花费大量时间讨论SIP协议和传输等问题,没有太多关注RTP流的处理。这里,我们单纯…

    2024年3月26日

发表回复

登录后才能评论