GStreamer In-Band Metadata for MPEG Transport Stream - Performance
| GStreamer In-Band Metadata for MPEG Transport Stream |
|---|
| MPEG TS Metadata Basics |
| Getting Started |
| User Guide |
| Examples |
| Performance |
| FAQ |
| Contact Us |
Qualcomm Dragonwing 9075 EVK Platform
Benchmark environment
The following setup was used for all the benchmarks:
Instruments:
- GstPERF: perf plugin
Replicate the Results
The following pipelines were used to measure the performance.
For each pipeline the following periods in milliseconds of injecting data were tested.
METADATA_PERIODS=(
33
20
16
10
)Additionally the following frequencies were tested for each period.
FRAMERATES=(
30
60
90
120
)
H264 Metadata
gst-launch-1.0 metasrc metadata=%T period=$PERIOD ! meta/x-klv,parsed=true,stream_type=21 ! perf print-cpu-load=true ! queue ! mpegtsmux name=mux ! filesink location=meta.ts videotestsrc is-live=true ! video/x-raw,format=NV12,width=1920,height=1080,framerate=$FRAMERATE ! queue ! v4l2h264enc ! h264parse ! mux.
Simple Metadata
gst-launch-1.0 metasrc metadata=The_current_time_is:%T period=$PERIOD ! 'meta/x-klv' ! perf print-cpu-load=true ! filesink sync=false async=true location=meta.txt
Framerate
The following table shows the maximum framerate and corresponding period for which the performance error remains below 5% of the expected framerate.
| Framerate | Minimum Period for Metadata |
|---|---|
| 30 | 10 ms |
| 60 | 10 ms |
| 90 | 10 ms |
| 120 | 10 ms |
Metadata size
The following table shows the maximum recommended metadata size for which the performance error remains below 5% of the expected framerate.
| Framerate | Maximum recommended metadata size |
|---|---|
| 30 | 126 KB |
| 60 | 126 KB |
| 90 | 126 KB |
| 120 | 126 KB |
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

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 |