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如下
相关推荐
代码之光_19801 小时前
保障性住房管理:SpringBoot技术优势分析
java·spring boot·后端
ajsbxi1 小时前
苍穹外卖学习记录
java·笔记·后端·学习·nginx·spring·servlet
颜淡慕潇2 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
EasyCVR2 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
runing_an_min2 小时前
ffmpeg 视频滤镜:屏蔽边框杂色- fillborders
ffmpeg·音视频·fillborders
尘浮生3 小时前
Java项目实战II基于Spring Boot的光影视频平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea
尚学教辅学习资料3 小时前
基于SpringBoot的医药管理系统+LW示例参考
java·spring boot·后端·java毕业设计·医药管理
monkey_meng4 小时前
【Rust中的迭代器】
开发语言·后端·rust
余衫马4 小时前
Rust-Trait 特征编程
开发语言·后端·rust
monkey_meng4 小时前
【Rust中多线程同步机制】
开发语言·redis·后端·rust