Docker容器中ffmpeg调用GPU

Docker容器中ffmpeg调用GPU硬编码

在容器中使用 GPU 加速来处理视频流或其他相关任务,并且宿主机已经配置了 GPU 驱动,通常需要将宿主机的 NVIDIA 相关库文件(如 libnvcuvid.solibnvidia-encode.so)复制到容器中,以便容器能够正确识别并使用这些库。

操作步骤:

  1. 确认宿主机上存在相关库

    在宿主机上,找到 libnvcuvid.solibnvidia-encode.so 库文件的位置。通常这些库文件位于 /usr/lib/x86_64-linux-gnu//usr/local/cuda/lib64/ 目录下。

    例如:

    find /usr -name 'libnvcuvid.so*'
    find /usr -name 'libnvidia-encode.so*'
    
    
  2. 将库文件复制到容器中

    然后将库文件复制到容器的 /lib 目录下:

    docker cp /path/to/libnvcuvid.so.* <container_id>:/lib/
    docker cp /path/to/libnvidia-encode.so.* <container_id>:/lib/
    
    
  3. 在容器内创建软连接

    进入容器的 shell:

    docker exec -it <container_id> /bin/bash
    
    

    在容器内的 /lib 目录下创建软连接:

    ln -s /lib/libnvcuvid.so.<version> /lib/libnvcuvid.so.1
    ln -s /lib/libnvidia-encode.so.<version> /lib/libnvidia-encode.so.1
    
    # docker cp /usr/lib/x86_64-linux-gnu/libnvcuvid.so.550.127.08  docker-api-1:/app/lib
    # docker cp /usr/lib/x86_64-linux-gnu/libnvidia-encode.so.550.127.08 docker-api-1:/app/lib
    

    这里 <version> 是实际的库文件版本号,例如 libnvcuvid.so.1.0.0 或类似的文件名。

  4. 确保容器支持 GPU 加速

    如果你还没有在容器中启用 GPU 支持,确保使用了 NVIDIA 提供的 Docker 运行时。你需要在运行容器时指定 --gpus all 或其他适当的选项来启用 GPU。例如:

    docker run --gpus all -d <image_name>
    
    

注意:

消费级显卡对于视频编解码有并发限制。

Video Encode and Decode GPU Support Matrix

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值