一、背景
最近需要高效的压制H.265视频,使用 FFmpeg 软件编解码速度较慢,想通过GPU加速压制过程。
二、环境部署
- 确保电脑显卡在此列表上:https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
- 下载并安装 CUDA Toolkit:https://developer.nvidia.com/cuda-downloads
- 已下载最新版FFmpeg:https://ffmpeg.org/download.html
- 执行命令查看所有可用的硬件加速器
ffmpeg -hwaccels
这里可以看到,我们需要的 CUDA 已经有了。
- 执行命令查看查看编解码器
ffmpeg -codecs
h264_nvenc是H.264硬件编码器 hevc_nvenc是H.265硬件编码器
三、压制命令
- 部分硬件转码
ffmpeg -i input.mp4 -c:v hevc_nvenc -crf 23 -c:a copy -vtag hvc1 output.mp4
# -i 后填写输入素材的路径
#输入素材为H.265视频,-c:v 使用对应解码器hevc_nvenc;
#CRF中的质量的范围可以是1.0 - 51.0。一般设置21-25之间就可以,此值越大码率越低。
#声音流这里直接copy了,未压制。
#输出视频为H.265。
- 全硬解码需要加上
-hwaccel cuda
,实例:
ffmpeg -hwaccel cuda -i input.mp4 -c:v hevc_nvenc -crf 23 -c:a copy -vtag hvc1 output.mp4
待更新...