При проверке транспортного потока с использованием tsduck я вижу, что некоторые пакеты содержат значение PCR в шестнадцатеричном формате. Я не уверен, как преобразовать их в метки времени.
Например, в пакете ниже значение PCR равно 0x000002014CE
* Packet 179
---- TS Header ----
PID: 481 (0x01E1), header size: 25, sync: 0x47
Error: 0, unit start: 1, priority: 0
Scrambling: 0, continuity counter: 4
Adaptation field: yes (21 bytes), payload: yes (163 bytes)
Discontinuity: 0, random access: 0, ES priority: 0
PCR: 0x000002014CE
---- PES Header ----
Stream id: 0xE0 (Video 0)
PES packet length: 0 (unbounded)
---- Full TS Packet Content ----
47 41 E1 34 14 12 00 00 0D B0 7E 4E 0C 02 0A 22 8E 00 00 D1 2D 03 64 00
29 00 00 01 E0 00 00 84 C0 0A 31 00 07 44 B7 11 00 05 D4 37 00 00 00 01
09 30 00 00 01 06 01 03 03 84 19 80 00 00 01 41 9A 84 93 D1 13 7F F0 28
2C 26 B5 35 90 10 B7 32 8C FF 00 D3 47 BE 4C 9A 83 AE CD B8 9C 09 5A 60
07 BE C4 F2 2C 5D D3 24 6C 7F A0 E1 C4 7B BC FA 37 CA C5 C0 B0 C4 2C 91
96 09 07 22 C4 A8 55 FF C2 BF 0E 7E 10 74 6D 84 F2 08 9D D0 29 52 7F 2B
F6 3E C8 23 1F BC 4E 80 C3 AE FD AC F4 96 08 E5 13 C8 A7 41 20 B4 F6 F8
E1 14 4A 03 4C 8E 98 00 04 73 2D AE 83 31 0B C8 61 03 3A A1
То, что я пробовал, смотрит на первые несколько экземпляров пакетовкоторые имели значения ПЦР в них, затем преобразовывали их в десятичную и затем делили на 90000, что является тактовой частотой тактовой частоты ПЦР (т. е. временной базы).
Но, глядя на последний столбец, он выглядит неправильно. Казалось бы, интервалы слишком велики. Я думал, что ПЦР должен вставлять ПЦР-штампы, по крайней мере, каждые 100 мс или около того, но это кажется слишком редким ...