x264参数 部分3 限制篇 --preset

本经验有严重错误,请务必删除!

工具/原料

  • 新建文本文档
  • 电脑

认识preset

  1. 1

    preset, 译为预设, 预设值.

    在x264中, preset 掌管着大部分的压缩用参数, 很大程度上关系着最终视频的质量. 顺便, 在很多别家的编码器中也一般会有preset参数哦.

  2. 2

    讲 preset 需要从它掌管的参数开始! 这次一共有11个!

    --bframes --b-adapt --direct --firstpass(没用的) --no-fast-pskip --me --merange --partitions --rc-lookahead --ref --subme

    在不同的 --preset 下, 以上的参数的值也会改变, 现在无需将它们复制到你的文档中~

  3. 3

    当然, 虽然已经定下了这些预设(见第一张图), 但大多数都已经不属于这个时代了. 不过好在x264的开发者们还留了一手, 就是每个预设参数都可以被用户自定义的参数覆盖

    在写草稿时的原计划先要拿大部分内容来讲解这些参数. 但我发现了更有效率的方法, 所以接下来只需按照下面几个图片上来做即可...

复制 粘贴 调试

粘贴 调试

  • --bframes <最多连续放多少B帧

    B帧是压缩程度最高的帧, 放的越多愈能降低码率! 

    比如设置--bframes 16 (最大值16)就等于一组最多可以连续放入16个.

    *注意: 此参数在不同用途的视频的分歧很大.

    **注意: 此参数会严重影响网络视频的观看效果.

    B帧本身需要读取参考前面的帧的信息, 调的越高, 一个GOP中就有更大可能被放入更多B帧从而达到压缩效果. 

    大量B帧能达到压缩效果, 加快网络缓冲, 但上传用视频占用太多CPU会导致网络播放器从轻微到严重的磕磕绊绊断断续续的播放状态, 这种情况不要设高!

  • --b-adapt <应该放B帧还是P帧>

    x264用来决定放P帧还是B帧更好, 一共3个选项:

    0 全部设B帧 (可能会造成播放器解码困难, 不推荐)

    1 加速算法 (bframes开的越大, 速度愈快, 但效果不如2)

    2 完整算法 (bframes开的越大, 速度愈慢, 但压缩率更好)

    推荐2, 但码率允许的情况下也推荐1

  • --direct <根据空间还是时间来判断物件移动>

    直接 --direct auto 自动判断 (有的参数确实没啥好说的)

步骤写太长会关闭朗读功能...

  • --me <位移预测方式>

    速度从低到高有:

    dia菱形(快, 效果差), 

    hex六边形(快, 效果一般, 纯单向移动推荐), 

    umh可变六边形(适中, 效果好, 推荐), 

    esa全向(慢, 效果好点儿)

    tesa超全向(比上一个慢点儿, 效果好一丢丢).

    大多情况推荐 --me umh 

    模拟钢琴, midi轨道演示类的视频大多都是单向移动, 所以可以选 --me hex, 但文件码率会增大一点(1080p, 60帧下约100kbps).

    tesa只比esa慢一小点. 除非码率只差一点(10kbps)就合格了再使用, 当然更简单粗暴不拖时间的方式还是调 --vf resize 里的 sar~

  • --merange <位移预测范围大小>

    多大都可以. 在最极端的 --preset placebo 参数中这个值也只是24. 

    普通情况就设24即可, 毕竟现在电脑的配置不是几年前了.

    模拟钢琴类的视频由于几乎所有的物件都往一个方向移动, 不会很大的拖慢判断, 所以推荐32.

步骤栏目写太长会关闭朗读功能...

  • --partitions <宏块能分成多少份>

    用来精确的还原线条. --preset placebo下的是 --partitions all 所以视频的宽度和高度都会被分成16块, 见图(数一下图中横向和纵向的块的数量就明白了)

    推荐:

    高清片源+等于/高于1280*720: --partitions all

    低清片源/低于1280*720情况下: --partitions b8x8,p8x8,i8x8,i4x4 (IPB帧被分成8x8的小块, I帧还可以被分成4x4的小块.)

    片源非常不清晰时: --partitions b4x4,p4x4,i4x4.

  • --ref <能参考多少帧> 最大值16

    这个参数最终会以命令的形式告诉播放器每一个B帧和P帧能用多少个前面的帧来获取参考信息. 能参考更多帧, 标志着自身可以储存更少信息, 增强压缩效果. 

    *注意: 此参数会严重影响网络视频的观看效果.

    **注意: 此参数在不同用途的视频的分歧很大.

    网盘党/rip党: --ref 13或以上.

    上传用: 见图2

    上传用, 60帧(但很多网站不支持60帧!): 将图中所有结果减1

    在特别静态, 或者特别动态的场景(比如噪点多的录像)开高的意义不大. 反而是动态程度一般的, 开高 ref 效果比较好(见图).

    但上传用视频占用太多CPU会导致网络播放器从轻微到严重的磕磕绊绊断断续续的播放状态, 这种情况不要设高!

步骤栏目写太长会关闭朗读功能...

  • --trellis <要帮忙吗>

    基于拉普拉斯算子(什么鬼)通过分格量化将编码数据微调的参数. 好吧, 拉普拉斯算子的优点是能发现并增强微小的细节, 我就知道这么多~

    设定的值会影响trellis在计算部分的参与程度. 一般是越多越好.

    0: 关闭.

    1: 仅编码后期量化计算.

    2: 编码后期量化, 运动精度, 分割宏块等计算. 

    所有情况推荐 --trellis 2

  • --rc-lookahead <扫描多少帧>

    扫描往后的帧并把变化数据交给量化工具. 

    建议设置为视频原帧数的三倍, 个位数除以2, 小数去尾.

    *对于分辨率很低(240p, 360p, 480p等)可以考虑设为视频源帧数的5倍

    (极限值为 250)

    并降低qcomp来保证最大的扫描距离和量化压缩强度哦(qcomp后面会讲到, 现在可以无视)

  • --no-fastpskip <认真压缩每一个p帧>

    不会很大的拖慢压制速度, 建议在没有包含此项的preset中加上.

  • --subme <像素估算复杂度/运动检测辅助(见图)> 

    值设在0-11之间, 设的越大提升越强.

    推荐最高的值: 11 (有的x264版本不支持, 这种情况下用10)

    *注意单独使用这个值要保证 trellis=2 以及 aq mode>0

    以上, 

    所有参数配置完成, 到此 preset 参数就设置好啦~

举个栗子

注意事项

  • ref一定不要乱调!

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具