0. 背景
在某些时候我们会使用到显卡对视频转码进行加速,此时可以使用 NVIDA 官方提供的 CUDA 镜像来进行加速,在这个 CUDA 镜像里面提供了完整的 NVIDA 驱动等环境,可以直接被 ffmpeg 调用以进行加速。
1. 配置基础环境
1.1 安装 NVIDIA Container Toolkit
访问网站 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html 根据你自己系统的发行版选择安装方式,我这里是 Ubuntu Server,默认情况是 APT 包管理器,因此根据 APT 的步骤进行安装即可。 安装完成之后,使用以下命令启用。
|
|
1.2 禁用 Systemd CG Group
在使用过程当中,当某个 CUDA 容器运行一段时间之后就出现错误:
|
|
查询得知是这个 Issue #48 提到的问题,根据里面的描述,最快的解决办法就是修改 /etc/docker/daemon.json
文件,然后在里面加上:
|
|
随后重启 Docker 服务。
|
|
2. 构建新的镜像
默认情况下 nvidia/cuda:12.4.1-runtime-ubuntu22.04
镜像已经包含了 NVIDIA 驱动,但是没有包含编码器和解码器,所以我们要让 ffmpeg 能够正常工作,就需要安装对应的编解码器。
|
|
3. 启动容器
docker run
命令要运行指定镜像时,需要加上一些参数,如下:
|
|
如果使用 docker compose 文件,下面就是示例:
|
|