VisioForge

KLV/MISB-Metadaten-SDK für .NET

KLV-Telemetrie aus MPEG-TS auslesen, MISB-ST-0601-Elemente dekodieren und Live-MISB-Feeds samt Metadaten aufzeichnen oder weiterstreamen — mit C# und .NET.

Was KLV und MISB sind

KLV (Key-Length-Value, SMPTE ST 336) ist die binäre Kodierung, mit der UAV-, ISR- und Überwachungssysteme Telemetrie neben dem Video übertragen: Zeitstempel, Position und Ausrichtung von Plattform und Sensor sowie die Geoposition der Bildmitte. MISB ST 0601 (UAS Datalink Local Set) definiert diese Felder, und MISB-/STANAG-4609-Streams transportieren sie als eigenen Metadatenstream innerhalb von MPEG-TS.

Was das SDK mit KLV macht

Zwei VisioForge-SDKs verarbeiten KLV: Das Media Blocks SDK arbeitet mit KLV in MPEG-TS-Dateien unter Windows, Linux und macOS, und das Video Capture SDK übernimmt Live-KLV von einer IP-Kamera oder UDP-Quelle unter Windows in eine Aufnahme oder einen Restream.

  • Extrahieren: MPEGTSDemuxBlock stellt den Metadatenstream einer MPEG-TS-Datei am Pad MetadataOutput bereit, und KLVFileSinkBlock schreibt die KLV-Pakete in eine .klv-Datei
  • Dekodieren: KLVParser liest Elemente des MISB-ST-0601-Local-Sets — mehr als 90, vom Precision Time Stamp bis zu den Koordinaten von Sensor und Bildmitte — und verarbeitet die BER-kodierten Längen von MISB
  • Einbetten (Media Blocks): MPEGTSSinkSettings.Metadata nimmt ein KLVMetadata-Objekt aus einer .klv-Datei oder einem Byte-Array an; es wird als einzelne statische Nutzlast gemuxt, nicht als zeitgestempelte Spur pro Frame
  • Live-KLV aufzeichnen und weiterstreamen (Video Capture SDK, Windows): MPEGTSOutput.KLVEnabled muxt das KLV der Quelle in die MPEG-TS-Datei, und FFMPEGEXEOutput.KLVEnabled überträgt es in MPEG-TS-, RTP-MPEG-TS- und HLS-Ausgaben (für die Aufnahme in eine Datei zusätzlich UsePipe setzen)
  • Live-Pakete lesen: Das Ereignis OnDataFrameBuffer liefert jedes KLV-Paket mit Größe und Zeitstempel (DataFrameType.KLV)

Codebeispiele

Gekürzt aus der KLV Demo und dem Beispiel ip-camera-klv-mpegts-recorder.

KLV aus einer MPEG-TS-Datei extrahieren und MISB ST 0601 dekodieren

C#

Einen Live-MISB-Feed mit KLV als MPEG-TS aufzeichnen

C#

Pipeline

Im Media Blocks SDK besteht die KLV-Extraktion aus drei Blöcken — Dateiquelle, MPEG-TS-Demuxer und KLV-Datei-Sink —, anschließend dekodiert KLVParser die .klv-Datei. Die Video- und Audio-Pads des Demuxers können gleichzeitig einen Renderer oder Encoder versorgen.

BasicFileSourceBlock
MPEGTSDemuxBlock
KLVFileSinkBlock
KLVParser

Mit KLV loslegen

Laden Sie die voll funktionsfähige 30-Tage-Testversion herunter und starten Sie die KLV-Beispiele. Je nach Engine und Ausgabe kann ein Wasserzeichen oder ein Hinweis auf die nicht registrierte Version erscheinen.

SDKs mit KLV-Unterstützung