docker cannot found libnvcuvid.so

本文介绍了解决Docker环境下H264NVCUDA视频解码失败的问题。当出现找不到libnvcuvid.so库的错误时,可通过两种方式解决:临时方法为将libnvcuvid.so复制到容器内的指定目录;永久解决方案是在启动容器时添加特定参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述,ubuntu下docker内部使用H264 NVCUDA进行视频解码,提示如下错误信息时:
在这里插入图片描述
当在docker中运行H264解码,提示找不到libnvcuvid.so库,可以通过如下办法解决此问题:
临时测试的话,解决办法如下:

将docker外部的libnvcuvid.so拷贝到docker目录下:/usr/lib/x86_64-linux-gnu

永久解决办法,启动容器的时候加上能解决:

-e NVIDIA_DRIVER_CAPABILITIES=video,compute,utility

参考资料:
https://github.com/NVIDIA/nvidia-docker/issues/1001

在Ubuntu上,使用ffmpeg将视频转换为NV12格式可以按照以下步骤进行操作: 1. 首先,你需要在Ubuntu上安装ffmpeg。你可以使用静态编译版本的ffmpeg,该版本已经包含了所有必需的依赖项。你可以通过以下命令将其下载到你的系统中: ``` git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg ``` 2. 安装完成后,你需要拷贝一些文件到容器中。这些文件是在主机机器中的文件,你可以使用以下命令将这些文件拷贝到容器的/lib64/目录下: ``` docker cp libnvcuvid.so.470.82.01 7286404e2f78:/lib64/ docker cp libnvidia-encode.so.470.82.01 7286404e2f78:/lib64/ ``` 3. 在容器中创建软链接,以使ffmpeg能够找到这些文件。你可以使用以下命令在容器中创建软链接: ``` ln -s libnvcuvid.so.470.82.01 /lib64/libnvcuvid.so.1 ln -s libnvidia-encode.so.470.82.01 /lib64/libnvidia-encode.so.1 ``` 4. 接下来,你可以测试ffmpeg是否能够将视频转换为NV12格式。你可以使用以下命令来测试: ``` ffmpeg -i input_video.mp4 -pix_fmt nv12 output_video.mp4 ``` 这将将名为`input_video.mp4`的输入视频转换为NV12格式,并将其保存为`output_video.mp4`。 请确保在命令中使用正确的输入视频文件名和输出视频文件名。 需要注意的是,在进行转换之前,你可能还需要安装一些其他的编码器和库,如x264和fdk-aac。你可以按照引用中的步骤安装这些编码器和库。 以上是在Ubuntu上使用ffmpeg将视频转换为NV12格式的方法。希望对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值