Orin NX hardware encoder gstreamer elements?

I understand that the Orin Nano doesn’t have hardware encoders, so the nvvideo4linux2 plugin doesn’t have nvv4l2h265enc. But it looks like the same nvidia-l4t-gstreamer package is installed when I flash an Orin NX 16GB, so I can’t use the hardware encoder in my pipelines even though the SoC has it.

Is there a different package that has the accelerated gstreamer elements for Orin NX?

Hi,
Do you use Jetpack 5.1.3? If you flash the system and install SDK Components through SDKManager, the hardware encoders should be present.

I need to flash using L4T for custom kernel, device trees, and pinmuxing because I’m using a custom carrier. Is it possible to get the stuff installed without flashing?

Hi,
Do you customize the kernel based on Jetpack 5.1.3? For using custom board, you can flash the board through initrd command, and the plugins shall be present after booting.

I used L4T 35.5.0, and I followed the instructions from this page: Quick Start — Jetson Linux Developer Guide documentation

First I unpacked the BSP and sample sample rootfs and updated the sample rootfs with Nvidia binaries.

tar xf ${L4T_RELEASE_PACKAGE}
sudo tar xpf ${SAMPLE_FS_PACKAGE} -C Linux_for_Tegra/rootfs/
cd Linux_for_Tegra/
sudo ./apply_binaries.sh
sudo ./tools/l4t_flash_prerequisites.sh

Then I unpacked the kernel, made my changes, compiled, and installed the products into the kernel and bootloader BSP directories.

Finally, I flashed the board:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-orin-nano-devkit internal

The nvvideo4linux2 plugin is installed and I can use nvarguscamerasrc and nvvidconv, but nvv4l2h264enc is not there, nor any of the other hardware video encoders.

Here is the list of Nvidia packages installed:

$ dpkg -l 'nv*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                             Version                              Architecture Description
+++-================================-====================================-============-=====================================================
un  nvidia-common                    <none>                               <none>       (no description available)
ii  nvidia-l4t-3d-core               35.5.0-20240219203809                arm64        NVIDIA GL EGL Package
ii  nvidia-l4t-apt-source            35.5.0-20240219203809                arm64        NVIDIA L4T apt source list debian package
ii  nvidia-l4t-bootloader            35.5.0-20240219203809                arm64        NVIDIA Bootloader Package
ii  nvidia-l4t-camera                35.5.0-20240219203809                arm64        NVIDIA Camera Package
un  nvidia-l4t-ccp-t186ref           <none>                               <none>       (no description available)
ii  nvidia-l4t-configs               35.5.0-20240219203809                arm64        NVIDIA configs debian package
ii  nvidia-l4t-core                  35.5.0-20240219203809                arm64        NVIDIA Core Package
ii  nvidia-l4t-cuda                  35.5.0-20240219203809                arm64        NVIDIA CUDA Package
ii  nvidia-l4t-display-kernel        5.10.192-tegra-35.5.0-20240219203809 arm64        NVIDIA Display Kernel Modules Package
ii  nvidia-l4t-firmware              35.5.0-20240219203809                arm64        NVIDIA Firmware Package
ii  nvidia-l4t-gbm                   35.5.0-20240219203809                arm64        NVIDIA GBM Package
ii  nvidia-l4t-graphics-demos        35.5.0-20240219203809                arm64        NVIDIA graphics demo applications
ii  nvidia-l4t-gstreamer             35.5.0-20240219203809                arm64        NVIDIA GST Application files
ii  nvidia-l4t-init                  35.5.0-20240219203809                arm64        NVIDIA Init debian package
ii  nvidia-l4t-initrd                35.5.0-20240219203809                arm64        NVIDIA initrd debian package
ii  nvidia-l4t-jetson-io             35.5.0-20240219203809                arm64        NVIDIA Jetson.IO debian package
ii  nvidia-l4t-jetsonpower-gui-tools 35.5.0-20240219203809                arm64        NVIDIA Jetson Power GUI Tools debian package
ii  nvidia-l4t-kernel                5.10.192-tegra-35.5.0-20240219203809 arm64        NVIDIA Kernel Package
ii  nvidia-l4t-kernel-dtbs           5.10.192-tegra-35.5.0-20240219203809 arm64        NVIDIA Kernel DTB Package
ii  nvidia-l4t-kernel-headers        5.10.192-tegra-35.5.0-20240219203809 arm64        NVIDIA Linux Tegra Kernel Headers Package
ii  nvidia-l4t-libvulkan             35.5.0-20240219203809                arm64        NVIDIA Vulkan Loader Package
ii  nvidia-l4t-multimedia            35.5.0-20240219203809                arm64        NVIDIA Multimedia Package
ii  nvidia-l4t-multimedia-utils      35.5.0-20240219203809                arm64        NVIDIA Multimedia Package
ii  nvidia-l4t-nvfancontrol          35.5.0-20240219203809                arm64        NVIDIA Nvfancontrol debian package
ii  nvidia-l4t-nvpmodel              35.5.0-20240219203809                arm64        NVIDIA Nvpmodel debian package
ii  nvidia-l4t-nvpmodel-gui-tools    35.5.0-20240219203809                arm64        NVIDIA Nvpmodel GUI Tools debian package
ii  nvidia-l4t-nvsci                 35.5.0-20240219203809                arm64        NVIDIA NvSci Package
ii  nvidia-l4t-oem-config            35.5.0-20240219203809                arm64        NVIDIA OEM-Config Package
ii  nvidia-l4t-openwfd               35.5.0-20240219203809                arm64        NVIDIA OpenWFD Package
ii  nvidia-l4t-optee                 35.5.0-20240219203809                arm64        OP-TEE userspace daemons, test programs and libraries
ii  nvidia-l4t-pva                   35.5.0-20240219203809                arm64        NVIDIA PVA Package
ii  nvidia-l4t-tools                 35.5.0-20240219203809                arm64        NVIDIA Public Test Tools Package
ii  nvidia-l4t-vulkan-sc             35.5.0-20240219203809                arm64        NVIDIA Vulkan SC run-time package
ii  nvidia-l4t-vulkan-sc-dev         35.5.0-20240219203809                arm64        NVIDIA Vulkan SC Dev package
ii  nvidia-l4t-vulkan-sc-samples     35.5.0-20240219203809                arm64        NVIDIA Vulkan SC samples package
ii  nvidia-l4t-vulkan-sc-sdk         35.5.0-20240219203809                arm64        NVIDIA Vulkan SC SDK package
ii  nvidia-l4t-wayland               35.5.0-20240219203809                arm64        NVIDIA Wayland Package
ii  nvidia-l4t-weston                35.5.0-20240219203809                arm64        NVIDIA Weston Package
ii  nvidia-l4t-x11                   35.5.0-20240219203809                arm64        NVIDIA X11 Package
ii  nvidia-l4t-xusb-firmware         35.5.0-20240219203809                arm64        NVIDIA USB Firmware Package
un  nvidia-libopencl1-dev            <none>                               <none>       (no description available)
un  nvidia-prime                     <none>                               <none>       (no description available)

And the available Nvidia GStreamer elements:

$ gst-inspect-1.0 | grep '^nv'
nvjpeg:  nvjpegdec: JPEG image decoder
nvjpeg:  nvjpegenc: JPEG image encoder
nvtee:  nvtee: NvTee
nvegltransform:  nvegltransform: NvEGLTransform
nvarguscamerasrc:  nvarguscamerasrc: NvArgusCameraSrc
nvvidconv:  nvvidconv: NvVidConv Plugin
nvdrmvideosink:  nvdrmvideosink: Nvidia Drm Video Sink
nvvideosink:  nvvideosink: nVidia Video Sink
nvivafilter:  nvivafilter: NvIVAFilter Plugin
nvvideosinks:  nv3dsink: Nvidia 3D sink
nvcompositor:  nvcompositor: NvCompositor
nveglstreamsrc:  nveglstreamsrc: nVidia EGL Stream
nvvideo4linux2:  nvv4l2decoder: NVIDIA v4l2 video decoder
nvv4l2camerasrc:  nvv4l2camerasrc: NvV4l2CameraSrc
nveglglessink:  nveglglessink: EGL/GLES vout Sink

Also, here’s the list of installed gstreamer packages:

$ dpkg -l '*gst*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                   Version               Architecture Description
+++-======================================-=====================-============-=========================================================================
ii  gir1.2-clutter-gst-3.0:arm64           3.0.27-1              arm64        Gobject introspection data for Clutter GStreamer elements
un  gir1.2-cluttergst-3.0                  <none>                <none>       (no description available)
ii  gir1.2-gst-plugins-bad-1.0:arm64       1.16.3-0ubuntu1.1     arm64        GObject introspection data for the GStreamer libraries from the "bad" set
ii  gir1.2-gst-plugins-base-1.0:arm64      1.16.3-0ubuntu1.2     arm64        GObject introspection data for the GStreamer Plugins Base library
ii  gir1.2-gst-rtsp-server-1.0:arm64       1.16.2-3              arm64        GObject introspection data for the GStreamer RTSP Server
ii  gir1.2-gstreamer-1.0:arm64             1.16.3-0ubuntu1.1     arm64        GObject introspection data for the GStreamer library
un  gstreamer0.10-packagekit               <none>                <none>       (no description available)
un  gstreamer0.10-plugins-base             <none>                <none>       (no description available)
ii  gstreamer1.0-alsa:arm64                1.16.3-0ubuntu1.2     arm64        GStreamer plugin for ALSA
un  gstreamer1.0-audiosink                 <none>                <none>       (no description available)
un  gstreamer1.0-audiosource               <none>                <none>       (no description available)
ii  gstreamer1.0-clutter-3.0:arm64         3.0.27-1              arm64        Clutter PLugin for GStreamer 1.0
ii  gstreamer1.0-doc                       1.16.3-0ubuntu1.1     all          GStreamer core documentation and manuals
ii  gstreamer1.0-gl:arm64                  1.16.3-0ubuntu1.2     arm64        GStreamer plugins for GL
ii  gstreamer1.0-gtk3:arm64                1.16.3-0ubuntu1.2     arm64        GStreamer plugin for GTK+3
ii  gstreamer1.0-libav:arm64               1.16.2-2              arm64        ffmpeg plugin for GStreamer
ii  gstreamer1.0-packagekit                1.1.13-2ubuntu1.1     arm64        GStreamer plugin to install codecs using PackageKit
ii  gstreamer1.0-plugins-bad:arm64         1.16.3-0ubuntu1.1     arm64        GStreamer plugins from the "bad" set
un  gstreamer1.0-plugins-bad-faad          <none>                <none>       (no description available)
un  gstreamer1.0-plugins-bad-videoparsers  <none>                <none>       (no description available)
ii  gstreamer1.0-plugins-base:arm64        1.16.3-0ubuntu1.2     arm64        GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-base-apps         1.16.3-0ubuntu1.2     arm64        GStreamer helper programs from the "base" set
ii  gstreamer1.0-plugins-base-doc          1.16.3-0ubuntu1.2     all          GStreamer documentation for plugins from the "base" set
ii  gstreamer1.0-plugins-good:arm64        1.16.3-0ubuntu1.2     arm64        GStreamer plugins from the "good" set
ii  gstreamer1.0-plugins-ugly:arm64        1.16.2-2build1        arm64        GStreamer plugins from the "ugly" set
un  gstreamer1.0-plugins-ugly-amr          <none>                <none>       (no description available)
ii  gstreamer1.0-pulseaudio:arm64          1.16.3-0ubuntu1.2     arm64        GStreamer plugin for PulseAudio
ii  gstreamer1.0-tools                     1.16.3-0ubuntu1.1     arm64        Tools for use with GStreamer
un  gstreamer1.0-videosink                 <none>                <none>       (no description available)
un  gstreamer1.0-videosource               <none>                <none>       (no description available)
un  gstreamer1.0-visualization             <none>                <none>       (no description available)
ii  gstreamer1.0-x:arm64                   1.16.3-0ubuntu1.2     arm64        GStreamer plugins for X11 and Pango
ii  libclutter-gst-3.0-0:arm64             3.0.27-1              arm64        Open GL based interactive canvas library GStreamer elements
ii  libgstreamer-gl1.0-0:arm64             1.16.3-0ubuntu1.2     arm64        GStreamer GL libraries
ii  libgstreamer-opencv1.0-0:arm64         1.16.3-0ubuntu1.1     arm64        GStreamer OpenCV libraries
ii  libgstreamer-plugins-bad1.0-0:arm64    1.16.3-0ubuntu1.1     arm64        GStreamer libraries from the "bad" set
ii  libgstreamer-plugins-bad1.0-dev:arm64  1.16.3-0ubuntu1.1     arm64        GStreamer development files for libraries from the "bad" set
ii  libgstreamer-plugins-base1.0-0:arm64   1.16.3-0ubuntu1.2     arm64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base1.0-dev:arm64 1.16.3-0ubuntu1.2     arm64        GStreamer development files for libraries from the "base" set
ii  libgstreamer-plugins-good1.0-0:arm64   1.16.3-0ubuntu1.2     arm64        GStreamer development files for libraries from the "good" set
ii  libgstreamer-plugins-good1.0-dev       1.16.3-0ubuntu1.2     arm64        GStreamer development files for libraries from the "good" set
ii  libgstreamer1.0-0:arm64                1.16.3-0ubuntu1.1     arm64        Core GStreamer libraries and elements
ii  libgstreamer1.0-0-dbg:arm64            1.16.3-0ubuntu1.1     arm64        Core GStreamer libraries and elements
ii  libgstreamer1.0-dev:arm64              1.16.3-0ubuntu1.1     arm64        GStreamer core development files
ii  libgstrtspserver-1.0-0                 1.16.2-3              arm64        GStreamer RTSP Server (shared library)
ii  libgstrtspserver-1.0-0-dbg             1.16.2-3              arm64        GStreamer RTSP Server (debug symbols)
ii  libgstrtspserver-1.0-dev:arm64         1.16.2-3              arm64        GStreamer RTSP Server (development files)
ii  libgstrtspserver-1.0-doc               1.16.2-3              all          GStreamer RTSP Server (documentation)
un  libreoffice-avmedia-backend-gstreamer  <none>                <none>       (no description available)
ii  nvidia-l4t-gstreamer                   35.5.0-20240219203809 arm64        NVIDIA GST Application files
un  python3-gst-1.0                        <none>                <none>       (no description available)
un  totem-gstreamer                        <none>                <none>       (no description available)

Hi,
Please clean gstreamer cache and check again:

$ rm .cache/gstreamer-1.0/registry.aarch64.bin

If the plugins are still not present, please run the commands and share the prints for reference:

$ sudo i2cdump -y 0 0x50
$ sudo i2cdump -y 0 0x57

Clearing the gstreamer cache fixed it and the elements now appear. Thanks!

$ gst-inspect-1.0 | grep "^nv"

(gst-plugin-scanner:3742): GStreamer-WARNING **: 05:21:45.509: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstchromaprint.so': /lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block

(gst-plugin-scanner:3742): GStreamer-WARNING **: 05:21:45.606: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstlibav.so': /lib/aarch64-linux-gnu/libgomp.so.1: cannot allocate memory in static TLS block
nveglglessink:  nveglglessink: EGL/GLES vout Sink
nvivafilter:  nvivafilter: NvIVAFilter Plugin
nvvideosinks:  nv3dsink: Nvidia 3D sink
nvtee:  nvtee: NvTee
nvdrmvideosink:  nvdrmvideosink: Nvidia Drm Video Sink
nvvidconv:  nvvidconv: NvVidConv Plugin
nvv4l2camerasrc:  nvv4l2camerasrc: NvV4l2CameraSrc
nvvideo4linux2:  nvv4l2av1enc: V4L2 AV1 Encoder
nvvideo4linux2:  nvv4l2vp9enc: V4L2 VP9 Encoder
nvvideo4linux2:  nvv4l2h265enc: V4L2 H.265 Encoder
nvvideo4linux2:  nvv4l2h264enc: V4L2 H.264 Encoder
nvvideo4linux2:  nvv4l2decoder: NVIDIA v4l2 video decoder
nvegltransform:  nvegltransform: NvEGLTransform
nvvideosink:  nvvideosink: nVidia Video Sink
nveglstreamsrc:  nveglstreamsrc: nVidia EGL Stream
nvjpeg:  nvjpegdec: JPEG image decoder
nvjpeg:  nvjpegenc: JPEG image encoder
nvarguscamerasrc:  nvarguscamerasrc: NvArgusCameraSrc
nvcompositor:  nvcompositor: NvCompositor

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.