live555中关于时间戳间隔与fDurationInMicroseconds的计算方法

流媒体开发相对比较久的同学,可能经常一抓包或者一看数据就会对fps25、Timestamp间隔40、RTP时间戳增长3600非常熟悉,但是这个40、3600是怎么得来的还不是非常清楚,尤其是这个时间戳的间隔,并不知道是怎么计算来的,今天我们就分别对音视频时间戳中的时间间隔来做一个了解:
在live555中fDurationInMicroseconds表示单个视频或者音频帧所占用的时间间隔,也就是秒,也表示在fDurationInMicroseconds微秒时间后再次向Source进行getNextFrame操作,
以视频为例,可以这样计算:
视频帧率fFrameRate=25,那么我们每一次在doGetNextFrame中赋值fDurationInMicroseconds = 1000000(1秒)/fFrameRate = 40000(40ms);
以音频为例,可以这样计算:
假如音频的采样率为fSamplingFrequency=8000,那么我们每一次在doGetNextFrame中赋值fDurationInMicroseconds = 1000000/fSamplingFrequency = 125;

那RTP时间戳是怎么来的呢,因为音频和视频都有采样率这么一说,比如视频经常是90000 RTP/AVP,那么也就是说将1s分成90000份采样(即1ms就是9个采样),那么上面视频里面的一帧时间间隔是40ms,也就是40*90=3600,RTP里面的3600就是这么得来的;音频同理;


我们专注于开源流媒体技术:EasyDarwin、live555、ffmpeg,关注我们!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值