STANAG 4609: the KLV metadata, and not the motion imagery
STANAG 4609 is the NATO digital motion imagery standard. What the open integration layer implements is its metadata stream: the UAS Datalink Local Set, carried as key length value packets alongside the video. The imagery itself is neither decoded nor produced, and this page states that first because the standard's name invites the opposite assumption.
What STANAG 4609 is
STANAG 4609 promulgates a profile rather than a self-contained format. The profile delegates its field dictionaries to documents published by other bodies, chiefly the Motion Imagery Standards Board, so implementing it means implementing those documents and saying which ones.
The metadata a full motion video stream carries is the part that makes the imagery usable as intelligence: a precision time stamp, platform position and attitude, sensor pointing, frame centre coordinates, target locations and, where present, moving target indications detected within the frame.
The item dictionary in question defines 141 items. Any conformant reader is required to skip items it does not know without failing the packet, which is what makes a partial but honest implementation a valid one.
Why this matters to a commander
Motion imagery arrives at a command post as pictures, and pictures are not decision inputs until something states where the aircraft was, where the sensor was pointing and when.
Translating the metadata into the same canonical objects as radar, ADS-B and ground moving target reports lets an imagery derived observation be correlated with the rest of the picture without the imagery leaving its own pipeline.
Because the metadata is small and the video is not, a deployment can carry the decision relevant part of a full motion video feed across a link that could never carry the feed itself.
The exact behaviour, not a capability claim
Ingest takes one key length value metadata payload, being one or more Local Set packets, and produces an Entity and an Event per packet in wire order. The Entity is the platform.
The implemented item set is the set this repository has met on a pinned wire capture, plus a nested set item and the items demonstrated by the source document's own printed worked examples. That is 44 of the dictionary's 141 items, and every remaining row is recorded as not yet implemented in the published coverage document rather than left unstated.
An item outside the implemented set is not an error. Its octets are parked under an unknown items attribute and its tag number recorded, and the packet still translates, as the standard requires.
Nothing in the witnessed item set identifies an airframe, so the platform identifier is packet scoped and says so. Consecutive packets from one aircraft therefore receive different identifiers, and the cost is stated rather than hidden behind a fabricated continuity.
The precision time stamp is not UTC. The source document defines it against a time system based on the SI second with a fixed offset from atomic time, and the adapter applies the correction and leap second terms only when the packet carries them, recording which terms were available on every object.
This is the first binary format in the layer with a real integrity gate: the Local Set defines a mandatory checksum. A packet whose checksum fails is translated and flagged rather than refused, because discarding two dozen otherwise well formed items on a 16-bit disagreement destroys the evidence a consumer needs.
Egress reproduces a payload byte exactly for objects that came from this adapter, including the original octets of any item whose length diverged from the dictionary.
- 01Direction inOne KLV metadata payload of one or more UAS Datalink Local Set packets to an Entity and an Event per packet.
- 02Direction outObjects that came from this adapter to one byte exact payload, preserving length divergent items verbatim.
- 03Item coverage44 of the 141 dictionary items are read. Unread tags are parked verbatim and the packet still translates.
- 04Motion imageryOut of scope entirely. No video codec, no transport stream demultiplexer, no imagery is read or written.
- 05Integrity gateThe mandatory Local Set checksum, verified per packet. A failure is flagged on the object, not used to discard it.
Which way the data actually moves
Into the canonical model
- KLV metadata payloadUAS Datalink Local Set packets extracted from a stream by the caller.
- Entity and EventOne pair per packet, with the time basis and checksum verdict recorded.
Out of the canonical model
- Canonical objects from this adapterOnly objects this adapter produced.
- KLV metadata payloadByte exact reconstruction including divergent item octets.
Where this data is used
Imagery derived observations in the common picture
Platform position, sensor pointing and target locations become canonical objects that the ISR Fusion Agent can correlate with radar and ground moving target reports, while the video stays in the imagery chain.
Low bandwidth situational awareness
Where a link cannot carry full motion video, the metadata alone still states where the aircraft is and what it is looking at.
Provenance for an imagery based recommendation
Every object records which time terms were available and whether the packet checksum validated, so an assurance record can show the quality of the metadata behind a recommendation.
Every claim above has a file behind it
These paths are in the public repository, published under Apache 2.0. The adapter module for this page is stanag4609.
Source and fixtures
- Adapter sourcepackages/cdm/synapse_cdm/adapters/stanag4609.py
Both directions, the implemented item set rule and the time system treatment, argued in place.
- Fixturespackages/cdm/synapse_cdm/fixtures/klv/
Pinned stream, per-case packets and parsed twins, including checksum failure, zero length item and identifier edge cases.
- Field by field coveragepackages/cdm/synapse_cdm/FORMAT_COVERAGE.md
The STANAG 4609 row set, including every unimplemented item and the reason it is unimplemented.
Test evidence
- Harness testtests/test_cdm_stanag4609_adapter.py
Replayed by the validation harness shipped in the same package, which runs six checks per fixture including a never-drop lossless check.
- Framing testtests/test_cdm_klv_framing.py
Exercises key length value framing, including unknown tag skipping and length divergence.
Manifest-backed assurance
Maturity is declared in each generated adapter manifest and checked against suite eligibility. VERIFIED is a separate claim-status axis. Neither means external certification or integration with a named system.
stanag4609Maturity L4Claim VERIFIED
What these maturity levels mean
L3 means required provenance survives translation. L4 adds applicable roundtrip evidence. L5 would require every applicable public conformance gate to pass. L6 requires an independent real implementation or system and cannot be awarded from this repository's synthetic fixtures.
What is claimed, and what is not
The published adapter implements both translation directions: the format into the canonical data model, and the canonical data model back out to the format. Both directions are replayed by the validation harness against shipped fixtures.
Last reviewed against the published implementation on 2026-09-06.
Limitations
- No motion imagery is decoded, produced, transported or stored. Extracting the metadata from a transport stream is the caller's job.
- 97 of the dictionary's 141 items are not implemented, and each is listed as such in the published coverage document.
- Platform identity is packet scoped, so this adapter alone cannot express the continuity a real feed has.
- Leap second and correction terms are applied only when the packet carries them. No external leap second table is consulted.
- Frame centre and target location items are carried side by side and never reconciled with one another.
Security boundary
- Only the translation contract is published. No imagery, no mission data and no platform configuration appear in the repository.
- The pinned wire capture used to establish the implemented item set is carried in the repository as a fixture and is not operational material.
Public sources
Statements about what SynapseCommand® implements are drawn from the published repository rather than from these external sources.
Frequently asked
- Does SynapseCommand support STANAG 4609 video?
- No. What is implemented is the UAS Datalink Local Set metadata that accompanies a STANAG 4609 stream. No video is decoded, produced or transported by the published layer, and no claim to the contrary is made anywhere on this site.
- How many metadata items are implemented?
- 44 of the 141 items in the pinned dictionary. The set is limited to items met on a pinned wire capture plus those demonstrated by the source document's own worked examples, because an item never met on a wire could only be checked against a fixture written from the same reading of the same table.
- What happens to an item the adapter does not implement?
- Its octets are parked verbatim and its tag recorded, and the packet translates. The standard requires a decoder to skip unknown Local Set items without affecting the ones it does know.