原创 x264 x265 QAAC 超级压制教程 2020.7版

NAZOrip@A
[email protected] 2月23日
  • 在其它设备中阅读本文章
学这个有啥用⊙∀⊙:

搞明白视频文件的质量,管理,压缩;凭直觉正确食用小丸工具箱,Voukoder,ShanaEncoder,Staxrip,MeGUI,OBS录屏等一众视频编码软件;大幅节约视频创作,录制,素材管理的时间;搞懂先进视频编码的核心原理等等...

看哪个版本(⊙_◎):

完整版里囊括了一切背后原理的科普, 精简版里只能看到程序的选项解释, x264编码器的教程是入门必看; 而因为x265编码器更先进,所以它的教程一开始就被设计为x264教程的进阶, 所以对软件工程,信息技术,高数,甚至网络技术都有科普和涉及,适合有更高画质vs体积要求,CPU很强的用户

强项(っ╹◡╹)ノ:
  1. 将针对小白, 萌新一定会问的问题, 以及最担心的"学会后是什么样的"的内容放到了综合版文章最前端
  2. 完美的文档体积, 含有大量图片,高标准排版,但仍小于3M, 加载文档只要一瞬间
  3. 不需要任何预习, 全中文语法, 彻底的翻译. 通俗精准的用辞让你告别技术论坛
  4. 字颜色和字体的控制得当, 最小化用眼疲劳
  5. 更新快, 专治疑难杂症, 欢迎新人加群, 提出看不懂的地方, 最慢半个星期内可得到解决(话说加群的人不是问ffmpeg就是滤镜,原因至今是个谜)
下载链接(皆同步更新, QQ群里有很高几率能得到问题答复):

能直接看pdf: 谷歌盘, 墙内: 百度云, QQ群存档: 691892901
附录: QAAC音频压缩教程Github
附录: ffprobe视频探针教程Github

x265待更新2020.8,x264待更新2020.7

√ x265文档增加根据不同难度渲染ass字幕的方案[单字体,有数学符号∑ ∫ π² ∞,没有艺术字,没有上下标=avs滤镜(最方便);
多字体,有数学符号+艺术体[无法显示,看链接],有上下标x⁷ x⁸ x⁹ x₇ x₈ x₉=ffmpeg -filter_complex "ass='F\:/字幕.ass'"(最强大)
★★★? 增加傅里叶变换演化出离散傅里叶变换,快速傅里叶变换,拉普拉斯变换的科普
? 增加(不对称)正弦变换(A)DST的科普,特别是和傅里叶变换,离散余弦变换的区别,特点,以及为什么x265,vp1,vvc都用它
√ x264教程重写图像视频音频表格重排有无损列表,将动图,HDR,透明作为列表顺序
√ x264教程图像视频音频表格增加avif, heif, filf, jpg-LS, jpg-XR, dpx, it, vvc等格式
√ x264教程图像视频音频表格正确梳理最大RGB,YUV和CMYK色深,且以每个通道,而不是每个像素的格式书写,以避免混淆
? 增加FIR,IIR的科普
√ 修正force-fluse参数的说明

x265教程特大更新2020.7,x264教程更新2020.6

"综合版"改名"完整版",从而利用赚便宜思维暗示用户去下载综合版
√ 下载板块增加patman编译的x264,x265,并进一步突出不同人员编译x265的额外功能,比如带libx265.dll,带x86版,整合还是分离8,10,12bit色深为一/多个程序
√ x264教程,将下载栏目的Voukoder v5.0,OpenBroadCast用法和下载进一步优化
√ x265教程下载栏目附录,强化GCC,ICC,MSVC,Clang等编译器的区别(就是除GCC外都要特定的dll)
√ x265增加“虽然和x264的量化一样,但crf越高,x265要执行的计算也越多,速度就更慢”的信息
× 等待--auto-aq的开发,现在未更新故跳过
× 测试hist-scenecut,对比原本的scenecut在速度,质量;主要观察GOP形状的不同,包括不同分块深度,不同模式决策策略下哪个分配IDR帧更合理 傅里叶变换把时间拖得太久了,跳过
× 测试hevc-aq,对比原本aq在速度,质量上的不同,主要观察两个结果下码率差距大的画面 傅里叶变换把时间拖得太久了,跳过
? 检查并更新x264 8-10bit下qpmax和qpmin的不同默认值
√ hist-scenecut增加“x265 v3.4+9版改良了hist-scenecut的算法”
强化open-gop下帧序列的详细说明,重新评估open-gop的可用性 还是不好使
√ x264教程,将voukoer的用法教程从v4换成最新的v5
√ x265教程第一页,增加检查当前x265的功能,色深,编译等信息的方法
√ x265教程增加rc-lookahead的性能信息
√ x264精简版,将码率~文件大小~时间换算从综合版拷过来
√ x264综合,精简版增加频繁黑屏 -->CPU 太热 --> 清灰 / 风扇加速的压制问题解决思路
√ x264综合,精简版降低了前半部分一些使用说明字数,缩减了命令行的占用字数,包括将链接缩减成超链接
★√ x264综合,精简版将deadzone-inter/intra参数提升了重要性,放在了trellis旁边,增加了设定建议
★★× x265综合版强化,深挖变换的原理:

√ (作者)入门微积分基础,研究高等数学常识
√ 写出傅里叶变换的科普,并使用研究微积分,高等数学术语做扩展式加注,从而增进普通用户和高等数学的关系
√ 写出傅里叶变换和离散余弦变换最大的相似,相异点:A.离散余弦变换是完成了一半的傅里叶变换,B.傅里叶变换的可编辑性(音画处理性能)吊打离散余弦变换
√ 信号处理(计算,性质)基础
★★★× 解释傅里叶级数如何发展出傅里叶变换,离散傅里叶变换,快速傅里叶变换以及拉普拉斯变换 下次一定.jpg
√ 强化二维离散余弦变换DCT科普
√ 再次强化二维离散余弦变换DCT科普,特主要是和傅里叶变换的关键区别
★× 写出一维,二维不协调离散正弦变换ADST的科普 傅里叶变换把时间拖得太久了,故跳过
? 增加DCT,DST,ADST,DFT三种变换分别应用在哪些视音频编码中的表格 下次一定.jpg
√ 增加“DFT的实现方式是用指数,DCT的实现方式是用阵列,因为[原因]”的信息
√ x265综合版,增加变换上用整数更好算, 损失更小的信息
√ 修复qcomp的范围和x264一样的错误,应该是0.5~1,默认0.6,然后补充说明变换原因和新的范围用法

×? x264综合版文档,注明“此处科普的是离散傅里叶变换,方法上不是x264使用的DCT变换(在x265综合版文档中科普);但结果一样” 使用其他方式实现了
√ x264综合版,改良残余residue的解释:是经过帧内,帧间预测后,用之前的块拼出画面与当前画面的残差
× x264,x265综合版,写入小波变换wavelet transform的科普 鸽了.jpg
× x264,x265文档,写入bilinear,bicubic,lanczos,spline变换的科普 傅里叶变换把时间拖得太久了,故跳过
× x264,x265文档,写入拉普拉斯等其它变换的科普,或者写作为滤镜? 傅里叶变换把时间拖得太久了,故跳过
√ 增加了2个颜文字
× x264,x265文档,用不同难度科普F/IIR(有/无限冲程反馈滤镜)滤镜的原理,以及在x264/5中的应用 鸽了.jpg
√ 更新了关于avx512的内容,覆盖了原本的参数介绍

x265 更新 2020.6 (跟随官方 x265 v3.4 5 月 29 更新)

√ 改正不同动态搜索方法(hex~full)下的 merange 值设置
√ 改正 merange 的说明, 计算和推荐
√ 改正 me 的说明, 计算和推荐
√ 修正动态搜索和帧内搜索的介绍段
√ 排版图片位置,减少 1 页纸用量
√ 下载栏删除 Wolfberry 编译的 x265
√ 下载栏增加有用信息,更方便确认不同 x265 编译者结果的区别了
√ 率失真优化科普减少字数
√ 优化 qocmp 参数说明
√ 增加 x265 教程急用版,将会和 x264 教程急用版独立出来
√ 修复 “重建块” 的语义错误:只有在解码步骤才会重建块
√ 增加 umh,star 和 sea 动态搜索的科普 已在 x264 文档中实现
√ 增加 frame-dup 参数在 2pass 里有帧数读取错误 bug,在 3.4 版修复的说明
√ 根据 x265 3.4 版,增强 rskip-edge-threshold 的说明
√ 补完 x265 的 2pass, Npass 模式说明,参数等内容:

√ 2pass 模块介绍:analysis 模式和 multi-pass-opt 模式
√ analysis 模块分为 analysis-save/load 部分和 avalysis-reuse 部分
√ 改良 analysis-save,analysis-load,analysis-save/load-reuse-level,analysis-reuse-file 参数说明
√ 改良 multi-pass-opt-analysis,multi-pass-opt-distortion,multi-pass-opt 参数说明
√ 分离 refine 部分到优化模式下,并改良 dynamic-refine,refine-inter/intra 参数说明
√ 根据 x265 3.4 版,增加编码天梯 encoding ladder/ABR 天梯的说明和参数

√ 增加参数 abr-ladder 的科普 (来源),说明,操作例子
√ 增加 slow-firstpass 参数的说明

x264 更新 2020.5

√ 修复下载栏目没有 lavf 编解码写成不支持. mp4 的问题
√ 改进部分科普(色深等)的语法
√ 改正小数帧率科普:不用整数是为了降低广播信号干扰,因为带宽频率一样就打架
√ 增加速度 - 压缩率 - 画质三角形图表,方便萌新明白压制定律
√ 根据 DarkShikari 建议,放弃一切大于 60 的 merange 设置,因为会降低画质和压缩率,(hex~tesa)下的 merange 值设置

[DIA/HEX:只能用 4~16 的偶数(范围 4~16,模 2 得 0;因为形状是偶数;merange 最大 16 是为什么,而且和 mb 一样大?);UMH/ESA/TESA:模 4 得 0]

★? 关闭子像素搜索 subme 对质量,码率的影响有多大,快速编码是否可以接受 直接 no-mbtree 不就行了

x264 更新 2020.4

√ 删除目录
√ 改良了两个两个色深科普的语法
√ 在 CLI,GUI 的后面增加了 API 的科普
√ 大改 x264 教程急用版,为 OBS 设置写了 API 格式的参数
√ 改良参数 trellis 的说明
√ 增加一点模式决策 mode decision 的科普
√ 增加一点模式决策~ 率失真优化的科普
√ 增加 3 个颜文字
√ 优化 ref 参数,重排多参考帧简介到帧控制中
√ 重排 VBV 参数简介,mbtree 宏块树简介
√ 精简 bframes, b-adapt 参数说明
√ 重排宏块树 mbtree 的简介到模式决策~ 率失真优化
√ 精简版文档删除所有科普
√ 优化 qocmp 参数说明
√ 修复 “重建块” 的语义错误:只有在解码步骤才会重建块
√ 增加量化值 qp 和对数线关系的科普
√ 增加 hex,umh,star 和 esa 动态搜索的科普
√ 缩小图片体积,进而缩小文档大小
√ 改良编码,解码的科普,多了 "分割 -->预测 (冗余)--> 变换 -->熵编码, 熵解码 -->逆变换 -->还原预测 -->重建" 的关系

x265 大更新 2020.5 (基本上改了整篇文档)

增加 x265 教程急用版,将会和 x264 教程急用版独立出来 以后再说......
重画离散余弦变换图片, 增加了观感,降低了文档体积

改良离散余弦变换板块写法
删除 hme 参数,换成 hme-search 和 hme-range 两个参数,并将其位置换到动态搜索板块底部,更独立

目录改成双目录,节省 2 张纸
增加 constrained-intra 参数,改变 no-strong-intra-smoothing 位置以暗示与 constrained-intra 的关联
增加 preset 和 tune 参数,造成增加了 2 张纸的用量
修复 rskip 参数问题,删除了已经不存在的 no-rskip
缩短了 no-open-gop 和 radl 参数简介句长
修复 pxl_fmt 参数的错误,应该是 pix_fmt
修复 max-cll 参数的错误,应该是和 master-display 的 L(,) 不一致
为什么 psy-rd/rdoq 开大了能在无损编码下降低码率 并不能哦
★增加率失真优化量化 rdoq 板块,重排参数 rdoq-level 和 psy-rdoq 位置
★增加模式决策 mode decision 板块,重排参数 rect, amp, limit-refs, limit-modes,rskip,rskip-edge-threshold,rc-lookahead 到模式决策中
★画出模式决策运作原理的图
★优化,改良,减字数,修复 rect, amp, limit-refs, limit-modes,rskip,rdoq-level,psy-rdoq,colorprim,transfer,colormatrix,fast-intra,b-intra,rd-refine 的推荐,排版,使用策略等
增加 Coefficient –> 系子的翻译,在视频编码里,把 coefficient 翻译成系数是在害人
删除 lowpass-dct 参数,因为所有情况都用不到
修复综合版 crqpoffs,aq-strength 参数更新丢失的问题
更改 frame-dup,dup-threshold 参数位置到帧控制中,尽管 x265 官方文档没有
增加了 5.5 个颜文字

x264 更新~ 2020.3

科普部分色彩空间的科普发现了重大错误,做了紧急修复
科普部分增加色度采样板块
(2020.2) 增加了 deblock 参数用法的有用信息,表达更清楚了
增加了 - 4 个颜文字

x265 更新~ 2020.4

根据 x265 v3.3 更新了一系列参数
增加了 deblock 参数用法的有用信息,表达更清楚了
更改 pmode 参数建议为不建议
更改 aq-mode 参数建议为只用 1 或测试性的用 4
增加转场 scenecut 参数原理的信息
增加 histogram 系列转场参数的信息,暂时没有建议
转场参数选择变得多而复杂,所以独立分为一个板块,共有 6 个参数
√ 修复了 scenecut-window 参数的错误:是转场前后增加 qp,而不是转场后增加 qp
√ x265教程第一页提高了新人劝退性能,降低了 ffmpeg 食用方式的阅读难度
√ 消灭了教程第一页参数列表的参数重复问题
√ 发现了带 lavf 滤镜的 x265,并跟着收录在了下载板块,修改了教程第一页
√ 下载板块去掉了 snowfag 编译的 x265
√ 增加了 HolyWu 编译的,带 lavf 滤镜的 x265 下载
√ 优化了率失真优化的科普,阅读难度降低
√ 根据源文档修改了 analysis-reuse-level 参数为 save 和 load 两个分身
√ 增加了 - 1 个颜文字

x265 更新~ 2020.3

√ 增加了 Rigaya 编译的 x265 下载
√ 更新了下载板块所有 x265 编译的 GCC 版本记载
√ 增加了 x265GuiEx(日语软件) 的下载, 有安装教程
√ 随 x265 官方将 --hdr 和 --hdr-opt 参数改名为 --hdr10 和 --hdr10-opt,并针对改良了参数解释,消除了误解

x265 更新~ 2020.2

√ 增加了三个参数:

√ --scenecut-aware-qp <开关, 默认关> 允许转场后默认 0.5 秒内, 拉高默认 5 个 qp 以保留更多码率给

转场本身 (的 I 帧). 可看作 x264 废弃参数 --fade-compensate 的化身

√ --scenecut-window <整数, 0~1000, 默认 500> 转场后增加 qp 窗口的时长, 单位毫秒
√ --max-qp-delta <整数, 0~10, 默认 5> 修改转场后增加 qp 窗口的 qp
√ merange 最佳效率算法的算式没写清楚,下个版本修复

√ 开头的 yuv422p10 是错误的写法,改成 yuv422p

x264&x265 更新~ 2020.1

√ 增加 premiere/AE/Vegas 用 x264/5 压制导出的插件 Voukoder 和食用方式,支持精简破解版
√ x264 教程简化了下载视频的科普
√ 增加了 2 个颜文字

x265 更新~ 2019.9.7

√ 修复了一些语法错误,增加了 6 个颜文字
√ 增加 cmd for 循环批量压制封装方法
√ 增加输入色彩空间参数 --input-csp 参数
√ 增加 frame-dup 参数
√ 增加 dup-threshold 参数

x264 更新~ 2019.9

√ 重写软件下载板块
√ 改良科普板块,主要增加 4:1:1 色度空间,32 位浮点色深的意义,色深不精确的问题等
√ 改良了整个文档所有的语句
√ 通过排版减少了 1.5 张纸的内容

x265 更新~ 2019.9.5

√ 减少了一半文档体积,好像已经小于 2M 了
√ 帧控制 / 速率控制, 自适应量化, 综合版科普做了大幅改动, 降低了阅读难度
√ crf 更改简介与建议 (综合版 + 精简版)
√ qcomp, rdpenalty, rdoq-level, aq-mode, pps/sps/rps 相关参数, crf-max 缩减简介字数
√ 修复精简版文档两处明显格式错误
√ 综合版文档缩减了 1.5 张纸的面积, 精简版文档变化不大

x265 更新~ 2019.9

√ 重写 --rd, --psy-rd 和 --psy-rdoq 三个参数
√ 重写率失真优化板块
√ 增加心理率失真视觉优化板块
√ 给率失真优化和心理率失真视觉优化板块增加了 7 个颜文字

x265 更新~ 2019.8

√ 增加了 frame-threads 和 lookahead-threads 两个参数并科普了和压制流程和参考帧 / 环路滤波的关系
√ 根据以上增加了多帧多线程编码板块
√ 2pass 板块移动到参数板块末段
√ 改良 HDR 板块的观感并增加了 20 + 个颜文字

x265 更新~ 2019.7

√ 跟进了 x265 官方的更新 (3.2 版),更新了 aq-mode 4, selective-sao,hme,hme-search 和 refine-mv 共 5 个参数
√ aq-mode 4 算入了物件边缘 (纹理) 信息,selective-sao 可以从条带 slice 的角度调整 sao,hme 和 hme-search 是速度更快的 me 搜索,refine-mv 是改版的 2pass 相关参数
√ 优化了 aq-mode 参数的语法表达,重点提醒了 aq 要等到码率不足以还原原画才会启动
√ 优化了多个参数的语法表达

x264 更新~ 2019.6

√ 优化了 aq-mode 参数的语法表达,重点提醒了 aq 要等到码率不足以还原原画才会启动
√ 增加了下载视频的科普,提醒了 "求求你们不要录屏了" 的情感感染信息
√ 优化了多个参数的语法表达

x265 更新~ 2019.6

√ 跟进了 x265 官方的更新 (3.1 版),更新了 field, fades 两个参数
√ field 代替了给分场视频手动输入 interlaced 和 fps 两个参数
√ 添加"fades 解决了画面转场导致的模糊问题"信息

x265 更新~ 2019.5

√ 修复 qg-size 的错误
√ 优化 psy-rd/rdoq 的 (综合版) 说明和参数解释
√ 增加了颜文字的数量
√ 取样自适应偏移 "重新翻译为" 取样迁就偏移 " 并优化了 (综合版) 说明
√ 优化了 (综合版) 环路滤波的说明
√ 优化了 (综合版)PPS 参数集的说明
√ 优化了一些用语
√ 优化了附录板块内容的顺序

x264 更新~ 2019.5

√ 增加了 fullrange 参数, 增加了 Premiere 导出应设置 AVI 未压缩, QuickTime 未压缩而不是 H.264 的建议, 急用版文档的内容也因此出现变动
√ --VF 参数,resize 功能里有转换 YUV 平面格式的方法 (--vf resize:,,,,i420,),还未关联给 PR 导出 PCRange 色域范围的建议

x265 更新~ 2019.4

√ 修改 crqpoffs 的参数建议为比 cbqpoffs 还要低 3
√ 增加 Wolfberry, LigH 编译的 x265, 因为理论上要比 msg7086 的快一点, 有了 32 位 x265, 以及第二个能输出 mp4/mkv 的 x265
√ 增加 GCC 版本意义的科普, 增加 Release Candidate 是什么的科普 (附在下载栏目下)

x264 更新~ 2019.4

√ 改善 keyint, min-keyint 的解释, 美化文档, 改善好几个科普部分和动态搜索的语法, 改善字体颜色以降低阅读疲劳

    John
    John  2020-08-25, 18:20

    请问一下x264怎么改General Codec ID?视频是avc1,需要转成isom

      NAZOrip@A
      [email protected]  2020-09-12, 11:39

      这个肯定是要用专门的编码器把,不过可以试试改元数据?

    kirei
    kirei  2020-08-24, 14:30

    我很认真的看完了x264篇 ,想问个有点无关紧要的问题. 确定平均码率后2pass当中pass1分析完整文件得出一堆参数,pass2是正式编码.那么对于pr使用内置的vbr2次或者插件调用x264时这种边渲染边编码是不是和2pass模式存在一定矛盾?我开始的猜测的工作流程是①边渲染边完成pass1,同时把渲染的帧存入硬盘,完成pass1时也就渲染完了,再据此控制码率进行pass2编码. 但是这么多帧的临时图片文件必然占用大量空间,我没有观察到磁盘剩余空间变小,内存占用也没有多太多. 如果选择pr导出到me的话甚至还能看到预览,居然从一开始就能看见预览,也就是说第一时刻就有文件被渲染并编码好了?而且预览的进度和进度条完全一致.这就让我很困惑,难道是pass2再次渲染生成帧?如果那样效率也太低了吧.

      NAZOrip@A
      [email protected]  2020-09-12, 11:37

      pr的渲染是很要命,如果我没记错的话,因为pass1是为了得出crf模式下所有帧的qp,然后根据pass2给出的码率批量调整这些qp,所以要渲染两边。所以直接给足码率,pass1一次性过就很好。不过强烈建议用voukoder插件,x264教程里有使用方法,可以直接控制x264用crf模式压制,而不是pr里改不了的abr模式

    Soka
    Soka  2020-07-25, 01:35

    支持

    WindCloud
    WindCloud  2020-04-28, 22:50

    菜鸟兼动漫爱好者一枚,前段时间一直在找教程,翻B站,CSDN,GitHub,看得头都大了。这是个很好的教程,感谢(#跪服)

    鱼小辉
    鱼小辉  2020-01-28, 13:27

    挺好的,刚好需要将视频用x265压压看看,就看到这个教程了

    小皮球
    小皮球  2020-01-27, 11:29

    感谢大佬!

    NAZOrip@A
    [email protected]  2020-01-27, 11:21

    这么好的教程发布两年了,没一个评论,这不科学<(。_。)>