【问题标题】:How to identify an IDR frame from the Video packet如何从视频数据包中识别 IDR 帧
【发布时间】:2019-11-08 17:15:28
【问题描述】:

我需要能够检查 ts 数据包(查看视频 PID 481)并确定数据包是否包含 IDR 帧。我的理解是,我需要查找 NAL 单元起始代码,然后再查找其他内容以表明它是 IDR 帧的开始。请问有人可以澄清一下吗?

这是一个我认为是 IDR 帧的数据包示例,但需要能够从有效负载数据中证明:

* Packet 2
  ---- TS Header ----
  PID: 481 (0x01E1), header size: 12, sync: 0x47
  Error: 0, unit start: 1, priority: 0
  Scrambling: 0, continuity counter: 1
  Adaptation field: yes (8 bytes), payload: yes (176 bytes)
  Discontinuity: 1, random access: 1, ES priority: 0
  PCR: 0x000000013A5
  ---- PES Header ----
  Stream id: 0xE0 (Video 0)
  PES packet length: 0 (unbounded)
  ---- Full TS Packet Content ----
  47 41 E1 31 07 D0 00 00 00 08 7E E5 00 00 01 E0 00 00 84 C0 0A 31 00 05
  E5 CD 11 00 05 AD 8D 00 00 00 01 09 10 00 00 00 01 67 64 00 29 AC D9 40
  78 04 4F DE 02 94 04 04 05 00 00 03 00 01 00 00 03 00 32 E6 80 00 F4 24
  00 04 F5 8A 49 30 0F 8B 16 CB 00 00 00 01 68 FA A7 CB 00 00 01 06 00 05
  95 6C 60 E4 85 80 00 00 01 06 05 FF FF F5 DC 45 E9 BD E6 D9 48 B7 96 2C
  D8 20 D9 23 EE EF 78 32 36 34 20 2D 20 63 6F 72 65 20 31 34 38 20 2D 20
  48 2E 32 36 34 2F 4D 50 45 47 2D 34 20 41 56 43 20 63 6F 64 65 63 20 2D
  20 43 6F 70 79 72 69 67 68 74 20 32 30 30 33 2D 32 30 31 36

【问题讨论】:

  • 你读过这个:stackoverflow.com/questions/24884827/… 吗?您正在寻找 IDR 切片(类型 5)
  • 非常感谢!我现在就读一读:)
  • 顺便问一下,ts duck 在那个数据包中显示随机访问设置为 1 的事实不是证明它是一个 IDR 吗?
  • 不一定,但很有可能。

标签: mpeg2-ts


【解决方案1】:

无法从那个数据包中分辨出来。然而,它很可能是 IDR。我说它很可能,因为查看 NALU,我可以看到 AUD 00 00 00 01 09、SPS 00 00 00 01 67、PPS 00 00 00 01 68 然后是 SEI 00 00 01 06

但是 SEI 会占用数据包的剩余字节,您将需要继续从该 PID 读取数据包,直到您对下一个 NALU 进行处理并查看它是否为 IDR。

【讨论】:

    猜你喜欢
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    相关资源
    最近更新 更多