NVIDIA Jetson AGX Thor - H265 GStreamer Pipelines

From RidgeRun Developer Wiki

Follow Us On Twitter LinkedIn Email Share this page





Previous: GStreamer_Pipelines/H264 Index Next: Holoscan









GStreamer Pipelines using H265

This section presents GStreamer pipelines to capture from MIPI CSI-2 and USB cameras and encoding/decoding of video using the H.265 hardware codec of the AGX Thor. Key performance indicators are measured using two power profiles (operation modes). Check our GStreamer Pipelines section to find more information about how we extracted the performance metrics presented in this section.

H265 Encoding

MIPI CSI-2 Camera

The pipelines in this section used the Framos IMX676 Sensor . For reference the testing used the following variables.

FILE=/tmp/filename.mp4
WIDTH=3552
HEIGHT=3556
FRAMERATE=64/1
FORMAT=NV12

Encoding with nvv4l2h265enc and saving to file

The pipeline below can be used to capture, encode using the H.265 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.

gst-launch-1.0 nvarguscamerasrc video/x-raw, width=$WIDTH, height=$HEIGHT, framerate=$FRAMERATE ! nvvidconv ! 'video/x-raw(memory:NVMM), format=$FORMAT' ! nvv4l2h265enc ! h265parse ! qtmux ! filesink location=$FILE -e
Table 1: Performance of pipeline with nvv4l2h265enc
Operation Mode CPU (%) GPU 1 (%) GPU 2 (%) FPS latency (ms)
0 (max performance)
1 (Default Mode)

Encoding with nvautogpuh265enc and saving to file

The pipeline below can be used to capture, encode using the H.265 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.

gst-launch-1.0 nvarguscamerasrc video/x-raw, width=$WIDTH, height=$HEIGHT, framerate=$FRAMERATE ! nvvidconv ! 'video/x-raw(memory:NVMM), format=$FORMAT' ! nvv4l2h265enc ! h265parse ! qtmux ! filesink location=$FILE -e
Table 2: Performance of pipeline with nvv4l2h265enc
Operation Mode CPU (%) GPU 1 (%) GPU 2 (%) FPS latency (ms)
0 (max performance)
1 (Default Mode)

Encoding with nvh265enc and saving to file

The pipeline below can be used to capture, encode using the H.265 hardware codec, and store the video to file as an mp4 in the /tmp/filename.mp4 location. Table 3 shows the performance information for this pipeline.

gst-launch-1.0 nvarguscamerasrc video/x-raw, width=$WIDTH, height=$HEIGHT, framerate=$FRAMERATE ! nvvidconv ! 'video/x-raw(memory:NVMM), format=$FORMAT' ! nvv4l2h265enc ! h265parse ! qtmux ! filesink location=$FILE -e
Table 3: Performance of pipeline with nvv4l2h265enc
Operation Mode CPU (%) GPU 1 (%) GPU 2 (%) FPS latency (ms)
0 (max performance)
1 (Default Mode)

USB Camera

The pipelines in this section used the LI-10635 USB camera.

For reference the testing used the following variables.

FILE=/tmp/filename.mp4
WIDTH=3840
HEIGHT=2160
FRAMERATE=30/1
FORMAT=NV12

Encoding with nvv4l22h265enc and saving to file

The pipeline below can be used to capture, encode using the h.265 hardware codec, and store the video to file as an mp4 in the /tmp/filename.mp4 location. Table 4 shows the performance information for this pipeline.

gst-launch-1.0 v4l2src ! video/x-raw, width=$WIDTH, height=$HEIGHT, framerate=$FRAMERATE ! nvvidconv ! 'video/x-raw(memory:NVMM), format=$FORMAT' ! nvv4l2h265enc bitrate=8000000 ! video/x-h265, stream-format=byte-stream ! h265parse ! qtmux ! filesink location=$FILE -e


Table 4: Performance of pipeline with nvv4l2h265enc
Operation Mode CPU% GPU1% GPU2% FPS
0 (max performance)
1 (Default Mode)

Encoding with nvautogpuh265enc and saving to file

The pipeline below can be used to capture, encode using the h.265 hardware codec, and store the video to file as an mp4 in the /tmp/filename.mp4 location. Table 5 shows the performance information for this pipeline.

gst-launch-1.0 v4l2src ! video/x-raw, width=$WIDTH, height=$HEIGHT, framerate=$FRAMERATE ! nvvidconv ! 'video/x-raw(memory:NVMM), format=$FORMAT' ! nvv4l2h265enc bitrate=8000000 ! video/x-h265, stream-format=byte-stream ! h265parse ! qtmux ! filesink location=$FILE -e
Table 5: Performance of pipeline with nvv4l2h265enc
Operation Mode CPU% GPU1% GPU2% FPS
0 (max performance)
1 (Default Mode)

Encoding with nvh265enc and saving to file

The pipeline below can be used to capture, encode using the h.265 hardware codec, and store the video to file as an mp4 in the /tmp/filename.mp4 location. Table 6 shows the performance information for this pipeline.

gst-launch-1.0 v4l2src ! video/x-raw, width=$WIDTH, height=$HEIGHT, framerate=$FRAMERATE ! nvvidconv ! 'video/x-raw(memory:NVMM), format=$FORMAT' ! nvv4l2h265enc bitrate=8000000 ! video/x-h265, stream-format=byte-stream ! h265parse ! qtmux ! filesink location=$FILE -e
Table 6: Performance of pipeline with nvv4l2h265enc
Operation Mode CPU% GPU1% GPU2% FPS
0 (max performance)
1 (Default Mode)

H265 Decoding

The pipeline below can be used to decode the videos recorded with both the MIPI CSI-2 and the USB cameras.

gst-launch-1.0 filesrc location=$FILE ! qtdemux ! queue ! h265parse ! nvv4l2decoder ! nv3dsink -e
Table 7: Performance of the pipeline decoding video
Operation Mode CPU% GPU1% GPU2% FPS
0 (max performance)
1 (Default Mode)
Table 8: Performance of the pipeline decoding video
Operation Mode CPU (%) GPU 1 (%) GPU 2 (%) FPS latency (ms)
0 (max performance)
1 (min power)



Previous: GStreamer_Pipelines/H264 Index Next: Holoscan