Jetson tx2i : erroneous pipeline: no element "nvv4l2h264enc"

Hi,
I installed Jetpack 4.3 on my Jetson Tx2i unit using SDK Manager but didn’t install the SDK components since I need only gstreamer but not CUDA, AI and other components. After that, I installed gstreamer separately following the instructions in the Accelerated Gstreamer guide. Now when I run the gstreamer video encoding pipeline, it fails since it doesn’t find Nvidia specific elements/plugins - nvvidconv and nvv4l2h264enc.
Do I need to install any more packages for these elements/plugins to work ? If so where do I find more information about them? Thank You.

Hi,
You may remove the cache and try again.

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

Removed the cache as suggested but that didn’t help. The following elements are still missing -

$ gst-inspect-1.0 nvvidconv
No such element or plugin ‘nvvidconv’

$ gst-inspect-1.0 nvv4l2h264enc
No such element or plugin ‘nvv4l2h264enc’

gst-inspect-1.0 omxh264enc
No such element or plugin ‘omxh264enc’
Thanks

Hi,
If you do this step, it should link with NVIDIA plugins:

cd /usr/lib/aarch64-linux-gnu/gstreamer-1.0/
cp libgstnv* libgstomx.so \
 ~/gst_1.16.0/out/lib/gstreamer-1.0/

One possibility is the version is not compatible with v1.14.5. The default lib are built with header files of v1.14.5. New version may have updated header files, triggering incompatibility. Please share which version you build for reference.

Hi,
The version I installed is :

gst-inspect-1.0 --version
gst-inspect-1.0 version 1.14.5
GStreamer 1.14.5
https://launchpad.net/distros/ubuntu/+source/gstreamer1.0

I just installed gstreamer following the instruction in Nvidia Accelerated GStreamer doc as below :

sudo add-apt-repository universe
sudo add-apt-repository multiverse
sudo apt-get update
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa \
  gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
  gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
  gstreamer1.0-libav
sudo apt-get install libgstreamer1.0-dev \
  libgstreamer-plugins-base1.0-dev \
  libgstreamer-plugins-good1.0-dev \
  libgstreamer-plugins-bad1.0-dev

Is this not the right way to install it?
Do I need to build gstreamer on Tx2i?
Thanks

Hi,
If you flash the system image through SDKManager, gstreamer packages should be installed already. gstreamer packages are in system image and not in SDK components. Could you re-flash and try?

Thank You DaneLLL. You are right. I flashed system image and found gstreamer along with all Nvidia specific plugins already installed.
So far, after installing system image, I was removing desktop/X11 and many other packages that I didn’t need and looks like gstreamer due to its dependency on some of the packages (X11 probably ? ) was getting removed too. I’m trying to narrow this down now.
Will mark the original issue resolved however wondering if gstreamer depends on X11 components to perform encoding/decoding operations ?

Also, is there a way to re-install gstreamer once removed ? Installing the debs specified in thread 5 above doesn’t install all plugins, specifically Nvidia specific plugins. Thanks

Hi,
The implementations are based on X11, such as nveglglessink in gstreamer, and NvEglRenderer in tegra_multimedia_api. Would suggest keep it.

NVIDIA plugins are not in public debs. We don’t try to remove the packages and then re-install them. The ugly plugin and libav packages may not be required if you don’t need to run certain specific cases. And if you don’t need to have audio, you may remove alsa package.

Ok understood. Thank You