Jump to content

GStreamer In-Band Metadata for MPEG Transport Stream - FAQ

From RidgeRun Developer Wiki


Previous: Examples/RTSP_stream_with_metadata 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 compression 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 that 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 built-in mpegtsmux and mpegtsdemux plugins. What other features does the GstMetadata plugin support 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 the 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 means 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. How do I know which of RidgeRun's metadata solutions is the one I need?

You can refer to our Metadata Solutions blog, which should provide a better understanding of what should be the best match based on your requirements.

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

Please consider the following aspects:


Previous: Examples/RTSP_stream_with_metadata Index Next: Contact_Us



FAQ

Does GstMetadata support H.265, MPEG-2 TS, and MISB standard definitions?
GstMetadata supports the H.265 compression format and the MPEG-2 Transport Stream container. The plugin is format agnostic and injects metadata into the mux without interpreting its internal structure. If a specific MISB standard or tag set is required, the metadata must be encoded or pre-processed before it is passed to the plugin.
What plugins are included in GStreamer In-Band Metadata for MPEG Transport Stream?
The main components are metasrc, which injects metadata into the pipeline; metasink, which reads and dumps metadata; and patches for mpegtsmux and mpegtsdemux that add synchronous and asynchronous metadata support.
What extra synchronization features does GstMetadata provide beyond the built-in mpegtsmux and mpegtsdemux plugins?
GstMetadata adds support for synchronous and asynchronous metadata workflows in MPEG Transport Stream pipelines. This makes it possible to align metadata more precisely with video timing requirements, including workflows based on motion imagery standards.
Can metasrc read metadata from UDP sources?
metasrc does not directly depend on a specific transport source such as UDP. Instead, applications can inject metadata at any time through the metadata-binary property. This makes it possible to receive metadata from UDP in an application and then pass it into the pipeline through metasrc.
What interfaces and properties does metasrc provide?
metasrc provides a signal, a metadata-binary property for binary metadata injection from applications, a metadata property for string-based injection such as gst-launch examples, and a period property to control how often metadata is sent.
Do I need multiple metasrc elements to inject different metadata keys at different rates?
Not necessarily. Depending on the use case, you may not need metasrc at all, since the patched mpegtsmux and mpegtsdemux elements can handle metadata flows directly. metasrc and metasink are mainly convenience elements for examples and application integration.
How do I know which RidgeRun metadata solution I need?
The best metadata solution depends on your transport protocol, synchronization requirements, and application design. RidgeRun’s metadata solution comparison materials can help determine whether MPEG-TS in-band metadata is the right fit for your use case.
How can I contact RidgeRun for support or services?
If you need design review, integration support, or professional services, please refer to RidgeRun Hiring Process and RidgeRun Professional Services. You can also contact RidgeRun through the contact page for direct inquiries.
Cookies help us deliver our services. By using our services, you agree to our use of cookies.