转自:http://blog.csdn.net/zhuweigangzwg/article/details/17222467
MPEG2_TS(二)-PCR控制发送速度原理
一·目的:本文所讲是通过PCR控制TS文件发送给UDP的速率,以便用vlc来接收数据时不会产生“空”,或溢出的情况。
泛泛讲点其他的东西,为什么要用pcr来控制发送速度:通常硬件ASI卡传送ts数据,是依靠码率来控制速度。假设ts是2Mb的码率,那么ASI卡的发送速度就固定控制在2Mb。
如果ts的码率有波动变化,就在ts中插入空白数据包,强行将ts的码率提高到一个固定的码率值。这是硬件ASI卡传送ts通常使用的方式。
在以太网上传送ts数据,考虑到以太网传输速度的不稳定性,udp的丢包性质,和socket的发送接收缓冲区,插入空包将ts码率提高到一个固定码率的做法已经没有了意义,
因为上面那些因素,以太网的发送速度不能像ASI卡那样固定。插入空白数据包,把码率提高到一个固定值的做法也比较多此一举。
所以,根据ts流自己携带的pcr时钟信息,来进行同步控制发送速度,比根据码率来控制发送速度,更准确,也更有适应性。在ts码率有波动,并且波动比较大的情况下,
根据码率来控制发送速度无疑是不准确的。
二·流程:
三·细节:
注:本demo地址在我的csdn上:http://download.csdn.net/detail/zhuweigangzwg/5075357