2

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

亲切的问候,文

4

1 回答 1

3

PCR 是一个时钟,代表编码器端的 27 Mhz 时钟。因此 PCR 时钟的每个刻度代表 1/27 微秒。

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

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

P1 = P0 + 10 * 27 * 10^6

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

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

于 2011-11-27T09:50:38.117 回答