ffmpeg使用本地GPU加速(AMD和NVIDIA)

ffmpeg基础解码编码信息查看

  • 查看硬件加速的相关信息
shell 复制代码
ffmpeg -hwaccels
---------
cuda
dxva2
qsv
d3d11va
opencl
vulkan
  • 编码器支持信息查看
shell 复制代码
ffmpeg -encoders >encoders.txt
objectivec 复制代码
 V.S... h263p                H.263+ / H.263-1998 / H.263 version 2
 V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
 V..... libx264rgb           libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB (codec h264)
 V....D h264_amf             AMD AMF H.264 Encoder (codec h264)
 V....D h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... h264_qsv             H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (Intel Quick Sync Video acceleration) (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... libx265              libx265 H.265 / HEVC (codec hevc)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V....D hevc_amf             AMD AMF HEVC encoder (codec hevc)
  • 解码器支持信息查看
shell 复制代码
ffmpeg -decoders >  decoders.txt
scss 复制代码
 V...BD h263                 H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2
 V...BD h263i                Intel H.263
 V...BD h263p                H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2
 VFS..D h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
 V....D h264_qsv             H264 video (Intel Quick Sync Video acceleration) (codec h264)
 V..... h264_cuvid           Nvidia CUVID H264 decoder (codec h264)
 VFS..D hap                  Vidvox Hap
 VFS..D hevc                 HEVC (High Efficiency Video Coding)
 V....D hevc_qsv             HEVC video (Intel Quick Sync Video acceleration) (codec hevc)
 V..... hevc_cuvid           Nvidia CUVID HEVC decoder (codec hevc)
 V....D hnm4video            HNM 4 video
 V....D hq_hqa               Canopus HQ/HQA

利用 AMD GPU加速

  • 首先电脑安装 AMD显卡驱动
  • 安装 anROCm:ROCm 是 AMD 提供的用于 GPU 加速计算的开发平台,选择适配你自己当前本子的包即可(RoCm下载地址
  • 电脑安装ffmpeg,最好是最新版本,因此老版本有些不支持

加速示例

  • 普通非加速视频格式转换

这里一定选择 -c:v 编码为非copy,因为这样才能区分开CPU的波动,否则无法直接copy原来解码的格式则CPU消耗不大的。

shell 复制代码
ffmpeg -i input.mp4 -c:v h264 output.mp4
  • CPU和GPU利用率查看

  • 使用AMD加速编码格式

shell 复制代码
ffmpeg -i input.mp4 -c:v h264_amf output.mp4
  • CPU和GPU利用率查看

利用 英伟达 GPU

  • 首先安装对应的显卡驱动
  • 安装 cuda,因为ffmpeg调用也需要cuda计算的API
  • ffmpeg版本最好也是最新的

加速编码示例

shell 复制代码
ffmpeg  -i input.mp4 -c:v h264_nvenc -b:v 2048k -s 1920x1080 output.mp4
  • 如果出现以下API相关的错误 则要么 cuda没有安装 要么版本不匹配
  • 其他错误 比如 ffmpeg版本不对,没法用cuda的API如下
相关推荐
To_OC4 小时前
手写 AI 编程 Agent 的命令执行工具:我被 child_process 坑出来的实战经验
后端·node.js·agent
逝水无殇6 小时前
C# 异常处理详解
开发语言·后端·c#
考虑考虑9 小时前
Sentinel安装
java·后端·微服务
IT_陈寒9 小时前
SpringBoot自动配置失灵?你可能忘了这个关键注解
前端·人工智能·后端
碎碎念_4929 小时前
SpringBoot + Vue 前后端分离从 0 到 1 完整环境配置流程
vue.js·spring boot·后端
逝水无殇9 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#
YIAN9 小时前
从手写 Agent 工具到 MCP 协议:一文搞懂大模型跨进程跨语言工具调用
后端·agent·mcp
小兔崽子去哪了10 小时前
Docker 删除镜像后磁盘空间没有释放?
后端·docker·容器
高明珠10 小时前
麒麟 V10 SP1 排查实录:ttyS5 每 10 秒莫名收到一批报文,元凶是 eGTouchD
后端
卷无止境10 小时前
Python FFI 技术深度解析:ctypes、cffi 与 pybind11 的性能差异与实践挑战
后端·python