FFmpeg使用RTX 4070Ti进行GPU加速AV1编码
这个月买的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,看效果还行。
一些支持av1硬件加速的GUI软件
自己对命令行不是很熟悉,在网上找找支持av1硬件编码的GUI软件,知乎的这篇文章总结很不错,自己简单试用了格式工厂、Shutter Encoder,都能支持加速,其它软件没一个个试用了。
推荐大家用Shutter Encoder,还是有GUI方便。
- 上一篇: py文件批量转pyc并编译为pyd方法
- 下一篇: 几款喜欢的PyQt主题皮肤推荐