ljw
April 22, 2024, 5:02pm
1
I’m struggling to work out how I access the elements from nvcodec ?
It says the that it’s in gst-plugins-bad
and indeed it’s in the monorepo here , and browsing git tags has been since 1.20
I’m running Ubuntu in docker, here’s the docker file I’m testing currently:
FROM ubuntu:24.04
RUN apt-get update && \
apt-get -y install \
python3 \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
gstreamer1.0-plugins-bad \
gstreamer1.0-tools \
less
Output of gst-inspect-1.0 --version
:
gst-inspect-1.0 version 1.24.2
GStreamer 1.24.2
https://launchpad.net/ubuntu/+source/gstreamer1.0
And yet running gst-inspect-1.0
none of the nvcodec
elements are listed? Any help gratefully received!
In a docker w/o NVIDIA hardware:
gst-inspect-1.0 nvcodec
Plugin Details:
Name nvcodec
Description GStreamer NVCODEC plugin
Filename /usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstnvcodec.so
Version 1.24.2
License LGPL
Source module gst-plugins-bad
Documentation https://gstreamer.freedesktop.org/documentation/nvcodec/
Source release date 2024-04-09
Binary package GStreamer Bad Plugins (Ubuntu)
Origin URL https://launchpad.net/ubuntu/+source/gst-plugins-bad1.0
Warning: CUDA library "libcuda.so.1" was not found.
Warning: NVENC library "libnvidia-encode.so.1" was not found.
Warning: NVDEC library "libnvcuvid.so.1" was not found.
0 features:
Be sure you have all the deps installed and NVIDIA hardware available.
ljw
April 24, 2024, 9:39am
3
Ah, you’re right, the plugin is actually there ! It did not occur to me that the elements would not show up in the full list from gst-inspect-1.0
without the hardware/drivers in place
I’m working on my code locally where I don’t have the right hardware, and trying to run on an EC2 instance, where I’ve evidently not yet got the drivers installed correctly, so will dig in more on that. thanks for the pointer!
ljw
April 24, 2024, 11:23am
4
Ok some progress
I’m running on an g4dn.xlarge
instance in AWS, using the latest Ubuntu 22.04 AMI, and have followed the instructions on the ubuntu site: Install NVIDIA drivers on a GPU-enabled EC2 instance - Ubuntu on AWS documentation . Output of nvidia-smi
looks correct
Additionally I’ve installed the Ubuntu packages libnvidia-encode-535-server
and libnvidia-decode-535-server
.
gst-inspect-1.0 nvcodec
returns no error, but still no elements, however
sudo gst-inspect-1.0 nvcodec
does return elements
I’ve tested this pipeline as root
and it runs successfully
gst-launch-1.0 -e videotestsrc ! video/x-raw,height=720,width=1280 ! nvh264enc max-bitrate=2000 ! h264parse ! mp4mux ! filesink location="foo.mp4"
It helped me in my case
rm -r ~/.cache/gstreamer-1.0/
rsnk96
October 26, 2024, 12:23am
6
In my case, it was also necessary to also add a -e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
beyond the usual --gpus all
in a docker run command to load all the nvcodec plugin features.