Skip to content

STANAG 4609 / MISB-FMV / KLV Custody

This blueprint explains how nats-sinks can preserve custody records for motion imagery and KLV-related metadata after an external decoder has already performed demuxing, decoding, authorization, redaction, and normalization.

nats-sinks does not demux MPEG transport streams, parse SMPTE 336 KLV, decode MISB ST 0601, exploit imagery, or perform targeting workflows. It can persist artifact references, hashes, timestamps, labels, and normalized metadata records with commit-then-ACK reliability.

flowchart LR
    Video[FMV source or archive] --> Decoder[External STANAG 4609 / KLV decoder]
    Decoder --> JS[NATS JetStream]
    JS --> Sink[nats-sinks]
    Sink --> Store[Oracle / file / object storage]
    Store --> Audit[Custody / audit / analytics]

Synthetic Custody Event

{
  "event_id": "synthetic-fmv-0001",
  "artifact_id": "artifact-placeholder-0001",
  "video_segment_uri": "object://synthetic/fmv/segment-0001.ts",
  "artifact_sha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
  "artifact_media_type": "video/mp2t",
  "klv_packet_reference": "artifact://synthetic/fmv/segment-0001/klv/0001",
  "klv_packet_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
  "presentation_timestamp": "2026-05-31T10:10:00Z",
  "sensor_id": "sensor-placeholder",
  "platform_id": "platform-placeholder",
  "collection_id": "collection-placeholder",
  "mission_id": "mission-placeholder",
  "classification": "NATO UNCLASSIFIED",
  "labels": ["synthetic", "fmv", "custody"],
  "security_labels": {
    "profile": "example-security-label-v1",
    "handling": "synthetic-only"
  },
  "mission_metadata": {
    "profile": "fmv-custody-event",
    "profile_version": 1
  }
}

Large video segments should normally be stored as object or archive references rather than embedded in NATS messages. Persist hashes and manifests so review tools can verify that the referenced artifact has not changed.

Operational Guidance

  • Use artifact IDs and hashes as custody anchors.
  • Keep decoder evidence separate from nats-sinks delivery evidence.
  • Use security labels and mission metadata for handling context.
  • Avoid raw subjects, raw platform identifiers, and sensitive sensor metadata in public reports.
  • ACK only after the custody record is committed to the configured sink.

Boundaries

This page is conceptual. It contains no real STANAG 4609 files, no KLV payloads, no MISB field values, no sensor exploitation logic, and no operational video data.