Skip to content

Instantly share code, notes, and snippets.

@sandman
Forked from corenel/README.md
Last active February 11, 2021 18:57
Show Gist options
  • Save sandman/c721c539916e8486b7de4368ce7f28c2 to your computer and use it in GitHub Desktop.
Save sandman/c721c539916e8486b7de4368ce7f28c2 to your computer and use it in GitHub Desktop.
Install NVDEC and NVENC as GStreamer plugins

Install NVDEC and NVENC as GStreamer plugins

Environment

  • Ubuntu 18.04
  • NVIDIA driver 430.40
  • NVIDIA Video Codec SDK 9.0.20

Steps

  1. Clone the gst-plugins-bad and check out to the same version as GStreamer
git clone git://anongit.freedesktop.org/gstreamer/gst-plugins-bad
cd gst-plugins-bad/
git checkout 1.14.0
  1. Download NVIDIA Video Codec SDK and copy header files
cd /path/to/video/codec/sdk
cp /usr/local/cuda/include/cuda.h /path/to/gst-plugins-bad/sys/nvenc
cp include/nvEncodeAPI.h /path/to/gst-plugins-bad/sys/nvenc
cp include/cuviddec.h /path/to/gst-plugins-bad/sys/nvdec
cp include/nvcuvid.h /path/to/gst-plugins-bad/sys/nvdec
  1. Build plugins

Build NVENC:

cd /path/to/gst-plugins-bad
NVENCODE_CFLAGS="-I/path/to/gst-plugins-bad/sys/nvenc" ./autogen.sh --with-cuda-prefix="/usr/local/cuda"
cd sys/nvenc
make

Below line is necessary only if you are installing into the native GStreamer environment. If you are installing into a sandbox ("uninstalled") setup, then it should be skipped.

sudo cp .libs/libgstnvenc.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0/

Now build NVDEC:

cd ../nvdec
make

Below line is necessary only if you are installing into the native GStreamer environment. If you are installing into a sandbox ("uninstalled") setup, then it should be skipped.

sudo cp .libs/libgstnvdec.so /usr/lib/x86_64-linux-gnu/gstreamer-1.0/
  1. Check installation
gst-inspect-1.0 | grep nvenc
gst-inspect-1.0 | grep nvdec

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment