標籤彙整: ffmpeg

如何设置NVENC硬件编码达到GPU压片天花板

本文将介绍如何使用FFmpeg+NVENC进行压片,首先要声明GPU压片的效果一定不如CPU压片的效果好,但GPU即使参数拉到最满,速度也比CPU压片快的多的多。所以你的CPU如果不是什么好U又不想浪费生命,请使用GPU编码。

首先是压片工具,FFmpeg即可,其他图形化工具都是使用预设参数调用这些而已,而且他们的预设参数并不一定高效,也不一定质量好。所以,请去FFmpeg下载一个压缩包,然后解压。

问题来了,这东西只能命令行,要如何使用呢。我给大家写好了通用脚本,请保存为.bat文件并与FFmpeg的bin文件(exe可执行文件)放在同一目录。

脚本使用说明:
1、确保脚本所在目录下有一个名为 ffmpeg.exe 的可执行文件 。如果没有,可以修改脚本中的 FFMPEG_BIN 变量将其指向电脑上的绝对路径(例如 set "FFMPEG_BIN=C:\ffmpeg\bin\ffmpeg.exe")。
2、脚本使用了 -c:v hevc_nvenc 参数 ,电脑必须配备支持 NVENC(H.265/HEVC)硬件编码的N卡。

自定义配置:
TARGET_RESOLUTION: 视频导出分辨率。留空表示原画输出。如果需要转为 1080p,请填写 1920:1080;如果需要 720p,请填写 1280:720。
FONT_DIR: 指定加载外挂字幕时的本地字体库目录,防止字体缺失导致样式错误 。
V_BITRATE 等参数: 控制输出视频的码率,默认配置为平均 2000k、最大 4000k。可以根据画面复杂度和分辨率适当调高(例如 1080p 可以设置 4000k / 8000k)。

字幕自动挂载:
脚本具有“自动寻找同名外挂字幕并压制进视频(硬字幕)”的功能。
只要将字幕文件放在视频同目录下,并且文件名与视频一致(例如 video.mp4 和 video.ass),脚本会自动加载。优先级为:ASS > SSA > SRT 。如果没有找到匹配的字幕,它将直接跳过字幕加载。

运行方式:
此脚本不适合直接双击运行,因为它需要接收 输入文件 和 输出文件 两个参数 。您可以通过以下两种方式使用它:
方法 1:通过命令行运行 (CMD/PowerShell)
打开命令行工具,输入:

方法 2:结合批量处理脚本 (推荐)
如果你有很多文件需要压制,可以新建一个 run_all.bat 文件,利用 for 循环调用这个核心脚本:

将 run_all.bat 与您的视频和 convert_lilith.bat 放在同一个文件夹下,双击 run_all.bat 即可实现批量压制。

至于压片参数,我就不解释了。所有参数基本上是GPU压片的最高预设,比如p7(NVENC 提供的最高质量预设)和10bit以及2-pass以及B帧。

需要注意的是,如果你的显卡是RTX 20系以前,可能无法使用B帧参考,如果你的显卡是40系以后,也可以自行使用-c:v av1_nvenc。

祝您压片愉快。