I open-sourced a GStreamer plugin suite for KLV metadata workflows

Published: (March 31, 2026 at 09:43 AM EDT)
2 min read
Source: Dev.to

Source: Dev.to

Cover image for I open-sourced a GStreamer plugin suite for KLV metadata workflows

I recently open‑sourced a GStreamer plugin suite for practical KLV metadata workflows in MPEG‑TS pipelines.

Screenshot of the plugin suite in action

What the project includes

The current plugin suite provides four main elements:

  • klvmetaenc: converts JSON into meta/x-klv
  • klvmetadec: converts meta/x-klv back into JSON
  • klvframeinject: injects KLV metadata in sync with H.264 / H.265 video frames
  • tspmtrewrite: rewrites MPEG‑TS PMT tables for KLVA metadata signaling

Technical scope

The implementation targets workflows related to:

  • SMPTE ST 336 KLV
  • MISB ST 0601.8 UAS Datalink Local Set
  • STANAG 4609‑style transport pipelines
  • MPEG‑TS metadata signaling aligned with MISB ST 1402 workflows

Why I built it

In many practical systems, metadata handling does not stop at parsing or serializing a payload. It also needs to be transported correctly, synchronized with video, and integrated in a way that is usable in real pipelines.
The goal of this project was to provide a modular GStreamer‑oriented solution that covers that full path, from metadata generation and decoding to frame‑synchronous injection and transport‑stream signaling.

Tooling and repository contents

The repository includes more than just the plugin implementation. It also provides:

  • Meson as the recommended build system
  • CMake support as an alternative build path
  • Python and C++ examples
  • Local round‑trip examples
  • UDP and SRT workflow examples
  • Automated tests
  • Docker support
  • Installation and packaging documentation
  • Design notes and implementation details

Current elements

  • klvmetaenc
  • klvmetadec
  • klvframeinject
  • tspmtrewrite

Typical use cases

This plugin suite can be useful in scenarios such as:

  • Video pipelines carrying synchronized metadata
  • MPEG‑TS workflows requiring embedded KLV
  • ISR/UAS‑style metadata transport
  • Experimentation with GStreamer metadata integration
  • Interoperability testing with downstream systems and external analyzers

Open‑source repository

You can find the project here:
https://github.com/mkassimi98/gstklvplugin

I also shared a short overview on LinkedIn:
https://www.linkedin.com/posts/mouhsine-kassimi-farhaoui-983738163_opensource-gstreamer-klv-activity-7441931945174978560-mxpJ

Feedback welcome

Feedback is very welcome, especially regarding:

  • Element and API design
  • Caps and negotiation choices
  • MPEG‑TS metadata signaling approach
  • Interoperability expectations
  • General improvements for robustness and maintainability

If you are working on GStreamer, KLV, MPEG‑TS, or metadata transport workflows, I would be glad to hear your thoughts.

0 views
Back to Blog

Related posts

Read more »