Skip to main content

βŒ›Max PTS Interval

According to ETSI TR 101-290 validation guidance, a PTS error is detected when the repetition period of a PTS exceeds 700 ms.
This rule checks how much transport time passes between successive PES packets that carry a PTS on the same PID.

What it checks​

  • groups PES packets by PID
  • keeps only PES starts that carry a PTS
  • measures the elapsed stream time between successive PTS-bearing packets
  • compares each interval against the configured threshold

The default threshold is 700 ms.

Discontinuity indicator handling​

If the transport stream sets discontinuity_indicator between the previous PTS-bearing packet and the violating packet on the same PID, the event is still recorded, but the validation result is downgraded to a warning.

This mirrors the handling used by other MPEG-TS timing rules when a declared transport discontinuity explains the timing jump.

βœ… Pass condition​

The test passes when no observed PTS repetition interval exceeds the configured threshold.

Example pass message:

No PTS interval above 700 ms was detected.

❌ Fail condition​

The test fails when one or more PTS repetition intervals exceed the configured threshold without a matching discontinuity_indicator.

Example failure:

  • previous PTS-bearing PES packet at packet 20
  • next PTS-bearing PES packet at packet 40
  • measured interval 800 ms
  • configured threshold 700 ms

⚠️ Warning condition​

If all detected interval violations are covered by discontinuity_indicator, the test reports a warning instead of a failure, as it is legal.

Example​

Passing sample result​

Passing Max PTS Interval chart showing PTS intervals below the configured threshold

In this passing example, each PTS repetition interval stays below the configured threshold. With the default 700 ms threshold, no interval is large enough to be reported as a Max PTS Interval violation.

The application chart for this rule focuses on violations, so a real passing result may have no violation points to display. This sample illustrates the expected timing pattern behind a pass: PTS-bearing PES packets are frequent enough for the selected PID.

Failing sample result​

PTS interval chart

The chart shows only PTS interval violations as points on a scatter plot.

The X axis is the byte offset in the file. The Y axis is the measured PTS interval in milliseconds. A dashed horizontal reference line marks the configured threshold, 700 ms by default.

Threshold guidance​

Keep the default 700 ms threshold when you want to follow the ETSI TR 101-290 guideline directly.

You may want to lower the threshold when:

  • You need stricter encoder timing behavior
  • Downstream systems are sensitive to sparse timestamp updates

You may want to raise the threshold when:

  • You are working with known low-rate content that emits PTS less frequently
  • You are reviewing streams where sparse timestamps are expected and accepted by your workflow

In most compliant MPEG-TS streams, PTS should be present for every access unit (frame) for video, and for every KLV packet when metadata is time-relevant (SYNC KLV).

Video Streams (Per Frame)​

Frame RateFrame DurationRecommended PTS IntervalNotes
60 fps~16.7 msEvery frame (~16–17 ms)Required for smooth playback and sync
50 fps20 msEvery frame (20 ms)Common in broadcast (PAL regions)
30 fps~33.3 msEvery frame (~33 ms)Typical UAV / ISR streams
25 fps40 msEvery frame (40 ms)DVB-style timing
24 fps~41.7 msEvery frame (~42 ms)Cinema-style encoding
15 fps~66.7 msEvery frame (~67 ms)Low-bandwidth UAV feeds
10 fps100 msEvery frame (100 ms)Edge / constrained links
5 fps200 msEvery frame (200 ms)Very low-rate telemetry video

Key Rule (Video)​

  • PTS should appear on every frame (access unit)
  • Missing PTS across multiple frames is typically a real encoder issue, not just a warning

KLV Metadata (MISB ST 0601 / ST 0903)​

Metadata RateRecommended PTS IntervalNotes
Per frameSame as video frame rateIdeal case (1 KLV per frame)
30 Hz~33 msCommon ISR telemetry
10 Hz100 msReduced metadata rate
1 Hz1000 msMinimal tracking updates

Key Rule (KLV)​

  • Each KLV packet should carry a PTS aligned to its emission time
  • It does not need to match every video frame, but:
    • Must be monotonic
    • Should be frequent enough for downstream systems (tracking, overlay, sync)

Practical Validation Guidance​

  • Video:

    • Expect PTS per frame
    • Error if gap > 2Γ— frame duration
  • KLV:

    • Expect PTS per packet
    • Warning if gap > 2Γ— expected metadata rate

TR 101-290 Alignment​

  • The 700 ms threshold is:
    • A coarse broadcast safety limit
    • Not suitable for UAV / ISR precision systems

Suggested Thresholds (Real-World UAV Systems)​

Use CaseRecommended Max PTS Gap
High-quality ISR video≀ 2 frames
General UAV streaming≀ 3–5 frames
Low bitrate links≀ 500 ms
TR 101-290 compliance≀ 700 ms

Summary​

  • Video: PTS β†’ every frame (strict requirement)
  • KLV: PTS β†’ every packet (strongly recommended)
  • 700 ms is too loose for UAV/ISR β€” use frame-based thresholds instead

Test file​

  • mpegts-max-pts-interval.ts