编译带Nvidia CUDA编解码支持的GStreamer gst-plugins-bad 1.18.6
在gst-plugins-bad 1.18.6中启用Nvidia硬件加速(Meson构建)
前置依赖安装
在Ubuntu 22.04下,先安装必要的构建工具和依赖包:
sudo apt update sudo apt install meson ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev nvidia-cuda-toolkit libnvcuvid1 libnvidia-encode1
源码构建步骤
- 下载gst-plugins-bad 1.18.6源码包并解压,进入源码目录:
wget https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.18.6.tar.xz tar -xf gst-plugins-bad-1.18.6.tar.xz cd gst-plugins-bad-1.18.6
- 用Meson配置构建环境,核心是启用
nvcodec模块(对应Nvidia硬件编解码):
meson setup build -Dnvcodec=enabled
如果CUDA路径不是系统默认(比如自定义安装了CUDA 11.8),可以手动指定:
meson setup build -Dnvcodec=enabled -Dcuda_root=/usr/local/cuda-11.8
- 编译并安装:
ninja -C build sudo ninja -C build install
验证与测试
- 检查插件是否成功安装:
gst-inspect-1.0 nvdec_h264 gst-inspect-1.0 nvenc_h264
如果能输出插件的详细信息,说明启用成功。
- 测试H264解码:
gst-launch-1.0 filesrc location=your_input.h264 ! h264parse ! nvdec_h264 ! autovideosink
- 测试H264编码:
gst-launch-1.0 v4l2src ! videoconvert ! nvenc_h264 ! h264parse ! filesink location=output.h264
注意事项
- 如果运行时找不到插件,可临时设置环境变量:
export LD_LIBRARY_PATH=/usr/local/lib/gstreamer-1.0:$LD_LIBRARY_PATH
- 确保Nvidia驱动版本与CUDA版本匹配(你的环境中520.61.05驱动对应CUDA 11.8是兼容的)
内容的提问来源于stack exchange,提问作者reed
相关产品推荐
相关产品推荐

