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​

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