Hi, In this post here I read that container runtime will not provide all of the things it did in JP4.X. I am wondering what the best practices are for setting up docker images for using GST with HW acceleration. Do we need to manually volume mount /lib/modules/5.10.104-tegra, or should we be installing a bunch of nvidia-l4t-* packages in our docker image? I do have --runtime nvidia set and can see in the container runtime logs all of the l4t.csv files being brought in.
Another related thread here . One concern I have is that there is some overlap between what gets installed in the docker image if you install the various nvidia-l4t-* packages and what still is in the l4t.csv container runtime manifest. Is that going to be an issue?
Hi @gifish480, if you are using a container derived from l4t-base or l4t-jetpack with --runtime nvidia
, those low-level drivers that get mounted in l4t.csv should enable HW acceleration for you. I would recommend starting your application from l4t-jetpack first and going from there.
Hi, yes I am using l4t-base since I wasn’t sure I needed everything you put in l4t-jetpack. Thanks!
@dusty_nv Is it possible that having a custom version of gstreamer installed in my docker image conflicts with the container runtime? Are there any resources that talk about how to use your own GST version in your container?
These GStreamer files get mounted into the container by the NVIDIA runtime:
cat /etc/nvidia-container-runtime/host-files-for-container.d/l4t.csv | grep gstreamer
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvcompositor.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvdrmvideosink.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglglessink.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglstreamsrc.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvegltransform.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvivafilter.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvjpeg.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvtee.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvv4l2camerasrc.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvidconv.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideo4linux2.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosink.so
lib, /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosinks.so
lib, /usr/lib/aarch64-linux-gnu/tegra/libnvgstreamer-1.0.so
sym, /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0.1603.99999
sym, /usr/lib/aarch64-linux-gnu/tegra/libgstreamer-1.0.so.0
You could try removing these from l4t.csv and see if that changes any unexpected behavior you are seeing. Those plugins that get mounted provide the hardware-accelerated elements though.
Thanks again! Is it possible to build these libraries using a user specified gstreamer or are these proprietary?
You can download the sources for the accelerated GStreamer plugins from the Driver Package (BSP) Sources
link on this page: https://developer.nvidia.com/embedded/jetson-linux
And here is the documentation for compiling them:
https://docs.nvidia.com/jetson/archives/r35.3.1/DeveloperGuide/text/SD/Multimedia/AcceleratedGstreamer.html?highlight=gstreamer#gstreamer-build-instructions
I haven’t personally done this though, so if you encounter issues with it I would recommend opening a new topic so one of our GStreamer experts can help you out with it.
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.