GStreamer In-Band Metadata for MPEG Transport Stream - Performance
Appearance
| GStreamer In-Band Metadata for MPEG Transport Stream |
|---|
| MPEG TS Metadata Basics |
| Getting Started |
| User Guide |
| Examples |
| Performance |
| FAQ |
| Contact Us |
NXP i.MX95 Platform
Benchmark environment
The following setup was used for all the benchmarks:
- Verdin NXP i.MX95
- Toradex manifest with BSP version 7
Instruments:
- CPU:
topcommand - RAM:
topcommand - GstPERF: perf plugin
Replicate the Results
The following pipelines were used to measure the performance.
H264 Metadata
gst-launch-1.0 metasrc metadata=%T period=1000 ! meta/x-klv,parsed=true,stream_type=21 ! perf print-cpu-load=true ! queue ! mpegtsmux name=mux ! filesink location=meta.ts v4l2src device=/dev/video6 ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1 ! queue ! v4l2h264enc ! h264parse ! mux.
H265 Metadata
gst-launch-1.0 metasrc metadata=%T period=1000 ! meta/x-klv,parsed=true,stream_type=21 ! perf print-cpu-load=true ! queue ! mpegtsmux name=mux ! filesink location=meta.ts v4l2src device=/dev/video6 ! video/x-raw,format=YUY2,width=1920,height=1080,framerate=30/1 ! queue ! v4l2h265enc ! h265parse ! mux.
Simple Metadata
gst-launch-1.0 metasrc metadata=The_current_time_is:%T period=1000 ! 'meta/x-klv' ! perf print-cpu-load=true ! filesink sync=false async=true location=meta.txt
Results
The following images show the average values of usage, respectively.
CPU Usage



RAM Usage

Framerate
The following graph shows exactly when the metadata was injected, in this case at one second.

Summary
The following table summarize the results.
| Pipeline | CPU (%) | RAM (MB) | RAM (%) |
|---|---|---|---|
| Simple | 0.167 | 8.176 | 0.110 |
| H264 | 16.853 | 13.511 | 0.177 |
| H265 | 17.141 | 14.425 | 0.188 |