FFmpeg使用NVIDIA GPU将视频转码为AV1/HEVC

发布于 2023-02-09  1347 次阅读


参考: 视频压制的心路历程及经验教训(下) - 哔哩哔哩 (bilibili.com)
参考:https://docs.nvidia.com/video-technologies/video-codec-sdk/12.0/ffmpeg-with-nvidia-gpu/index.html#hwaccel-transcode-with-scaling

开始

安装:

可以参考:FFmpeg二进制安装与基本使用 – Learn Demo (iepl.cc) ,推荐选择第二种方式进行安装

安装完成后记得安装NVIDIA CUDA驱动就可以使用了

转码:

Ubuntu安装CUDA

sudo apt install nvidia-cuda-toolkit -y

将视频转码为HEVC

ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -c:a copy -c:v hevc_nvenc -preset medium -b:a 128k output.mp4
  • -perset 编码器预设,一般选择 slow medium fast 三档即可,当cfr恒定(hevc cfr默认为28)时 slow的文件最小
  • -c:a 设定音频率码率

将视频转码为av1(修改一下编码器就可以了)

ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -c:a copy -c:v av1_nvenc -preset medium -b:a 128k output.mp4

如果你想改变视频分辨率,可以增加scale_cuda参数,我们这里设置的是720P

ffmpeg -y -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -vf scale_cuda=-1:720 -c:a copy -c:v hevc_nvenc -preset medium -b:a 128k output.mp4
届ける言葉を今は育ててる
最后更新于 2023-09-25