Quick Guide: Interpreting OpenEye MPEG-2 Transport Stream Reports
This guide explains how to read and act on reports produced by the OpenEye MPEG-2 Transport Stream (TS) Analyzer. It focuses on the key report sections, common metrics and errors, and practical troubleshooting steps so you can quickly find and fix stream issues.
1. Report overview — what to scan first
- Stream summary: Shows stream duration, packet rate, bitrate, and number of PIDs. Check bitrate against expected capacity immediately.
- Service table: Lists detected services and their Program IDs (PIDs). Confirm all expected services appear.
- Error summary: Aggregates packet-level and stream-level errors. Treat this as your triage starting point.
2. Key metrics and what they mean
- Packet count / rate: Total MPEG-2 TS packets and packets per second. Sudden drops or spikes indicate packet loss or duplication.
- Bitrate: Measured over time and average. Sustained bitrate above capacity causes buffering or dropped packets downstream.
- PID list: All packet identifiers. Missing expected PIDs means a service or elementary stream isn’t being sent.
- PCR (Program Clock Reference) metrics: Includes PCR frequency, discontinuities, and jitter. PCR issues cause audio/video sync problems.
- Continuity counter (CC) errors: Counts missing or out-of-order packets per PID. Any nonzero CC error requires inspection of packet loss or misordering.
- PTS/DTS analysis: Presentation and decoding timestamp ranges and overlaps. Out-of-range or negative deltas cause playback glitches.
- Null packet percentage: High null packet rate may indicate bandwidth reserved but unused; extremely low could mean no padding when expected.
- PSI/SI table health: Presence and correctness of PAT, PMT, SDT, and EIT. Invalid or missing tables affect service discovery.
3. Common errors and how to interpret them
- Continuity counter mismatch: Usually indicates packet loss or reordering between capture points. Check upstream encoders and packet capture equipment.
- PCR discontinuity / large PCR jitter: Look for encoder clocking issues or network elements buffering/reshaping RTP packets. Verify encoder PCR insertion intervals and network latency variation.
- Missing PID: Either the multiplexer isn’t including that stream or downstream filters are dropping it. Confirm source configuration and PMT mappings.
- PTS/DTS out-of-order or negative PTS: Encoder timestamping problem; re-multiplexing may be required.
- Unrecognized/invalid PSI tables: Could be corrupt multiplexing or insertion errors from PSI generators. Validate PAT/PMT generation and check for truncated packets.
- High null packet percentage: Expected for variable bit rate multiplexing; if unexpectedly high, check upstream to ensure streams are being delivered at planned rates.
- CRC errors in sections: Data corruption; inspect packet loss statistics and capture integrity.
4. Prioritized troubleshooting checklist
- Confirm expected services/PIDs in Service table.
- Check Error summary for nonzero CC errors, PCR issues, or missing PSI.
- If CC errors exist: correlate with packet rate drops and examine capture timestamps for loss or reordering.
- If PCR jitter/discontinuities occur: test encoder clock stability and inspect network jitter; consider enabling PCR correction at the multiplexer.
- If PTS/DTS anomalies appear: re-run encoding with corrected timestamp generation or remux the stream.
- If PSI/SI tables are missing or invalid: regenerate PAT/PMT and ensure section continuity across packets.
- If bitrate spikes or sustained overuse: locate offending PID(s) by per-PID bitrate report and throttle or re-encode as needed.
- Validate capture setup: ensure capture NICs, buffers, and storage are not dropping packets.
5. Using per-PID and timeline views effectively
- Use per-PID bitrate and CC error charts to isolate problem streams.
- Timeline views let you correlate errors with clock events, bitrate changes, or encoder reconfigurations.
- Zoom into time windows around reported PCR/CC/PTS errors to inspect packet-level details