Данное руководство описывает, как собрать gst-plugins-bad с поддержкой nvcodec (CUDA/NVENC) и vaapi на Linux.
sudo apt install \
build-essential meson ninja-build \
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
libx11-dev libxext-dev \
libva-x11-2 \
gstreamer1.0-tools gstreamer1.0-gl gstreamer1.0-libavЭти пакеты необходимы для сборки и использования GStreamer с графическими и мультимедийными возможностями.
git clone https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad.git -b 1.20.3
cd gst-plugins-badЗагружается версия 1.20.3 плагинов GStreamer, которая содержит поддержку NVDEC/NVENC.
meson setup build \
--prefix=/usr \
-Dnvcodec=enabled \
-Dc_args="-I/usr/local/cuda/include" \
-Dc_link_args="-L/usr/local/cuda/lib64"Комментарии к параметрам:
--prefix=/usr: установка будет выполнена в системный путь.-Dnvcodec=enabled: включение поддержки кодеков NVIDIA (NVDEC/NVENC).-Dc_args: передача флага для компиляции с заголовками CUDA.-Dc_link_args: передача флага для линковки с библиотеками CUDA.
ninja -C build
sudo ninja -C build installgst-inspect-1.0 nvcodec
gst-inspect-1.0 nvh264dec
gst-inspect-1.0 vaapiЭти команды должны показать информацию о соответствующих плагинах, если они были успешно установлены.
- Убедитесь, что CUDA Toolkit установлен и доступен по пути
/usr/local/cuda. - Для работы с
vaapiтакже должен быть установлен драйвер Intel (например,intel-media-va-driver). - Для успешного использования
nvh264dec, необходимы заголовкиnv-codec-headersи поддержка CUDA на уровне драйвера NVIDIA.