基于PCR的寻找MpegTSFile

时间:2011-06-22 16:55:38

标签: video mpeg-2 mpeg2-ts

我想为MpegTs文件播放实现搜索功能。 任何人都可以建议我如何将PCR转换为时间(在mescs中)。 我知道PCR用于搜索(我在VLC中看到过),但想知道如何做到这一点。

亲切的问候, VEN

1 个答案:

答案 0 :(得分:3)

PCR是在编码器侧表示27 Mhz时钟的时钟。因此,PCR时钟的每个滴答代表1/27微秒。

第一步是能够解析PCR包。 PCR滴答由特定的PID维护(主要是视频但可以是音频或替代分组)。当数据包中存在PCR时,它是适应字段,类型2或3.您可以参考thiswiki来了解如何解析PCR。

一旦获得数据包的PCR值 - (使用64位整数),您就会得到该数据包的时间戳P0。现在你可以设法准确说出10个seceonds,当你得到下一个PCR包时,带有时间戳,P1在哪里

P1 = P0 + 10 * 27 * 10 ^ 6

因此,当您看到包含时间戳P1或更长时间的另一个此类数据包时,您可以确定已经过了10秒。

请注意,在某些情况下,PCR可能会发现不连续性,因此需要在PCR碱基转换点进行更多计算。