Инструменты

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 потоков. В последующих обновлениях программы анализатор будет ещё существенно улучшен. Это не облачный анализатор, здесь не требуется постоянная подписка на ПО, работает всё оффлайн на вашем сервере.