NVIDIA Jetson Orin - H264 GStreamer Pipelines
This section presents GStreamer pipelines to capture from MIPI CSI-2 and USB cameras and encoding/decoding of video using the h.264 hardware codec of the Orin AGX. Key performance indicators are measured using three power profiles (operation modes). Check our GStreamer Pipelines section to find more information about how we extracted the performance metrics presented in this section.
H264 Encoding
MIPI CSI-2 Camera
The pipelines in this section used the IMX477 camera.
Encoding 1920x1080@30 and saving to file
The pipeline below can be used to capture, encode using the h.264 hardware codec, and store the video to file as an mp4 in the /tmp/filename.mp4 location. Table 1 shows the performance information for this pipeline.
FILE=/tmp/filename.mp4 gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1' ! nvv4l2h264enc ! h264parse ! qtmux ! filesink location=$FILE -e
Operation Mode | CPU (%) | GPU 1 (%) | GPU 2 (%) | FPS | latency (ms) |
---|---|---|---|---|---|
0 (max performance) | |||||
1 (min power) | |||||
2 (30W) |
USB Camera
The pipelines in this section used the LI-10635 USB camera.
Encoding 1280x720@30 and saving to file
The pipeline below can be used to capture, encode using the h.264 hardware codec, and store the video to file as an mp4 in the /tmp/filename.mp4 location. Table 2 shows the performance information for this pipeline.
FILE=/tmp/filename.mp4 gst-launch-1.0 v4l2src ! video/x-raw, width=1280, height=720, framerate=30/1 ! nvvidconv ! 'video/x-raw(memory:NVMM), format=NV12' ! nvv4l2h264enc bitrate=8000000 ! video/x-h264, stream-format=byte-stream ! h264parse ! qtmux ! filesink location=$FILE -e
Operation Mode | CPU% | GPU1% | GPU2% | FPS |
---|---|---|---|---|
0 (max performance) | 12.9 | 0.0 | 0.0 | 30.01 |
1 (min power) | 14.53 | 0.0 | 0.0 | 30.01 |
2 (30W) | 13.9 | 0.0 | 0.0 | 30.01 |
H264 Decoding
The pipeline below can be used to decode the videos recorded with both the MIPI CSI-2 and the USB cameras. Table 3 shows the performance of the 1280x720@30 video decoding and Table 4 shows the performance of the 1920x1080@30 video decoding.
FILE=/tmp/filename.mp4 gst-launch-1.0 filesrc location=$FILE ! qtdemux ! queue ! h264parse ! nvv4l2decoder ! nv3dsink -e
Operation Mode | CPU% | GPU1% | GPU2% | FPS |
---|---|---|---|---|
0 (max performance) | 19.17 | 34.93 | 35.3 | 31.84 |
1 (min power) | 35 | 16.27 | 59.33 | 31.75 |
2 (30W) | 26.23 | 12.37 | 56.67 | 31.54 |
Operation Mode | CPU (%) | GPU 1 (%) | GPU 2 (%) | FPS | latency (ms) |
---|---|---|---|---|---|
0 (max performance) | |||||
1 (min power) | |||||
2 (30W) |