VisioForge

SDK per metadati KLV / MISB per .NET

Leggi la telemetria KLV da MPEG-TS, decodifica gli elementi MISB ST 0601 e registra o ritrasmetti flussi MISB dal vivo mantenendo i metadati — da C# e .NET.

Cosa sono KLV e MISB

KLV (Key-Length-Value, SMPTE ST 336) è la codifica binaria che i sistemi UAV, ISR e di videosorveglianza usano per trasportare la telemetria accanto al video: marcatori temporali, posizione e orientamento di piattaforma e sensore, e geolocalizzazione del centro dell'inquadratura. MISB ST 0601 (UAS Datalink Local Set) definisce questi campi, e i flussi MISB / STANAG 4609 li trasportano come flusso di metadati separato all'interno di MPEG-TS.

Cosa fa l'SDK con i KLV

Due SDK VisioForge gestiscono i KLV: Media Blocks SDK lavora con i KLV nei file MPEG-TS su Windows, Linux e macOS, e Video Capture SDK porta i KLV dal vivo da una telecamera IP o da una sorgente UDP in una registrazione o in una ritrasmissione su Windows.

  • Estrazione: MPEGTSDemuxBlock espone il flusso di metadati di un file MPEG-TS sul pad MetadataOutput, e KLVFileSinkBlock scrive i pacchetti KLV in un file .klv
  • Decodifica: KLVParser legge gli elementi del local set MISB ST 0601 — più di 90, dal precision time stamp alle coordinate del sensore e del centro dell'inquadratura — e gestisce le lunghezze con codifica BER usate da MISB
  • Incorporamento (Media Blocks): MPEGTSSinkSettings.Metadata accetta un oggetto KLVMetadata creato da un file .klv o da un array di byte; viene multiplexato come un unico payload statico, non come traccia temporizzata per fotogramma
  • Registrare e ritrasmettere KLV dal vivo (Video Capture SDK, Windows): MPEGTSOutput.KLVEnabled multiplexa i KLV della sorgente nel file MPEG-TS, e FFMPEGEXEOutput.KLVEnabled li trasporta nelle uscite MPEG-TS, RTP MPEG-TS e HLS (per la registrazione su file, attiva anche UsePipe)
  • Leggere i pacchetti dal vivo: l'evento OnDataFrameBuffer consegna ogni pacchetto KLV con dimensione e marcatore temporale (DataFrameType.KLV)

Esempi di codice

Sintetizzati dalla KLV Demo e dall'esempio ip-camera-klv-mpegts-recorder.

Estrarre i KLV da un file MPEG-TS e decodificare MISB ST 0601

C#

Registrare un flusso MISB dal vivo in MPEG-TS con i KLV

C#

Pipeline

In Media Blocks SDK l'estrazione dei KLV richiede tre blocchi — sorgente file, demultiplexer MPEG-TS e sink di file KLV — e poi KLVParser decodifica il file .klv. I pad video e audio del demultiplexer possono alimentare contemporaneamente un renderer o un encoder.

BasicFileSourceBlock
MPEGTSDemuxBlock
KLVFileSinkBlock
KLVParser