|
本帖最后由 fulibo 于 2024-6-20 09:56 编辑
https://www.123pan.com/s/GQFDVv-0b03A.html
提取码:6666
把版本6里面的tools文件替换到5.3.1.1
可以使用!
对画质影响最大的几个选项,其余对画质影响比较小
no-rect=0:ctu=32:rskip=2:early-skip=2:rd=6:rdoq-level=2:psy-rdoq=1.0:no-sao=1:selective-sao=0:no-strong-intra-smoothing=1
aq-mode 一般来说,日常压动漫就选3,压真人特典选1或者4
色彩范围full(0-255)
参数加入
-color_range default
降噪
-strict -2 -max_muxing_queue_size 1024 -analyzeduration 100M -probesize 50M
merange是控制运动预测的搜索半径。值越大压制越慢。
正常来说只有追求极致才用到30。游戏等20就行。否则默认的16也管够了。
rc-lookahead是mbtree帧控制应用的数量 默认40 也是越高质量越好速度越慢
一般来说,下面三个组合是很好的快中慢三种选择
—me umh —subme 7 —me_range 16
—me umh —subme 10 —me_range 24
—me tesa —sumbe 10 —me_range 24
如果你是为了追求小体积的1080p,那么压制参数开启cutree是很有必要的,
保持默认的qcomp=0.60,并且让aq-mode=4,因为aq-mode=4压制出来的体积最小,最节省码率。
开cutree+qcomp=0.60节省体积和码率,aq-mode=4也节省体积和码率,
因此压制参数开cutree和用aq-mode=4的是小体积1080p爱好者的福音。
当然其他压制参数也不能太低,至少得ref=5,me=3,subme=5,merange=57,rd=6走起
对于H264编码器:
-preset ultrafast:使用ultrafast preset,以便加快编码速度。
-tune zerolatency:启用zerolatency调整,降低编码延迟。
-crf 23:调整视频质量,此处的23为可调整值,可以根据实际情况进行调整。
-vf "format=yuv420p":将视频强制转换为YUV420P像素格式。
对于H265编码器:
-preset ultrafast:使用ultrafast preset,加快编码速度。
-x265-params frame-threads=1:sliced-threads=0:rc-lookahead=0:限制帧级别的并行编码,降低延迟。
-crf 28:调整视频质量,此处的28为可调整值,可以根据实际情况进行调整。
-vf "format=yuv420p":将视频强制转换为YUV420P像素格式。 这些示例代码可以根据具体应用场景和需求进行调整和扩展。使用FFmpeg进行H264/H265编码时,选择适当的编码参数和优化选项,能够实现更低的编码延迟,并提升实时应用的性能和体验。
它默认的是bicubic,这个方案是转换速度比较快速的,很适合要求不高的压制工作,
其次我想给大家安利一下这个lanczos算法!这个算法它会对画面进行重新采样,对于尺寸缩小的压制效果很棒!
比如你有个素材是4K大小版本的你想压制的时候顺便缩小到1080那么这个算法会让你得到虽然是1080的尺寸但画质观感超过1080!
这个算法的正常骚操作是在遇到4K级尺寸的时候选显卡硬件加速开启此算法缩小压制到1080,
在主观感下与CPU压制的无太大区别(当然你CPU压也可以开这个算法肯定要比显卡算的好,
但是耗时会巨长让你等到天荒地老!),这样既提高了压制速度也大幅度减少了压制的时间!
(注意必须是显卡压制才使用))
通常在视觉无损下的码率大致:
1.480*272 1000左右
2.1280*720 5000左右
3.1920*1080 10000左右
压制视频码率计算方式!
极低码率 (宽x高x3)/4 宽x高x0.75
192x144=30k;320x240=60K;480x360=120k;640x480=250K;1280x720=500k;1920x1080=1000K.
低码率 (宽x高x3)/2
192x144=60k;320x240=120K;480x360=250k;640x480=500K;1280x720=1000k;1920x1080=2000K.
中码率 (宽x高x3)
192x144=120k;320x240=250K;480x360=500k;640x480=1000K;1280x720=2000k;1920x1080=4000K.
高码率 (宽x高x3)x2
192x144=250k;320x240=500K;480x360=1000k;640x480=2000K;1280x720=4000k;1920x1080=8000K.
极高码率 (宽x高x3)x4
192x144=500k;320x240=1000K;480x360=2000k;640x480=4000K;1280x720=8000k;1920x1080=16000K.
复制全部音频字幕参数做个简单解释
-c copy 复制所有解码吧
-map 0:a 复制所有音频
-map 0:s 复制所有字幕
不过shana用 -map 0:a 会重复第一个音轨,
所以正确参数是 -c copy -map 0:a -map 0:s -map -0:a :0 -map 0:1
参数-map -0:a :0这个是不输出第一个音轨,-map 0:1 这是输出第二个流,
一般默认是第一个音轨,这样解决了重复音轨,但音轨顺序有点变化
帧数给的值越小,则在相同码率下细节越清晰,但是帧数过低,会导致视频观感不流畅,根据自身需求来设置
以下举例提供参考
动作电影可以60帧
游戏和现实世界相机拍摄场景60帧或120帧
电视剧和网剧25帧
电影和动画23.976帧
电脑桌面教学录屏15帧
ppt文档学校教学视频5帧
真正的电影视频文件标准帧率为24帧、48帧和60帧
高清480P(360P)>=800(标准640×480分辨率,最低480*360,3GP时代)【480再广告用语叫高清,但规范的说法只能算标清】
超清720P>=1500(标准1280×720分辨率,最低960*540,这个与更高分辨率都是MP4时代)[有的网站上传有这个最低要求]
蓝光1080P>=2500(标准1920×1080分辨率)【最优4-8M】【素材时存220M】[有的网站上传有这个最高要求](做视频时最好是用720P与1080P做)
2K=(2048×1080分辨率)4K=(4096×2160分辨率)【最优8-12M】比较规范的说法是:达到 720p 分辨率,是高清信号源的准入门槛,720p被称为 HD(高清)标准;达到 1080p 分辨率,被称为 Full HD(全高清)蓝光标准。2K是指 2048×1080, Quad HD(四倍高清,2K 可以叫“四倍超高清”)实际分辨率有多种规格,上面列举的只是常见规格。;
4K是指 3840×2160, Quad Full HD(四倍全高清,4K叫“四倍超全高清”)实际分辨率有多种规格,上面列举的只是常见规格。。 蓝光最清晰,标清最差,如果网速带不起1080p那么至少720P肉眼才感觉不到模糊。 P指的是水平扫描线的数量,数量越多说明画面分辨率越高。字母P是逐行扫描的意思。
---------------
小结,一般的影片基于码率1500-2500Kbps基本上都不影响观看了,效果理想,而且大小控制得当。
而对于分辨率倒是不用太在意,1080P在此基础上压制都没出问题,没有明显的马赛克现象,
720P,576P都是可以的。而如果极力追求压缩比例,那么设成1000Kbps压制也没什么大问题。
要知道当年流行的rmvb封装格式基本上都是1000Kbps以下的码率配置,当时看效果也还可以。
当然现在的H.264编码很成熟,相比而言相同码率下效果更好。
[如果基于1000Kbps的码率压制,2小时左右的片子大概就是1个G的容量大小]
H.264有四种画质级别,分别是baseline, extended, main, high:
1、Baseline Profile:基本画质。支持I/P 帧,只支持无交错(Progressive)和CAVLC;
2、Extended profile:进阶画质。支持I/P/B/SP/SI 帧,只支持无交错(Progressive)和CAVLC;(用的少)
3、Main profile:主流画质。提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),
也支持CAVLC 和CABAC 的支持;
4、High profile:高级画质。在main Profile 的基础上增加了8x8内部预测、自定义量化、 无损视频编码和更多的YUV 格式;
H.264 Baseline profile、Extended profile和Main profile都是针对8位样本数据、4:2:0格式(YUV)的视频序列。
在相同配置情况下,High profile(HP)可以比Main profile(MP)降低10%的码率。
根据应用领域的不同,Baseline profile多应用于实时通信领域,
Main profile多应用于流媒体领域,High profile则多应用于广电和存储领域。
从压缩比例来说,baseline< main < high,对于带宽比较局限的在线视频,可能会选择high,
但有些时候,做个小视频,希望所有的设备基本都能解码
(有些低端设备或早期的设备只能解码 baseline),那就牺牲文件大小吧,用baseline。自己取舍吧
-------------------------------------h265
几个详细测试的部分和结论:
1. ref=5提升到ref=8,基本上毫无区别。文件大小改变不足1%,画质也没有高下(虽然特定帧画面区别还是有,但是难说哪个好那个坏),
所以基本认为现在x265 ref=5就够了。
2. --me 3 降低到 --me 2,就是star降低到umh,速度,码率,画质几乎没有什么改变。但是--me 4(full)据fch测试非常非常慢,效果也没有提升,故不做测试。
3. --subme 5 降低到4,速度,码率,画质几乎没有什么改变,输出基本完全一样。6未做测试。
4. sao要关闭已经是常识了,然后默认关闭的psy,开了好处很多,而且--psy-rdoq的效果大概相当于x264的--psy-trellis,开了可以大幅避免之前的“糊你一脸”。所以这个参数开启了--psy-rdoq,只不过没有量化的测试,用的是默认值1.0
5. 这样的参数在一片 3.7GHz的E3 1230v3/4770K上大约速度是 0.4fps。如果考虑avs等影响,速度还会更慢。这个速度意味着如果要编码一个2小时,Deint后为59.940fps的演唱会,需要连续不停挂机半个月。编码一个24分钟,24p的1920x1080动漫,需要正好一整天。
6. x265多线程优化良好(或者说胃口极大?)。--threads 24 --pmode 的设定下可以轻松跑满8C16T的PC,无需开pme
-----------------------------------
-------------------
crf,qp
qp 恒定画质,
crf 恒定画质,但是运动时候画质会降低来节省码率
数值越低画质越好,一般低于等于18可以认为和原画差不多
----------------------------------
rd (1-6)
分析的复杂度,数值越大画质越高,压出来体积越大,5,6非常慢, 默认3.
rd=3以上才能开启视觉分析,所以至少要设成3,现在3和4一样,5和6一样
500kbps低码下rd2会产生感知非常强的artifact,在高码下也较为明显,可称为禁区。
rd4与rd6在低码下有可见区别,
在高码下则是即使在我分别丢到PS里面和原图做差值然后拉高亮度比较过后也认为没有可视差别;
压低码可以开到rd6最大化压缩率,压高码可以降到rd4
(低码本身会使编码速度加快,低码rd6和高码rd4的速度差不多)。
---------------------------------
subme 默认2
开高小幅提高压缩率,开低提高压缩速度,5比3慢10%
subme 开高还会小幅度提高画质
推荐2,3比2提高画质和压缩率都不多,速度慢10%
下面来看看subme每个取值的作用:
取值1-5用于设置亚像素搜索精细程度,且不会使用RDO进行模式决策。
取值为6时,会使用RDO进行I和P帧的模式决策。
取值为7时,会使用RDO进行I,P和B帧的模式决策。
取值为8和9时,会使用RDO进行最佳MV的搜索。
取值为10时,会对QP进行RDO搜索确定最佳值。
不过这里提醒一下大家,也并不是你在命令行给subme配置多大的值,实际编码过程就会用多大值。
比如在配置subme大于等于10时,可能同时还需要配置x264中视觉感知psy-trellis是2,
或者开启自适应量化AQ功能才行,否则的话,subme最大只能是9
ref 参照帧数量,默认3
开高小幅度提高压缩率,同时小幅度降速,最高16
3和4速度差不多,推荐4
ref=4
参照帧数量开高会小幅提高画质,但是不明显
参考帧数,这个涉及到还原一个B帧最多读取相领多少个帧的画面,
同样可以提高压缩率,最大16,推荐将数值和你设定的B帧数量保持一致或者不要差太多
ref最大参考帧数.
默认值:3
范围从0到16的整数(具体上限与分辨率和设定的Level有关)
简单的来说...就是设置P帧可以选择它之前的多少帧作为参照帧..(B帧可以使用的数目要少一或两个...取决于它们是否作为参照帧)
当然如果此参数要生效..其值最少为1
720p的 Ref最大为8
1080p最大为 5
这个参数也会影响到压缩率..较高的值会提高压缩率..但会减慢编码速度..
推荐720p选择3-5...追求压缩率的话直接ref8吧...
bframes 最大b帧数量
设置B帧有什么好处?
B帧大小约是I帧大小的1/50,如果设置了B帧了,并不会降低清晰度,
但是可以大大降低视频的大小,这样我们就可以相应地调大码率,最终实现了提升清晰度的目标。
当然设置了B帧之后,增加了编码和解码的复杂度,这点开发者在设置的时候必须要有充分的认识。
开高小幅度提高压缩率,默认4,开到8,掉速10%
bframes 开高了会小幅降低画质
这个参数可以调整两个P帧之间B帧放置的最大数量,可以有效提高压缩率,
B帧不包含完整的画面,仅仅保留一些两帧之间有差别的地方,
它需要依靠相领多个帧将这个画面还原,最大数值为16,
追求速度和压缩率的用6,机子好一些用8-12,片子吃码率要尽可能压缩的直接16,
个人推荐6-12 压缩率不错而且速度不是太慢
tu <64|32|16>
分块大小,64速度最慢,32其次
设成32 对于复杂场景压缩压缩率最高,64 对于简单场景压缩压缩率最高
推荐用32因为速度比64快10%
16适合dvd,32适合720p,1080p,64适合4k,调得过高会拖慢速度,而且会降低画质(削平)
early-skip
默认开,开了提高压缩速度,关了提高精度,体积小幅度增加
rdoq-level 默认0,关闭,预设slow时候默认开启。
x265最重要的参数,没有之一,开了能有助于保存细节,当然会有更大文件体积。关闭可以提高压缩速度,看起来会轻度模糊。
开启掉速度30%以上,推荐舍弃其他参数,也要开启这个。
设成 1 时候 看起来效果最好,但是体积会大30%以上
设成 2 时候 效果略差,体积只会小幅度增加,推荐使用2
psy-rdoq 默认 1.0
rdoq-level 等于1或者2时候有效,开高有利于保留小细节,并且增加文件体积
me ,merange
me 搜索方式,默认hex ,用umh 或star 能小幅度提高压缩率,但是掉速20%
merange 搜索范围,默认57,me设成hex时候,对速度影响不大,但是使用umh或star时候,开高掉速严重
umh 比 star 压缩率略高,速度一样
umh 开启会小幅度提高画质,比star要好一点点
rc-lookahead 预览帧数,默认20
开高可以提高分组(gop)准确度,小幅度提高压缩率,同时小幅度降速,
sao 默认开启
设计目的是去振铃(光环现象),但是细节丰富地方会去掉太多细节,
推荐用no-sao=1:selective-sao=0关闭。
strong-intra-smoothing
对关键帧进行平滑处理,看起来挺吓人的,实际上效果不明显,推荐用no-strong-intra-smoothing=1关闭,保留细节
no-sao=1:selective-sao=0:no-strong-intra-smoothing=1
lookahead-slices
设成0有助于提高画质,开高有利于lookahead的并行度,
推荐设成0,对压缩速度无影响
qcomp 运动时候画质 crf开启时候有效
开高提高运动时候画质,开低减少文件体积
推荐0.6-0.7
人眼对运动没那么敏感,推荐设最低0.5就行,开启cutree,文件体积缩小,如果觉得质量有下降减小crf值就行
frame-threads 帧线程数量,开高提高cpu利用率,开低有利于小幅度提高压缩率
如果cpu能够满载可以考虑调到2,如果不能满载考虑使用默认值
追求画质调到1,当然cpu无法满载
aq-strength 默认1.0
低于1.0首先保留边缘,高于1.0优先保留纹理
不知道不要乱调这个
调低了体积会变小,纹理会模糊
aq-strength,0.2范围内基本没差。。。是对于mode2来说,mode1的话,0.8更好,图就不放了。
8bit vs 10bit
x265 8bit压缩默认开启磨皮美化来增加压缩率,而且无法关闭,磨皮美化会去掉一些小的噪点,这样看起来更平滑,当然也会去掉一些细节。
x265 10bit 和x264处理方式差不多,不用磨皮美化,尽可能和片源一样,所以说x265用10bit压缩有助于保留,当然文件体积要大一点点。
-pix_fmt yuv420p10le (开启10bit )
x265开启10bit 后wmaf得分能提高0.7之多
仅次于开启视觉分析rdoq-level=2 + psy-rdoq=1.0
是x265提高画质最多的选项之一
使用nvenc显卡加速转hevc 265 10bit没效果的解决方法
-pix_fmt p010le
rskip <0|1|2>
开启提高速度,关闭提高画质,0是关闭,默认1
模式1比0 wmaf 下降0.03左右
模式2比模式1压缩速度要快30%-50%左右,但是压缩率要低
对于平滑画面(噪点比较少)画质优于rskip=1,但是噪点比较多画面 画质不如rskip=1
rskip=2 和ctu=64配合不好,同时开启画质压缩率都会下降
推荐rskip=2 和ctu=32配合
rect
开了小幅度增加压缩率(0%-5%左右 )和画质,有长方形区域时候才有效,否则是空跑,开了掉速30%以上
推荐关闭增加压缩速度。
开了掉速确实厉害
视频缩放的算法
默认为bicubic算法
fast_bilinear(快速双线性缩放算法)、
bilinear(双线性缩放算法)、
bicubic(双三次缩放算法)、
area(区域平均值下采样算法(只能用缩放))、
gauss(高斯缩放算法)、
experimental(实验性的缩放算法)、
neighbor(邻近位置缩放算法)等。
缩放过滤器
BILINEAR双线性缩放算法
BICUBIC三次缩放算法 一般多数情况选这个就可以了
EXPERIMENTAL实验缩放算法
NEIGHBOR相邻重新缩放算法
AREA平均面积重新缩放算法。有较好的去波纹、噪点效果,会导致细节丢失。
BICUBLIN亮度分量三次缩放算法,双线性对色度分量,BICUBIC的升级版,可以尝试。
GAUSS高斯重新缩放算法
SINC正弦重新缩放算法
LANCZOS:Lanczos重新缩放算法。此算法是一种将对称矩阵通过正交相似变换,变成对称三角矩阵的过滤器。注重质量的放大算法,缩小画面时能保持较好锐度。
SPLINE天然立方样条曲线重新缩放算法。注重质量的放大算法。
作过一些对比大致情况如下(仅供参考):
缩小视频图像最佳算法: Bicubic
放大动漫视频图像最佳: Lanczos
放大录像视频图像最佳: Spline
放大边缘完全没有过渡色的视频图像最佳: Bilinear
bframes
默认:3
此值会影响编码速度。值越大速度越慢。视频压缩率越高。
设置可使用的B帧最大连续数。B帧体积最小所以越多B帧可以很大的提升视频压缩率。最大值16,
不建议低于10。因为压缩率会下降,如果b-adapt=2时候,时间上实在接受不了可以低于10。
b-adapt
默认:1
这个值会影响x264如何使用P帧和B帧。
0——总是使用B帧
1——快速算法bframes越大速度越快。
2——最佳算法bframes越大越慢。效果更好。
如果是在意速度的话配合--bframes 16用1,如果追求效果用2。
b-adapt:设定弹性B帧位置决策算法。此设定控制x264如何决定要放置P帧或B帧。
0:停用,总是挑选B帧。这与旧的 no-b-adapt设定相同作用。
1:“快速”算法,较快,越大的 --bframes值会稍微提高速度。当使用此模式时,基本上建议搭配 --bframes 16使用。
2:“最佳”算法,较慢,越大的 --bframes值会大幅降低速度。
me
默认:hex
设置全局运动预测的方法
dia(四边形搜索)最简单的搜索
hex(六边形搜索)比dia更有效同时耗时增加的不多。
umh(不均匀的多六边形搜索)比hex更慢,和前面两个参数不同的是,merange参数控制搜索半径。
esa(全局搜索)比umh要好一些不过并不会带来多大提升。时间也要慢一些。
tesa(变换全局搜索)比esa效果好一点。但是耗时也会增加。
推荐设置为umh。如果说是最求极致的话tesa。不过我相信你接受不了tesa的压制时间的。
subme
默认:7
设置设置亚像素估计的复杂度。越高效果越好,耗时越长。级别8会开启RDO显著增加耗时。
0 —— fullpel only
1 —— QPel SAD 1 iteration
2 —— QPel SATD 2 iterations
3 —— HPel on MB then QPel
4 —— Always QPel
5 —— Multi QPel + bi-directional motion estimation
6 —— RD on I/P frames
7 —— RD on all frames
8 —— RD refinement on I/P frames
9 —— RD refinement on all frames
10 —— QP-RD (需要–trellis=2, –aq-mode > 0)
设置7~10。低于默认值不推荐。速度快选择7~9配合--trellis 1(默认值)
trellis
默认:1
使用网格编码来增加效率
0——关闭
1——在宏块最终编码时候启用
2——所有模式下启用
同样也是值越高编码速度越慢。
trellis1 相对于 trellis0,画质有一定的提高,而且对转码速度影响较小,唯一缺陷是码率稍有增加。
trellis2 相对于 trellis1,最主要的特点是节省了码率,画质差不多。但对转码速度影响较大。
若subme为10或更高时,必须按照规定加上trellis2参数。
若subme为9或更低时,推荐使用trellis1。
|
评分
-
查看全部评分
|