x264 x265 AV1 视频压制相关工具下载合集

A@NAZOrip
A@NAZOrip 10月4日
  • 在其它设备中阅读本文章

❀本教程是 x264、x265、AV1 等视频压制教程“下载版块”的整合贴。简化了查找相关工具名称、作用、下载和编译流程的步骤。

免责声明

本教程仅用于学习与研究目的,不构成任何形式的商业使用建议或授权。

  1. 本教程所提及的软件、脚本及命令行工具均由其各自的开发者和组织独立维护,并受其原始许可证条款约束
  2. 若用于商业或分发用途,请遵守相关的开源许可(如 GPL、BSD、MIT 等)以及各国/地区的专利法规
  3. 本文作者不对因使用、转载所述内容造成的任何直接或间接损失承担责任
  4. 读者应自行评估并承担相应的法律与技术风险
  5. 某些音视频编解码器(如 H.264、H.265、AAC)在部分地区仍受专利保护。商用项目请咨询相关专利池(如 MPEG LA、Via Licensing)或使用免专利方案(如 AV1、Opus)

急用版 x264、x265、SVT-AV1 压制教程

首页:nazorip.site镜像备份:谷歌盘百度云


基本工具

工具简介
mpv 播放器mpv.png
现代视频播放器,支持深度配置、定制,缺点是界面仅英语,中文支持要看第三方修改版。安装教程
ffmpeg
滤镜工具与编码器
ffmpeg.png
视频压制流程的核心,提供封装、解封装、滤镜、音视频处理与命令行调用接口
Voukoder
剪辑软件导出插件
voukoder.png
Premiere/Vegas/AE 开源导出插件。
OBS
开源直播与录制工具
obs.png
obs-1.webp
适合录制原素材或采集压制前后对比视频,支持命令行设定编码器,现代窗口和音频捕获方法,但也需要花时间配置。
MediaInfo
元数据读取工具
mediainfo.png
mediainfo-1.png
开源媒体信息查看器。
ffprobe
视音频读取与分析工具
ffprobe-excel.png
CLI 媒体元数据分析工具。Excel 可视化教程
DXVA Checkerdxva-checker-2.png
检测 PC 支持的硬件编解码能力
Process Lassoprocess-lasso.png
process-lasso-1.png
自动优化进程优先级与电源计划工具,保证高占用软件卡死时系统正常响应

调用编码器的 GUI 工具

工具简介
ShanaEncodershana-encoder.png
shana-encoder-1.png
ffmpeg-CLI 搭配部分 GUI,上手较慢。使用了 ffmpeg 内嵌的 libx264、libx265、NVEnc。
Simple x264 Launchersimple-x264-launcher.png
内嵌 AviSynth,支持便携版 VapourSynth,额外支持 x265 和 NVEnc 编码器,适合批量压制。
小丸工具箱
镜像:百度云 提取码 crhu
xiaowan-toolbox.png
操作简单、适合入门的中文软件,内嵌 MediaInfo、mp4box、Mkvtoolnix。

视频画质跑分工具

所有命令行工具的下载与教程见:AV1 视频压制教程

总的来说,PSNR、SSIM 不准确,不可信;测量视频画质应该选择 Spearman 单调相关系数(SROCC)和 Pearson 线性相关系数(PLCC)高,并且性能可观的画质跑分工具,如:

  • 客观:块大小感知加权峰值信噪比——XPSNR
  • 主观+客观:多方法融合——Video multi-method assessment fusion(VMAF)
  • 客观:多失真识别多分辨率结构相似性——SSIMULACRA
  • 主观+客观:XYB 空间欧几里得距离心理视觉相似性——Butteraugli
工具简介
FFMetricsffmetrics.png
ffmetrics-1.png
测量 PSNR、SSIM、VMAF 的开源 GUI 软件,支持实时图表显示和多版本并行排名。
需 .NET Framework 4.8.0 和手动添加 ffmpeg 到程序目录(或添加 ffmpeg 到 %PATH%
XPSNR(ffmpeg 内置)计算“源与压缩结果的差异”,注重暂停画质的深度改进版 PSNR,需要源视频与压缩结果的时间基对齐
VMAF(ffmpeg 内置)主观画质指标跑分,倾向于检查视觉观感体验,而非简单地差异(如高压缩下保证大体观感),需要源视频与压缩结果的时间基对齐
SSIMULACRA2 VS-HIP使用英伟达和 AMD 显卡计算 SSIMULACRA2.1、Butteraugli 的准确视频画质跑分命令行工具,准确度同样受到显卡快但精度低的影响
SSIMULACRA2_rs使用 CPU 多线程计算 SSIMULACRA2.1,比 VS-HIP 的更慢,且需要编译、需要 Python-VapourSynth 环境,优点是精度更高(由于和画质相关,因此得分也更高)

虽然 FFMetrics 在导入文件时限制了格式范围,但它直接调用了 ffmpeg,因此可以选择“所有文件”来选中新编码格式的视频流

VMAF 可在 Netflix/vmaf 获取最新版模型与运行脚本,但 ffmpeg 内置版本更容易实现多视频批量检测

SSIMULACRA2_rs 支持手动指定多线程参数,从而显著提高速度

时间基对齐工具

总的来说,由于部分视频画质跑分需要统计帧间距离等数据,因此源与压缩视频的时间基(Time base)需要对齐,否则跑分会严重失真(变差)。详见 AV1 教程完整版、 AV1 教程精简版。

GitHub:GitHub/GCDLCMCalcualtor镜像备份:谷歌盘百度云

SSIMULACRA2_rs 下载与编译

来源:GitHub/rust-av

一. 编译环境

  1. 下载并安装 rustup:rustup.rs
  2. 完整安装 VapourSynth
    • 必须安装到 C:\Program Files\VapourSynth
    • 必须选择“Install for all users”
  3. 完整安装 Python
    • 必须以管理员身份运行
    • 必须在自定义安装中选择“Install for all users”
    • VapourSynth 的版本与 Python 版本强绑定,不能随意安装版本
  4. 检查 C:\Program Files\VapourSynth\sdk\lib64 路径存在,若不存在则上述步骤执行有误,需卸载 Python 和 VapourSynth,仔细阅读并重试

二. 下载与编译

  1. PowerShell 中运行 cargo install ssimulacra2_rs完成安装,过程中不应该有任何报错
  2. C:\Users\用户名\.cargo\bin\ssimulacra2_rs.exe 拷贝到工作路径
    • 此时可以卸载 rustup
  3. 下载 LSMAS 解码器:GitHub/AkarinVS
  4. 随意根据想要的缓存文件路径位置设定选择版本:
    • 官方:cachedir="",命令行窗口当前路径,Windows 默认为 C 盘
    • cwd:cachedir=".",即运行时的命令行路径,即打开 CMD/PowerShell/Bash 时的初始路径
    • tmp:cachedir=%TEMP%,据操作系统设置指定缓存盘,Windows 一般为 C 盘
  5. 解压并拷贝下载的 LSMASHSource.dllLSMASHSource.pyd 到 VapourSynth 插件目录下:
    • C:\Program Files\VapourSynth\plugins

ssimulacra2_rs 在 PowerShell 中无法正常打印信息,需要使用 CMD 运行
LSMAS 缓存文件代表“O__<视频文件名>.lwi” 索引文件,这些文件相当于缓存,但运行完后需要手动删除


音频编码器

QAAC 依赖 Aple CoreAudio,详见下方教程内容

工具简介
QAAC高音质 AAC 编码器,见 QAAC 音频压制教程GitHub 副本

视频滤镜工具

建议直接学习 VCB-S 压制组的教程系列:vcb-s.nmm-hd.org

工具简介
VapourSynth源视频有时带有画面问题,就靠它修复。安装时应注意不同版本对 Python 环境有强绑定。安装:vapoursynth.com
AviSynth+含多线程优化,添加高位深支持的老款视频处理工具 AviSynth。现已被更先进的 VapourSynth 取代,但还有些滤镜仍是独占。
avs2yuv相当于 VapourSynth 中的 VSPipe.exe,使导出 AviSynth 到管道(pipe)变得容易。
avs2pipemod相当于 VapourSynth 中的 VSPipe.exe,使导出 AviSynth 到管道(pipe)变得容易。

视频编码器

lavf(LibavFormat)是负责封装/解封装的动态链接库
FFMS2(FFmpegSource2)是负责解码的动态链接库,用于给 x264 内置的 AviSynth 提供解码后的源

x264

来源封装支持特性
Patman✅ FFMS2 解码、Lavf 封装8-10bit
LigH✅ FFMS2 解码、Lavf 封装8-10bit
jspdr (tMod)✅ FFMS2 解码、Lavf 封装8-10bit,MCF 线程管理
x264 7mod
谷歌盘
百度云
✅ FFMS2 Lavf 解码与封装8-10bit,hqdn3d 时域降噪
Komisar (KMod)✅ FFMS2 解码、Lavf 封装8, 10bit

[8-10-12bit] 表示一个可同时支持三种色深的可执行文件;
8[12]bit 表示三种不同可执行文件版本。


x265

不支持额外的解码与封装/解封装功能并非缺陷。视频编码器不管音频,因此音频流仍需封装

x265、AV1、VVC 等较新编码的未封装格式能够提供帧率、分辨率、色彩格式等全局元数据,未封装也可在播放器中预览

来源封装支持色深支持特性
LigH⛔ 导出 .hevc8-10-12bit附 x86 32bit 版,含 libx265.dll
jpsdr⛔ 导出 .hevc8-10-12bitGCC 12.2 + MSVC_llvm 1928,支持 aq-mode 5
Rigaya⛔ 导出 .hevc8-10-12bitGCC 9.3,附 32bit 版
Patman⛔ 导出 .hevc8-10-12bitGCC 11 + MSVC 1925
ShortKatz⛔ 导出 .hevc8-10-12bitarm64~64e 的 Mac 与安卓平台使用
DJATOM-aMod⛔ 导出 .hevc10bit, 10-12bitLLVM 的针对 Intel 与 AMD 架构优化版
MeteorRain-yuuki✅ Lavf 封装8, 10, 12bitGCC 9.3 + ICC 1900 + MSVC 1916

未使用 y4m 或 lavf 时应手动指定 -D 参数


SVT-AV1 下载

编码器由两个文件组成:SvtAv1Enc.dllSvtAv1EncApp.exe
Clang(LLVM)针对当前 PC CPU 架构编译版本的性能最佳,其次是 GCC,再次为 MSVC(Visual Studio);性能差异最高可达 10%~50%

来源封装支持色深支持已编译特性
SVT-AV1⛔ 导出 .ivf8-10-12bit官方版
Gitlab Pipelines⛔ 导出 .ivf8-10-12bit官方 CI/CD 版,属于一种 Beta 测试版,但无需编译。找到最新通过的 Daily Run 计划,选择对应系统版本下载
SVT-AV1-Essential by nekotrix⛔ 导出 .ivf8-10-12bit增加了新参数,新功能参数的修改版,目前(3.1)版也与官方版进度一致
SVT-AV1-HDR by Patman86⛔ 导出 .ivf8-10-12bit增加了 HDR 支持的修改版
SVT-AV1-PSY⛔ 导出 .ivf8-10-12bit增加了更高画质选项的修改版,目前主要的优化已经合并到了 SVT-AV1 官方版,且已停止开发,版本落后于官方,与官方版一样需要编译

Windows 手动编译 SVT-AV1

官方指南:Build Guide

  1. 安装 Visual Studio(2017/2019/2022)并启用 C++ 桌面开发组件
  2. 安装 CMakeCMake Releases
    • cmake.png
  3. 安装 NASMNASM 官方下载
    • 在打开的网盘路径中根据系统和指令集位宽找最新版程序

      • 例如,Windows 64bit 选择 最新版/win64/nasm-*-installer-x64.exe
    • 安装时可以去勾选 Manual(说明书)和 VS8 Integration(Visual Studio 8 集成)
    • nasm.png
  4. 下载 SVT-AV1 源代码 并运行 Build/windows/build.bat
  5. 编译输出位于 Bin\Debug,确认可执行文件存在后测试:
SvtAv1EncApp.exe -v

使用 Clang(LLVM)编译 SVT-AV1(推荐)

所有命令建议在 CMD 或 (Git) Bash 中执行,不要使用 PowerShell。

一. 编译环境

  1. LLVM(clang 支持)LLVM Releases
    • 在打开的网盘路径中根据系统和指令集位宽找最新版程序

      • 例如,Windows 64bit 操作系统选 LLVM-*-win64.exe
    • 安装时选择 Add LLVM to the system PATH for all/current users
    • llvm.png
  2. Microsoft C++ Build ToolsMicrosoft C++ Build Tools
    • 如果已经安装 Visual Studio,且直接下载了 C++ 桌面应用开发组件,则可以跳过这步
    • 下载并运行安装程序,选择 Desktop development with C++
    • 打开一个记事本,将实际安装位置路径拷贝进去
    • 安装页面中,可以仅选择安装 MSVC 和最新的 Windows 10/11 SDK
  3. CMakeNASM:与上方教程步骤一致
  4. Git(可选):git-scm.com/download/win
  5. 编译前确认所有工具正确安装(命令行能正确输出)
:: 如果安装时选择其它路径,则修改
"C:\Program Files\LLVM\bin\clang.exe" --version
:: clang version ***
:: Target: x86_64-pc-windows-msvc
:: Thread model: posix
:: InstalledDir: C:\Program Files\LLVM\bin

where clang-cl
:: C:\Program Files\LLVM\bin\clang-cl.exe

nasm --v
:: NASM version *** compiled on *** *** ***
cmake --version
:: cmake version ***
:: CMake suite maintained and supported by Kitware (kitware.com/cmake)

二. 下载项目源代码

浏览器下载

将 GitLab/AOMediaCodec/SVT-AV1 项目 打包下载 并解压

Git 下载

若照上面安装了 Git,则打开 Git Bash,并使用下方命令下载:

  1. 移动到下载路径(不同的命令行工具路径格式和要求不同)
  • cd <下载盘>
  1. 下载 SVT-AV1
    • git clone https://gitlab.com/AOMediaCodec/SVT-AV1.git
    • cd svt-av1

三. 编译项目

完整命令行列表(仅供参考,无法一次执行)

chcp 65001
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
set "CC=clang-cl"
set "CXX=clang-cl"

cmake --fresh -B svt_build -G Ninja ^
-DCMAKE_BUILD_TYPE=Release ^
-DBUILD_SHARED_LIBS=OFF ^
-DCMAKE_CXX_FLAGS_RELEASE="-flto /DNDEBUG /clang:-O2 -march=native"
  1. 切换文本编码到 UTF-8:
chcp 65001
  1. 在先前下载的 VS Build Tools 路径中运行 vcvars64.bat 环境配置脚本(根据实际安装位置调整):
call "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"

若已经有了“C++ 桌面应用开发组件”的 64bit Visual Studio,则路径可能是:
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat

  • vcvars64.png

图:x64 Native Tools Command Prompt for VS 20xx

  1. 运行 vcvars64.bat 后会进入一个新的 CMD 界面,在此指定两个变量以定义使用 Clang-CL 编译器:
set "CC=clang-cl"
set "CXX=clang-cl"
  1. 用 CMake 生成 Ninja 项目并配置编译选项(根据压制电脑的 CPU 架构进行调整):
    • 如果当前目录不在 SVT-AV1 或 SVT-AV1-PSY 目录下,则使用 cd 移动过去
    • 如果 CPU 支持 AVX-512,且比 ZEN 2 架构新,则推荐 -DENABLE_AVX512=ON
:: 换行符取决于终端软件,CMD 使用 `^`,Bash 使用 `\`
:: 如果要编译 Debug 版而非发布版,则去掉 `-DCMAKE_BUILD_TYPE=Release` 整行
cmake --fresh -B svt_build -G Ninja ^
-DCMAKE_BUILD_TYPE=Release ^
-DBUILD_SHARED_LIBS=OFF ^
-DENABLE_AVX512=OFF ^
-DSVT_AV1_LTO=OFF ^
-DCMAKE_CXX_FLAGS_RELEASE="-flto /DNDEBUG /clang:-O2 -march=native" ^
-DCMAKE_C_FLAGS_RELEASE="-flto /DNDEBUG /clang:-O2 -march=native"
  1. 最后使用 Ninja 编译,不用 -DCMAKE_BUILD_TYPE=Release 则会输出到 BinDebug ):
ninja -C svt_build
:: *** warnings generated.
:: D[242/242] Linking C executable *:\***\SVT-AV1-master\Bin\Release\SvtAv1EncApp.exe

参考

SVT-AV1 CLang LLVM 编译的原教程位于 Discord/AV1 weeb edition/scripts-tools-and-guides,本教程进行了本地化(如修改 set 命令、添加 chcp 命令),以及额外说明(如 Visual Studio 已经安装的 vcvars),额外引导(下载具体版本),以及额外的检查(LLVM、NASM、CMAKE 是否正确安装)等改进。