Инструменты¶
Perfect Streamer MPEG TS PCR Analyzer Free Toolkit v 1.2¶
Бесплатный анализатор MPEG-TS PCR (Program Clock Reference) с интерфейсом командной строки, проверяющий соответствие транспортного потока стандартам TR 101 290 и ISO/IEC 13818-1 (T-STD).
Скачать можно по ссылке: https://pstreamer.tv/distrib/pcr_analyzer/pss_pcr_analyzer_v_1.2.zip
Функции¶
PCR Interval — проверяет повторяемость интервала PCR на величину 40 мс (TR 101 290 §1.4, Priority 1) и 25 мс (рекомендации)
PCR Accuracy / Jitter — измеряет смещение PCR относительно реального времени (live) или интервальный jitter (file), проверяется на ±500 нс (TR 101 290 §2.3, Priority 2)
PCR Drift — дрейф часов в ppm (только в режиме live)
T-STD Buffer Model — обнаружение переполнения/недополнения буфера транспорта в соответствии с ISO/IEC 13818-1 §2.4.2 (размеры буфера из таблицы 2-36, скорости освобождения буфера из §2.4.2.3)
PAT/PMT auto-discovery via libdvbpsi — не нужно указывать PIDs вручную
RTP de-encapsulation — обрабатывает RTP-over-UDP прозрачно
Full & short reports с результатами PASS/FAIL и процентильными статистиками
Стандарты¶
Проверка |
Стандарт |
Раздел |
Лимиты |
|---|---|---|---|
PCR repetition error |
ETSI TR 101 290 |
§1.4 (Priority 1) |
≤ 40 ms |
PCR accuracy error |
ETSI TR 101 290 |
§2.3 (Priority 2) |
± 500 ns |
PCR clock drift |
ITU-T J.83 / DVB guidelines |
— |
± 30 ppm |
T-STD buffer model |
ISO/IEC 13818-1 (MPEG-2 Systems) |
§2.4.2 |
No overflow/underflow |
T-STD buffer sizes (TBn, MBn) |
ISO/IEC 13818-1 |
Table 2-36 |
TBn=512 B, MBn video ≤ 6 Mbit |
T-STD leak rate (Rxn) |
ISO/IEC 13818-1 |
§2.4.2.3 |
1.2 Mbit/s (video) |
PCR discontinuity indicator |
ISO/IEC 13818-1 |
§2.4.3.5 |
— |
T-STD Buffer Model¶
T-STD (Transport Stream System Target Decoder) определяется в ISO/IEC 13818-1 (MPEG-2 Systems), Section 2.4.2. Он указывает на модель декодера, которую все соответствующие транспортные потоки должны удовлетворять — ни один буфер в модели не должен переполняться или недополняться во время нормальной работы.
Модель состоит из цепочки буферов для каждого элементарного потока:
TBn (Transport Buffer) — получает TS пакеты с транспортной скоростью; размер определен в Table 2-36 (512 байт для всех типов потоков)
MBn (Multiplexing Buffer) — сглаживает мультиплексированный поток; максимальный размер Bmax зависит от типа потока (до 6 Mbit для видео, по Table 2-36)
EBn (Elementary stream Buffer) — подает данные декодеру с кодированной скоростью
Эта реализация использует упрощенную модель утечки: входящие пакеты заполняют буфер с транспортной скоростью, пока данные отправляются со скоростью Rxn определенной в §2.4.2.3 (1.2 Mbit/s для элементарного потока видео). Переполнение означает, что поток отправляет данные быстрее, чем декодер может их потреблять; недополнение означает, что декодер завис.
Связанные стандарты:
ISO/IEC 13818-1:2022 — Information technology — Generic coding of moving pictures and associated audio information: Systems
ETSI TR 101 290 V1.4.1 — Digital Video Broadcasting (DVB); Measurement guidelines for DVB systems
ITU-T Rec. H.222.0 — технически идентичен ISO/IEC 13818-1
ETSI TS 101 154 — DVB: Specification for the use of Video and Audio Coding in Broadcasting Applications (определяет ограничения буфера для конкретных потоков)
Использование
$ pcr_analyzer [options] <input>
Форматы ввода
UDP multicast:
$ pcr_analyzer udp://239.1.1.1:1234
UDP multicast on a specific interface:
$ pcr_analyzer udp://eth0@239.1.1.1:1234
UDP unicast:
$ pcr_analyzer udp://192.168.1.100:1234
TS file:
$ pcr_analyzer /path/to/file.ts
Пример отчёта:
PCR PID 0x0101 (257)
-------------------------------------------------------------------------
PCR packets received : 1500
Discontinuities : 0
Estimated bitrate : 18.750 Mbit/s
┌─ PCR INTERVAL (TR 101 290 §1.4) ──────────────────
│ Samples : 1499
│ Min : 19.812 ms
│ Max : 20.195 ms
│ Average : 20.001 ms
│ 95th pctl : 20.102 ms
│ Limit : 40.000 ms (max), 25.000 ms (rec)
│ Violations : 0 (>40ms), 0 (>25ms)
│ Result : PASS
└───────────────────────────────────────────────────
┌─ PCR ACCURACY / JITTER (TR 101 290 §2.3) ────────
│ Samples : 1499
│ Min offset : -148.3 ns
│ Max offset : 201.7 ns
│ Abs max : 201.7 ns
│ Average : 2.1 ns
│ Std dev : 45.6 ns
│ 95th pctl : 102.3 ns
│ Limit : ±500.0 ns
│ Violations : 0
│ Result : PASS
└───────────────────────────────────────────────────
┌─ PCR DRIFT ────────────────────────────────────────
│ Current drift : 0.128 ppm
│ Limit : ±30 ppm (typical)
│ Result : PASS
└───────────────────────────────────────────────────
┌─ T-STD BUFFER MODEL (ISO 13818-1 §2.4.2) ────────
│ Overflows : 0
│ Underflows : 0
│ Max fill : 34218 bytes
│ Result : PASS
└───────────────────────────────────────────────────
========================================================================
OVERALL COMPLIANCE: PASS — stream is TR 101 290 compliant
========================================================================
Более продвинутая версия анализатора с графиками и отчётами, проверяющая на соответствие все сотни потоков заведённых на сервере в режиме реального времени доступна в полноценной версии Perfect Streamer и Perfect Streamer Demo на 10 потоков. В последующих обновлениях программы анализатор будет ещё существенно улучшен. Это не облачный анализатор, здесь не требуется постоянная подписка на ПО, работает всё оффлайн на вашем сервере.