使用FFmpeg调用NVIDIA GPU压制视频

使用FFmpeg调用NVIDIA GPU压制视频

  1. 确保电脑显卡在此列表上:https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new
  2. 下载并安装 CUDA Toolkit:https://developer.nvidia.com/cuda-downloads
  3. 已下载最新版FFmpeg:https://ffmpeg.org/download.html
  4. 执行命令查看所有可用的硬件加速器
1
ffmpeg -hwaccels

这里可以看到,我们需要的 CUDA 已经有了。

img

执行命令查看查看编解码器

1
ffmpeg -codecs

h264_nvencH.264硬件编码器,hevc_nvencH.265硬件编码器

img

查看某一个编码器的帮助:

1
ffmpeg -h encoder=hevc_nvenc

压制命令

2024-07-30 实测可行

部分硬件转码

1
2
3
4
5
6
7
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注意:nvenc 编码器不支持给crf设置数值,而是给-cq 或者 -qp 设置数值,效果同h264编码器的crf

1
ffmpeg -hwaccel cuda -i input.mp4 -c:v hevc_nvenc -cq 23 -rc vbr -c:a copy -vtag hvc1 output.mp4

直接指定码率:

1
ffmpeg -hwaccel cuda -i "371-%elec.mp4" -c:v hevc_nvenc -b:v 1800k -c:a copy -vtag hvc1 "371-%elec_comp.mp4"

使用FFmpeg调用NVIDIA GPU压制视频
https://taylorandtony.github.io/2025/01/24/ffmpeg-gpu/
作者
TaylorAndTony
发布于
2025年1月24日
许可协议