说一说TS码流里面的PCR

问题的起因是这样的:在我刚开始学习的码流的时候,就有人告诉我TS里面的有一个绝对时间叫做PCR,但是我们因为代码原因,都基本不怎么用。后面分析码流的时候基本都是使用EasyICE,然后看到的数据就是下面这样的。我也一直以为这个就是码流的绝对时间22:30:01.733秒。

直到有一次无意中发现视频的OSD和这个时间完全对不上,这个PCR对应的实际时间应该是上午10点多的,所以我才去确认了一下到底什么是PCR,然后解决了如下问题:

1、什么是PCR?

在标准文档里面定义如下:

翻译成中文就是:

翻译成人话就是:

相对于解码器的一个时刻。我这边从一部分相机上抓取数据发现,本质上就是相对于相机上一次重启的时间。这个相对于哪个值不重要,记得就是相对于一个时刻过了多久。和C++上的time()函数有点像,就会开机时间。

2、PCR的作用?

音视频同步。

3、PCR怎么计算?

把得到的PCR /27000000 然后就得到了多少秒,这个就是相对于时刻的多少秒。至于除以27000000的原因是因为时钟的采样频率固定是27M。

4、PCR和PTS以及DTS的关系?

可以参考这篇文章:https://www.easyice.cn/archives/264

5、PCR最大表示多长时间?

PCR_base 33 位,最大值:0x1FFFFFFFF
PCR_ext 9 位,根据定义,取值 0-299

因此PCR最大值为:0x1FFFFFFFF*300 + 299

可表示的小时数:(0x1FFFFFFFF*300 + 299) / 27000000 / 3600 约为 26.5 小时

6、发一张相机重启之后的PCR的样子。

PCR确实已经重新赋值为0了。

好了,今天就到这里吧。

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值