Stream MPEG传输流连续性计数器

Stream MPEG传输流连续性计数器,stream,mpeg,transport,Stream,Mpeg,Transport,我正在对跨越10GB MPLS网络的IPTV第3层多播VPN进行故障排除 只有某些高清频道出现严重冻结和平铺;所有其他SD和HD频道工作正常。我们的IPTV视频监控设备通过监控连续性计数器来检测和报告数据包丢失。我询问了我们所有的设备供应商,并阅读了我能找到的每个.pdf文件,但似乎没有人确切知道: MPEG传输流连续性计数器如何/何时/何地装入传输流 正在统计传输流中的哪些数据包/帧 为什么报告的数据包丢失似乎以16(0、16、32)的增量发生 0丢包怎么会出现错误情况 PCR值如何/何时/何

我正在对跨越10GB MPLS网络的IPTV第3层多播VPN进行故障排除

只有某些高清频道出现严重冻结和平铺;所有其他SD和HD频道工作正常。我们的IPTV视频监控设备通过监控连续性计数器来检测和报告数据包丢失。我询问了我们所有的设备供应商,并阅读了我能找到的每个.pdf文件,但似乎没有人确切知道:

  • MPEG传输流连续性计数器如何/何时/何地装入传输流
  • 正在统计传输流中的哪些数据包/帧
  • 为什么报告的数据包丢失似乎以16(0、16、32)的增量发生
  • 0丢包怎么会出现错误情况
  • PCR值如何/何时/何地适合传输流

  • 这是很多问题!让我们澄清一下:

  • 在传输流(TS)的每个传输分组(TP)的报头中携带连续性计数器(CC)
  • 每个TP在报头中也有一个数据包标识符(PID)。每个PID都有自己的CC。根据wikipedia,每次TP有有效负载时,任何给定PID的CC都会增加,但我认为它实际上会在每个新TP上增加[编辑]:只有当有效负载标志为真时,CC才会递增(参见下面的Mike Reedel注释)
  • 实际上,由于CC是4位的,所以值应该从
    0x0
    0xF
    ,然后从
    0x0
    开始
  • 有些人对标准不太在意,在TS的多路复用过程中,可能会发生CC没有正确增加的情况:在这种情况下,您没有丢失任何数据包,但由于CC损坏,您的工具报告了一个错误。但是,在TS传输过程中,错误可能发生在任何地方,包括可能无法以正确速率采样的监控工具
  • 程序时钟参考(PCR)是一个定时插入TS中的时间戳,用于向解码器提供准确的27 Mhz时钟。根据标准,应每40ms重复一次。携带PCR的PID没有义务,但大多数情况下它是视频PID:您需要查看PMT以找出PCR在哪个PID上
  • 一些参考资料:

    • ISO 13818-1

    在#2上,持续计数器仅在有效负载标志为真时递增。此外,对于重复数据包或设置不连续标志时,连续计数器不会递增。参见ISO/IEC 13818-1,第2.4.3.3节。我想让自己确信Mike Reedell所说的是真的,即“只有当有效负载标志为真时,连续性计数器才会增加”。使用tsduck,使用tsdump实用程序(为了简单起见,只看前三个数据包),数据包0、1和2,即PAT、PMT和视频(PID481),每个数据包都有“有效负载:是”。但视频包中的连续性计数器仅更改为1…@Baba.S每个PID都有自己的计数器。因此,您无法将PAT、PMT、视频PID481等的CC相互比较。CC仅在查看相同PID的数据包时才有意义。