关于PCR的重要性在网络上到处都是,但是关于PCR的计算的帖子网上写的却不多
,分析来,发现并不是一个很复杂的过程
在此 我简单描述一下关于通过PCR计算码率的过程。首先。我们要在TS流中找到
PSI信息表,这里我就不多说了。顺序是PAT-->PMT--->PCR_PID.
当得到PCR_PID后,我们就可以根据它找对应具有PCR信息的包,有时候这个包的
指向会在VIDEO数据包内,不要奇怪。是否具有PCR信息关键看
Adaptation_Filed_Control,关于Adaptation_Filed_Control的描述在协议里说
的很清楚,大家可以看协议:)
当Adaptation_Filed_Control 描述此包具有调整字段时,注意了,在这里我们
就可以找到PCR的值了。分析得出PCR_Base 和 PCR_ext。把PCR_Base*300+
PCR_ext。就可以得到一个PCR的值。那么再找紧跟其后的一个PCR的值,方法同
上。
当得到2个PCR的值 姑且定义为 PCR_ONE,PCR_TWO.
根据协议中的公式 I-2-5计算出rate;
rate = (2个PCR相隔的包的个数*188*8 *27000000)/(PCR_TWO - PCR_ONE)
PCR包个数*188*8 得到2个PCR之间相差的位数
From: http://blog.csdn.net/aaaaatiger/archive/2008/09/02/2863871.aspx