这个月买的ITX小主机到手,闪鳞S400机箱加上4070Ti,本来目的是用来爽快玩游戏,偶然看到新闻《FFmpeg现已支持英伟达RTX 40系列AV1编码》,于是尝试研究了下FFmpeg的编译指令,使用GPU来加速转码AV1格式视频。

介绍AV1

先简单介绍一下AV1格式,AV1是一种新兴的开源免版税视频压缩格式,AV1编解码器的主要目标是在保持质量的同时降低视频的比特率。除了压缩方面的改进,AV1的设计还考虑到了硬件,新的SoC和GPU如高通8 Gen 2、Nvidia的RTX 40系列、Intel的Arc GPU都支持AV1编解码的加速硬件解码。

2018年,开放媒体联盟(AOMedia)发布了新一代的视频编码AV1(AOMedia Video Codec 1.0),现在流行的视频处理命令行工具FFmpeg也已经支持英伟达NVENC AV1编码器。

FFmpeg显卡加速转av1指令

由于是在Win10下测试,到FFmpeg官网直接找gyan站编译好的exe,这个版本挺好的,把NVENC AV1编码器预编译进去了,可直接使用:https://www.gyan.dev/ffmpeg/builds/

我用的是ffmpeg-2023-02-19-git-2aec86695a-full_build,查看所有可用的硬件加速器:

.\ffmpeg.exe -hwaccels

FFmpegke查询可用的GPU的加速:

.\ffmpeg.exe -codecs | sls cuvid

查询编码器为av1_nvenc的全部信息:

.\ffmpeg.exe -h encoder=av1_nvenc

不多废话,直接列出使用av1_nvenc转码的指令:

.\ffmpeg.exe -i 'D:\YuanShen 2023-02-21 22-29-11-307.mp4' -c:v av1_nvenc -b:v 2048k -vf scale=1280:-1 -y 'D:\YuanShen 2023-02-21 22-29-11-307_av1.mp4'

测试视频是自己近期玩原神海哥好感满的录屏,视频1080p、H265,46秒86.1M。上面的指令转为av1编码的720p视频,硬件加速后两三秒就转好的,看任务管理器的确调用了GPU。转码后视频13.5M,看效果还行。

FFmpeg使用RTX 4070Ti进行GPU加速AV1编码

一些支持av1硬件加速的GUI软件

自己对命令行不是很熟悉,在网上找找支持av1硬件编码的GUI软件,知乎的这篇文章总结很不错,自己简单试用了格式工厂Shutter Encoder,都能支持加速,其它软件没一个个试用了。

推荐大家用Shutter Encoder,还是有GUI方便。

FFmpeg使用RTX 4070Ti进行GPU加速AV1编码

文章目录