GStreamer In-Band Metadata for MPEG Transport Stream - FAQ

From RidgeRun Developer Connection
Jump to: navigation, search


Previous: Examples/ C/C++ Index Next: Contact_Us





Frequently Asked Questions


1. Does GstMetadata support the following standards: H.265, MPEG-2 TS, and MISB standard definitions?

The H.265 compress protocol and the MPEG-2 TS container are supported. The plugin is format agnostic and it will inject the metadata to the MUX without considering formats. If a specific standard and tags are required to be supported, the metadata should be encoded or pre-processed before entering to the plugin. So it would probably work properly under these case scenarios.

2. What plugins are supplied as part of "GStreamer In-Band Metadata for MPEG Transport Stream"?

The main parts of the product are the following:

  • metasrc: a plugin to inject metadata to a buffer.
  • metasink: a plugin which reads the metadata from a buffer and dumps it in the CLI.
  • mpegtsmux/mpegtsdemux patches: These patches add synchronous and asynchronous metadata support for the muxer and the demuxer.

3. GStreamer provides a built-in mpegtsmux and mpegtsdemux plugins. What other features the GstMetadata plugin supports regarding synchronization?

For further information about how the plugins work synchronously and asynchronously, you could check the following document:
MPEG-2 Transport of Compressed Motion Imagery and Metadata

4. In the examples of metasrc it is shown reading data from a file in order to inject it in the video stream, does metasrc plugin support reading data from UDP? If so, does it provide a period property?

The metasrc plugin has a property called metadata-binary, which you can use to inject metadata from an application whenever you want without considering the metadata source.
So you could use that property to inject metadata from UDP. As a summary, the metasrc plugin injects the metadata passed via the metadata-binary property to a GStreamer buffer and then the metadata is placed on the proper pad of the mux.

5. What other interfaces/properties does metasrc has besides a filesrc?

The metasrc plugin provides the following features:

  • A signal.
  • The metadata-binary property, which can be used from an application only.
  • The metadata property, which can be used from gst-launch.
  • The meta-period property, which defines the frequency of sending metadata.

However, the metasrc plugin is not the only mean to inject metadata.
For example, in case an udpsrc provides packaged metadata, you could use a simple pipeline such as: udpsrc ! rtpklvdepay ! meta/x-klv ! mpegtsmux, and using rtpklvpay in the receiver endpoint.

6. In case I want to inject different keys at different rates does it mean that I use multiple metasrc?

It depends on your use case. You might not even require the metasrc element since you can use the patched mpegtsmux and mpegtsdemux plugins in your pipeline instead.
Those modified plugins should do the job even when different rates are used.
The metasrc and metasink plugins are mainly used to run examples.

7. I am interested in your services to review our software design and support.

Please consider the following aspects:


Previous: Examples/ C/C++ Index Next: Contact_Us