Gof*_*med 5 ffmpeg nvidia docker nvenc nvidia-docker
我使用 nvidia-docker 在 docker 容器内安装了Nvidia Video Codec 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
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
无法加载 libnvidia-encode.so.1
nvenc 所需的最低 Nvidia 驱动程序为 390.25 或更高版本初始化输出流 0:0 时出错 - 打开输出流 #0:0 的编码器时出错 - 可能参数不正确,例如比特率、速率、宽度或高度
否则nvidia-smi显示此信息
使用的GPU是GeForce 1050 Ti,cuda版本是9.0
mat*_*anb 11
在 Docker 容器内运行时,默认情况下并非所有 Nvidia 库都安装在容器内。请在此处和此处阅读更多内容。您可以通过运行以下命令来查看 Docker 容器中可用的所有库:ldconfig -p | grep -E 'libcuda|libnvidia'
要解决此问题,您应该修改NVIDIA_DRIVER_CAPABILITIESDocker 映像中的环境变量。例如,您可以附加ENV NVIDIA_DRIVER_CAPABILITIES=all到 Dockerfile 以挂载 docker 容器中的所有库/二进制文件。
通过这样做,该libnvidia-encode库也将被安装,因此 FFMPEG 将能够使用 NVENC 编解码器。
小智 1
如果您使用 nvidia-docker 来运行 docker 镜像,那么一切都应该从主机获取。您应该首先在主机系统上安装 cuda。“sudo apt-get install cuda”,然后运行 docker 映像。
您还应该使用 nvidia-cuda 映像而不是 linux (在 dockerfile 中)
| 归档时间: |
|
| 查看次数: |
4815 次 |
| 最近记录: |