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如下
相关推荐
Xidaoapi2 分钟前
Python FastAPI性能优化实战:8个让你的API快3倍的技巧
后端·程序员
William Dawson4 分钟前
【通俗易懂!Spring四大核心注解源码解读:@Configuration、@ComponentScan、@Import、@EnableXXX实战】
java·后端·spring
倚栏听风雨7 分钟前
Mac 本地开发:用 Nginx 配置自定义域名代理到本地服务
后端
fliter7 分钟前
在 Rust 异步接口的丛林中生存:从同步 I/O 到手写异步状态机
后端
菜菜小狗的学习笔记1 小时前
八股(九)杂七杂八
java·后端·spring
逍遥德1 小时前
Java编程高频的“技术点”-01:自定义全局异常处理器
java·开发语言·spring boot·后端
小旭95271 小时前
商品详情实现与缓存问题(穿透、击穿、雪崩)解决方案
java·数据库·spring boot·后端·缓存
迷渡2 小时前
用 Rust 重写的 Bun 有 13365 个 unsafe!
开发语言·后端·rust
AI_大白2 小时前
DeepSeek Function Calling 接入实时行情:从工具定义到多轮查询的完整示例
后端·架构
Cosolar3 小时前
从零搭建本地 RAG 系统:LangChain + LM Studio 完整实战指南
人工智能·后端·面试