在nvidia docker中使用NVNC运行ffmpeg

在nvidia docker中使用NVNC运行ffmpeg,docker,ffmpeg,nvidia,nvidia-docker,nvenc,Docker,Ffmpeg,Nvidia,Nvidia Docker,Nvenc,我使用Nvidia docker在docker容器中安装了Nvidia视频编解码器SDK 8.2+ffmpeg,但当我运行此 ffmpeg -f rawvideo -s:v 1920x1080 -r 30 -pix_fmt yuv420p -i HeavyHand_1080p.yuv -c:v h264_nvenc -preset slow -cq 10 -bf 2 -g 150 output.mp4 我得到了这个错误 无法加载libnvidia encode.so.1 NVNC所需的最低Nv

我使用Nvidia docker在docker容器中安装了Nvidia视频编解码器SDK 8.2+ffmpeg,但当我运行此

ffmpeg -f rawvideo -s:v 1920x1080 -r 30 -pix_fmt yuv420p -i HeavyHand_1080p.yuv -c:v h264_nvenc -preset slow -cq 10 -bf 2 -g 150 output.mp4
我得到了这个错误

无法加载libnvidia encode.so.1

NVNC所需的最低Nvidia驱动程序为390.25或更新版本 初始化输出流0:0时出错--打开编码器时出错 对于输出流#0:0-可能不正确的参数,如比特率, 速率、宽度或高度

否则,nvidia smi将显示此信息


此gpu使用的是GeForce 1050 Ticuda版本是9.0

如果您使用nvidia docker运行docker映像,那么所有内容都应该从主机获取。 您应该先在主机系统上安装cuda。“sudo apt get install cuda”,然后运行docker映像


在Docker容器内运行时,还应使用nvidia cuda映像而不是linux(在Docker文件中)

,默认情况下,并非所有nvidia库都安装在容器内。多读多读。 您可以通过运行以下命令查看Docker容器中的所有可用库:
ldconfig-p | grep-E'libcuda | libnvidia'

要解决此问题,您应该在Docker映像中修改
NVIDIA_DRIVER_功能
环境变量。例如,您可以将
ENV NVIDIA_DRIVER_CAPABILITIES=all
附加到docker文件,以便在docker容器中装载所有库/二进制文件


通过这样做,
libnvidia encode
库也将被装载,因此FFMPEG将能够使用NVENC编解码器。

也许可以调整FFMPEG代码,告诉您它认为它是什么版本。。。