VisioForge

SDK de metadatos KLV / MISB para .NET

Lea la telemetría KLV de MPEG-TS, decodifique los elementos de MISB ST 0601 y grabe o retransmita señales MISB en directo sin perder los metadatos, desde C# y .NET.

Qué son KLV y MISB

KLV (Key-Length-Value, SMPTE ST 336) es la codificación binaria que usan los sistemas de UAV, ISR y vigilancia para transportar telemetría junto al vídeo: marcas de tiempo, posición y orientación de la plataforma y del sensor, y la geolocalización del centro del fotograma. MISB ST 0601 (UAS Datalink Local Set) define esos campos, y los flujos MISB / STANAG 4609 los transportan como un flujo de metadatos independiente dentro de MPEG-TS.

Qué hace el SDK con KLV

Dos SDK de VisioForge trabajan con KLV: Media Blocks SDK maneja KLV en archivos MPEG-TS en Windows, Linux y macOS, y Video Capture SDK pasa el KLV en directo de una cámara IP o una fuente UDP a una grabación o una retransmisión en Windows.

  • Extraer: MPEGTSDemuxBlock expone el flujo de metadatos de un archivo MPEG-TS en su pad MetadataOutput, y KLVFileSinkBlock escribe los paquetes KLV en un archivo .klv
  • Decodificar: KLVParser lee los elementos del local set de MISB ST 0601 —más de 90, desde la marca de tiempo de precisión hasta las coordenadas del sensor y del centro del fotograma— y gestiona las longitudes con codificación BER que usa MISB
  • Incrustar (Media Blocks): MPEGTSSinkSettings.Metadata acepta un objeto KLVMetadata creado a partir de un archivo .klv o de un array de bytes; se multiplexa como una única carga estática, no como una pista temporizada por fotograma
  • Grabar y retransmitir KLV en directo (Video Capture SDK, Windows): MPEGTSOutput.KLVEnabled multiplexa el KLV de la fuente en el archivo MPEG-TS, y FFMPEGEXEOutput.KLVEnabled lo transporta en salidas MPEG-TS, RTP MPEG-TS y HLS (para grabar en archivo, active también UsePipe)
  • Leer paquetes en directo: el evento OnDataFrameBuffer entrega cada paquete KLV con su tamaño y su marca de tiempo (DataFrameType.KLV)

Ejemplos de código

Resumidos de KLV Demo y del ejemplo ip-camera-klv-mpegts-recorder.

Extraer KLV de un archivo MPEG-TS y decodificar MISB ST 0601

C#

Grabar una señal MISB en directo en MPEG-TS con KLV

C#

Pipeline

En Media Blocks SDK, la extracción de KLV son tres bloques —fuente de archivo, demultiplexor MPEG-TS y sink de archivo KLV— y después KLVParser decodifica el archivo .klv. Los pads de vídeo y audio del demultiplexor pueden alimentar a la vez un renderizador o un codificador.

BasicFileSourceBlock
MPEGTSDemuxBlock
KLVFileSinkBlock
KLVParser