本经验有严重错误,请删除
图片似乎有点大, 所以为了手机端能看清我会再分开讲~
关于IBP帧的科普, 只能说, 恭喜你找到了全宇宙最简单易懂的版本, 那么上图!
首先是I帧, 可以理解为面包片儿.
在视频中往往会有很多画面信息相似的帧. 比如背景固定, 人物走动.
I帧会主要储存背景的画面(所以体积最大). P帧和B帧会通过参考, 直接把背景复制过来用.
然后就是B帧和P帧, 可以理解为夹在其中的各种酱料, 馅儿什么的.
当背景固定, 人物走动时, P帧会负责记录人物移动的瞬间, 顺便参考I帧以补充整个背景(所以体积第二大)
B帧直接通过参考I帧和P帧补充自己的画面(所以体积最小~)
还有一个IDR帧, 这个帧的作用就是隔离. 但同时也储存一个I帧的画面.
当一个GOP还未完成而画面又突然转变时, 如果不进行隔离的话, 后面的P帧, B帧都会参考到错误的信息, 所以IDR帧的第一个任务就是隔离.
而IDR帧本身又储存了I帧的信息, 这样后面的帧又不会变得没有信息可参考. 所以直接把IDR帧叫做I帧也是没问题的~
最后是GOP, 在标题中所说的可能容易被误解
一个GOP通常从I帧开始, 再从B帧结束, 再进入下一个相同的循环. 在三明治中就能很好的理解了. 当然取用IDR帧也是有可能的!
***如果接下来的内容难以看懂, 完全可以先跳到第3, 4篇. 再回头看会轻松很多!
紧接着--vf或者其他参数, 将这些参数全部复制到你的文本文档里.
--crf --aq-mode --keyint --min-keyint --qcomp --chroma-qp-offset --no-dct-decimate
接下来就跟着本经验把这些参数一个个设置好吧~
关于crf以及为什么要设crf: baike.baidu.com/item/x264#4_5
总结: crf模式
上传动漫电影 --crf 22-23
普通录像 --crf 24
Rip党推荐16-18.
*为什么不用2pass?
2pass, Npass等是指第一遍分析整个视频, 第二到N遍照着码率大的地方压缩. 适合小分辨率. 720p以上尤其容易炸掉画质.
上传用视频普遍分辨率小的年代可以使用2pass.
--aq-mode <量化值再分配>
让码率分配更加合理的功能, 有1, 2, 3, 4个值.
--aq-mode 1 总体不如 --aq-mode 2
--aq-mode 4 与 --aq-mode 2 相似
--aq-mode 3 总体比 --aq-mode 2 好
所以推荐 --aq-mode 3.
--keyint (key frame interval)值设整数+四舍五入.
控制IDR帧的最大间距. 进度条只能从每个I帧开始播放.
增大/减小: 进度条可用播放落点距离增加/减小.
太大: 进度条播放落点减少, 节省很多码率.
太小: 体积和码率增加, 提升视频质量
默认: --keyint 250
推荐:
电影/视频/动漫, 一般所有情况
--keyint 帧率×10 (最大10秒一个I帧或更小)
短视频, 观众不会拖动进度条
--keyint infinite (几乎没有I帧)
教程视频, 观众经常拖动进度条
--keyint 帧率×5 (最大5秒一个I帧或更小, 反正教程类视频没有激烈场景, 多放几个I帧码率不会超限~)
进度条最大落点间隔计算: [keyint值 ÷ 视频帧率]秒以内.
--min-keyint 值设整数, 要四舍五入.
用途: 最小允许的I帧间距
增大/减小: 和 --keyint 相同.
太大: 不推荐
太小: 推荐
默认: 自判定
推荐(所有情况): --min-keyint 1 (方便x264精确的放置IDR帧)
--scenecut 值设整数
用途: 计算前后帧的相似度来判断场景变更, 触发即放置IDR帧.
增大/减小: 增加/降低场景变化触发的敏感度
推荐1: 保持默认 (--scenecut 40).
推荐2(MAD,高燃剪辑,MLG,动漫OP剪辑, 全特效广告): 增大到 --scenecut 50 以保证视频质量.
推荐3(模拟钢琴, 音游录屏): --scenecut 30
说到 --qcomp 讲这个值就不得不先讲 --mbtree (默认开启)说起. 这里得借用一部分教程里说的(我做了些修改让它更易看懂).
1.
mbtree是x264后期版本添加的功能, 负责搜索多个前后帧的宏块.
2.
前后帧, 以及同一帧中相似的宏块(见图)数量越多, 量化愈低, 画质, 体积更大更好. 反之宏块数量越少, 量化愈高, 画质和体积更低更小.
3.
--qcomp 默认设为 0.6, 最小/最大应设在 0.45-0.75 之间. 负责控制每个宏块量化程度的分配.
4.
高于0.6 = 强化量化分配, 弱化宏块搜索 应对 高分辨率+高码率环境
等于0.6 = 默认量化分配, 默认宏块搜索 应对 高分辨率+低码率环境
低于0.6 = 弱化量化分配, 强化宏块搜索 应对 低分辨率+高码率环境
推荐:
1(一般教程视频/无打斗动漫/PPT录屏/模拟钢琴): 保持默认 0.6
2(电影/录像/一般广告/一般游戏录屏): --qcomp 0.67
3(一般动漫/FPS游戏录屏/GIF图收集/高阶魔方还原): --qcomp 0.71
4(高燃剪辑/含闪光战斗动漫/全特效广告/东方Project录屏): --qcomp 0.75
5(演唱会现场/夜店现场/MLG): --qcomp 0.8
6(分辨率480p以下): --rc-lookahead 250 qcomp 0.45
7*(炸裂特效MLG(建议分辨率480p以下)): --rc-lookahead 250 qcomp 0.28
最难调的参数, 没有之一. 既然能在尽量不拖慢压制速度的情况下降低码率, 所以还是认真设吧... 顺便rc-lookahead后面会讲到, 现在用到的话先复制进去不用管.
--no-dct-decimate
用途: 关闭"肉眼不容易看到的细节拿掉, 减低文件体积的功能"的参数, 不会大量拖慢压制速度.
推荐1: 不写这个参数, 增加压缩率且只略微降低画质.
推荐2(Rip党/YouTube): 当然要写, 造成画面素质降低的参数不能忍!
--chroma-qp-offset 值设整数
用途: 给色度的量化值增加一个偏移量, 可以设负值.
默认: 不设
推荐1: 不设
推荐2(片源质量高): --chroma-qp-offset 2 (x264会自动将yuv 422或yuv 420的视频减2, 这样设可以把值扳回来)
*如何知道视频是RGB, YUV420, 444还是422?
情况1: 如果你安装了potplayer播放器, 那么播放片源按Tab键就能知道咯~
情况2: 要自行搜索你的播放器如何查看视频信息.
注:
YUY2 就是 YUV 4:2:2
AYUV = 带透明通道的 YUV 4:4:4
其他情况一律不用写~
以上, x264中最难的参数部分已经被你攻略啦, 剩下的就很简单啦~
--sar 强制更改视频比例
比如16:9的视频本应显示4:3, 加一个 --sar 4:3 就能修复.
--colormatrix
告诉播放器视频的真正播放标准(旧NTSC, 新NTSC, PAL, SD等)
当视频播放标准错误时用此功能修复. 这个参数除非要放到电视节目里否则不用设, 具体不明(得到解释的程度太低)
--no-mbtree
这个参数添加后基本就和高压视频说拜拜咯, 不过有时Rip党为了保留噪点会用到(噪点会占用码率所以一般不推荐保留)~
--log-file
压制并顺便导出一份压制过程记录. 这个是给搞参数研究的人用的, 大概.
片源:
幻想万华镜 [VCB-S]~The Memories Of Phantasm~[01][Hi10p_1080p][BDRip][x264_2flac].mkv
重要信息:
帧率 23.98, 输入颜色: YUY2, 片源质量高.
参数决定!
--crf 22.5 --aq-mode 3 --keyint 300 --min-keyint 1 --qcomp 0.75 --chroma-qp-offset 2
片源:
XXX曲子的synthesia钢琴演示.mp4
重要信息:
帧率 60, 输入颜色: AVC1, 片源质量高.
参数决定!
--crf 22 --aq-mode 3 --keyint 600 --min-keyint 1 --scenecut 35 --qcomp 0.6
--fade-compensate
拆东墙补西墙, 增加渐变画面的质量. 所以有了10bit色深就被淘汰了.
--level
x264自己会选, 不用设置.
--profile
控制 x264 的解码对不同播放设备支持程度的功能, 现在的设备大多都支持所以不用设置.
--no-cabac
这个参数添加后基本就和高压视频说拜拜咯, 这次连Rip党也没有待见它的了~
--vbv-bufsize
--vbv-init
--vbv-maxrate
视频加载多少就算缓冲好了, 这个真没啥好调的, 就算调了也不能增加网速, 是吧?
*限淛視頻呮能緩洊, 芣能茬線譒倣(篨悱緩洊慲)哋糼能
--qp
--ratetol
--pbratio
--ipratio
量化值不变压缩模式以及这个模式下会用到的参数, 不推荐.
--nr (noise reduction)
执行快速降噪, 就算用也不如外部滤镜或视频编辑软件的插件. 所以没人用~
--fgo
强行保留噪点, 无助于压缩而未被官方x264采取的参数. 要用更高的crf, 甚至开 --me tesa 来控制体积. 非常不适合上传用视频.
--ABR
--aquality
目标码率模式(Birate)及该模式下所用到的参数. 用途是使x264在给定的码率压缩, 控制文件最终体积用. 但输出质量会很差所以不推荐.
--pass
--slow-firstpass
控制多次分析-压缩的模式以及该模式下用到的参数, 但实际上质量难以控制所以不如crf.
--opencl
除非使用x264单文件, 否则一般的压制编码程序会默认开启显卡辅助.
--open-gop
同上.
--slices
编码蓝光时设为4,除此之外不要使用这个选项,除非你知道你在干什么.
-b-pyramid strict
用于蓝光编码格式.
--tff
启用分行压制, 要用到的话那么估计你已经在电视台工作了(大概).
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!