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如下
相关推荐
Asus.Blogs13 分钟前
为什么go语言中返回的指针类型,不需要用*取值(解引用),就可以直接赋值呢?
开发语言·后端·golang
C_V_Better22 分钟前
Java Spring Boot 控制器中处理用户数据详解
java·开发语言·spring boot·后端·spring
胡子洲27 分钟前
Spring Boot 应用中实现基本的 SSE 功能
java·spring boot·后端
贰拾wan1 小时前
【Java-EE进阶】SpringBoot针对某个IP限流问题
java·spring boot·后端·idea
Paran-ia1 小时前
【2025版】Spring Boot面试题
java·spring boot·后端
sufu10652 小时前
SpringAI更新:废弃tools方法、正式支持DeepSeek!
人工智能·后端
嘵奇2 小时前
Spring Boot拦截器详解:原理、实现与应用场景
java·spring boot·后端
秋野酱4 小时前
基于javaweb的SpringBoot自习室预约系统设计与实现(源码+文档+部署讲解)
java·spring boot·后端
weloveut4 小时前
西门子WinCC Unified PC的GraphQL使用手册
后端·python·graphql
蒂法就是我6 小时前
详细说说Spring的IOC机制
java·后端·spring