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如下