在Ubuntu上安装gstreamer NVIDIA插件



我正在尝试为GStreamer安装官方NVIDIA编解码器。我有以下设置:

  • Ubuntu 18.04
  • Gstreamer 1.14.5
  • NVIDIA QUADRO P2000
  • NVIDIA-SMI 440.100驱动程序版本:440.100
  • CUDA 10.2.89版
  • NVIDIA Video_Codec_SDK_9.0.20

我遵循了本安装指南http://lifestyletransfer.com/how-to-install-nvidia-gstreamer-plugins-nvenc-nvdec-on-ubuntu/

安装后,我可以在以下命令中使用nvdec而不会出现问题:

gst-launch-1.0 filesrc location=jumanji.mp4 ! qtdemux ! h264parse ! nvdec ! glimagesink sync=false

但是,当尝试将编码器nvh264enc与以下命令一起使用时:

gst-launch-1.0 videotestsrc num-buffers=10000 ! nvh264enc ! h264parse ! mp4mux ! filesink location=video.mp4

我得到以下错误:

Error: from Element /GstPipeline:pipeline0/GstNvH264Enc:nvh264enc0: The Supported library could not be initialized. gstvideoencoder.c(1627): gst_video_encoder_change_state (): /GstPipeline:pipeline0/GstNvH264Enc:nvh264enc0: Failed to open encoder

我曾试图寻找类似的错误报告,但没有运气。任何关于如何解决这一问题的线索都将不胜感激。

编辑:

通过执行调试级别为gst-Debug级别=5的前一个管道,我可以在日志中读取以下错误消息:

nvenc gstnvenc.c:267:gst_nvenc_create_cuda_ctext:初始化cuda。。0:00:00.523634157 7971 0x56375974c600信息nvenc gstnvenc.c:276:gst_nvenc_create_cuda_ctext:初始化cuda0:00:00.5236504036 7971 0x56375974c600 INFO nvenc gstnvenc.c:284:gst_nvenc_create_cuda_ctext:检测到1个cuda设备0:00:00.523702909 7971 0x56375974c600 INFO nvenc gstnvenc.c:290:gst_nvenc_create_cuda_ctext:GPU#0支持nvenc:yes(Quadro P2000((计算SM 6.1(0:00:00.646223264 7971 0x56375974c600信息nvenc gstnvenc.c:312:gst_nvenc_create_cuda_ctext:已创建cuda上下文0x5637599d78f00:00:00.646239492 7971 0x56375974c600错误nvenc gstnvbaseenc.c:437:gst_nv_base_enc_open:无法创建nvenc编码器会话,ret=150:00:00.646262028 7971 0x56375974c600信息nvenc gstnvenc.c:320:gst_nvenc_destroy_cuda_context:销毁cuda上下文0x5637599d78f00:00:00.755491991 7971 0x56375974c600 WARN视频编码器gstvideoencoder.c:1627:gst_video_encoder_change_state:错误:无法打开编码器

您需要在启用nvidia编码器/解码器的情况下构建和安装gst插件。在你这样做之前,它们是不存在的。这包括下载和安装cuda,克隆repo,构建插件,安装在相关目录中。

最新更新