NORM TEAM论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1537|回复: 3

一个教程:如何更高效的压缩视频

[复制链接]
  • TA的每日心情
    奋斗
    2016-1-14 16:37
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2022-7-13 20:51:36 | 显示全部楼层 |阅读模式
    原帖作者禁止转载,只贴链接吧

    https://www.bilibili.com/read/cv6546252/

  • TA的每日心情
    奋斗
    2016-1-14 16:37
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2022-7-14 02:43:31 | 显示全部楼层
    AVC/H264编码教程(二)
    https://blog.csdn.net/dreamxiang68/article/details/7251976

    编码次数(应当选择何种编码模式)

    如果你想要得到一个确定的文件体积,我推荐采用二次编码的模式。例如,你希望你生成的文件体积为精确的170.00MB,那么你就需要采用二次或三次编码。严格地说,一次编码针对的是那些严重缺乏时间或者并不期望得到高质量输出的人。二次编码能够满足大部分人的需要,它可以生成高质量的文件和确切的文件体积。然而,单次编码模式有时候会被用于恒定质量的输出。如果你想要编码得到的是一个统一的、恒定质量的视频而并不在意文件的体积,那么可以参见下面的“恒定量化和恒定质量模式”部分。

    恒定量化和恒定编码模式

    如果你并不需要你的视频得到一个固定的、明确的体积,或者想让编码器来决定分配多大的文件体积来获得最佳的质量,那么可以考虑一下通过“单次编码 - 量化(Single Pass - Quantizer)”或“恒定质量(Constant Quality)”模式来进行固定质量的编码。这两种模式的不同之处在于“恒定质量”模式采用了更为先进的比率控制算法,能够在复杂度较高而人眼不太注重细节的场景下降低比特率。这就意味着即使质量针对人眼的视觉效果进行了动态分配,它看起来也仍然是恒定的。很多人可能会因为恒定质量模式的这种设计而认为该模式要更胜一筹,但是如果你编码的是比特率很低的动画视频,量化也许是个更好的选择。

    •     确定你在编码选择菜单(A.)中选择了“单次编码 - 量化”或者“恒定质量”模式。
    •     记住更高的量化值或“质量”模式(B.)将会使视频的实际质量更低,而文件体积会更小。“质量”和量化值相近,但是被乘以了10。
    •     除非你是为了存档(收藏)或再现(原来的)品质,否则请不要使用15(或150)以下的量化值。
    •     同样地,也不要使该值大于40(或400):即使最终的文件体积会小到难以置信,这种编码的质量也会使人难以接受,除非你编码的视频具有极其锐利的画质和反差极大的边缘表现。
    •     对大多数热衷于高质量视频的人来说,比较好的估计值是在20(或200)(最高质量)到30(或300)(相对较低的质量)的范围内,根据个人的偏好和硬盘为编码文件所预备的空间来进行具体选择。
    •     对于卡通动画之类几乎没有什么复杂纹理的视频可以考虑使用比较高一些的量化值。
    •     对于现实的题材,特别是那种具有很多晦暗的场景和重要而精细的纹路的视频,应当考虑将量化值降低一个较大的幅度。
    •     继续在其他的选项卡中设定余下的参数。
    •     在恒定质量模式中,“量化压缩(Quantizer compression)”用以控制在复杂的和高运动量的场景中的质量波动,可以参考下面的标题“高速度,高质量”中的描述。
    •     在其他的选项卡中进行其余的设定。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-1-14 16:37
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2022-7-14 02:45:36 | 显示全部楼层
    AVC/H264编码教程(四)

    https://blog.csdn.net/dreamxiang68/article/details/7251978


    编码:高速度,高质量

    这一部分介绍达到编码质量和编码速度的最佳组合的必要步骤。以下是在将编码速度提升到最高的情况下,制作最高质量的AVC编码的推荐设置。

    •     “关键帧增益(%)(Keyframe boost (%))”(A.)控制关键帧(I帧、节点帧、转场帧(I-frames, intra frames, the “scene-changer” frames))超出其他P帧而被增益的质量多少。增益会给这些关键帧一些外加的质量,因此从这些帧中预算出的帧也会具有较高的质量,即获得更好的视觉效果。另外,关键帧经常会给一些静止的场景提供背景基础,在这些场景中,很多静止的元素会在画面上持续停留一段时间(特别是在一些慢节奏的动画中),这样,提升这些关键帧就显得非常重要。保持这个数值在50到0之间(数值是0的话会获得一个更一致的质量,所有的帧都被同样地对待处理)以便达到一个可以被普遍接受的一致结果。对全局来说,40是一个推荐值;然而,在个别情况下,进行少许的增减可能会得到更好的效果(在低比特率/低质量的动画编码中增加该值,在现实题材的视频或明亮的、背景经常变化或移动的连续快速运动的视频中减少该值)。然而,在大多数的普遍情况下,只要你的片源不是太过特别——例如使用了大量的渐变场景转换或者过于发灰或者发亮,抑或是发暗(在这种情况下你可能会想要调整它)——最好是不用过多地担心这个选项。
    •     “B帧缩减(%)(B-frames reduction (%))”(B.或者在比特率选项卡)控制B帧相对于其他的P帧所减少的量化值(质量)。对人类的视觉系统来说,这种在B帧的比特率上的减少很难被注意到,因为B帧是不显著地用于其他的P帧之间来更有效地重构视频的运动。将这个值设定地低一些可以从本质上增加压缩率,但是你就可能会遭致视频的运动出现过多的人工计算因素和不协调地细节再现效果的惩罚。对高比特率和低量化值的现实题材的视频,你可能想要将该值下降到略微低于30的推荐值,也许是25或者20,以此来保证一个更一致的细节质量、运动效果和视频整体。对于动画的内容(卡通、动画等),你可以将这个值设定到50,对某些动画的题材甚至可以到60,这是由动画在运动的效果和细节变换的精确性上先天的局限性所决定的。
    •     量化压缩(%)(Quantizer compression(%))”(C.),也被理解为“比特率变动(Bitrate Variability)”,控制x264在你所指定的比特率所确定的量化值(质量)的范围内的波动幅度。这个选项设定得越低,量化(质量)的变化就会更趋于飘忽和不稳定。例如说,将该值设定为0会允许x264在每一帧中剧烈地改变它的质量:缺点是一些“简单”的帧(低细节、低运动量)会在你所选择的比特率下显示出惊人的效果,而其他“复杂”的帧(高细节、高运动量)显示效果就会相当糟糕,因为x264可能会剧烈地降低它的质量来维持所需的比特率,以获得一个比较稳定的、恒定的比特率。然而,这个设定越高,质量就会趋于相等,从而获得一个具有更加稳定的质量的视频。例如,将该值设定为100会强迫x264对所有的帧使用相同的质量(无波动),因此从理论上讲,它可能给某一帧分配10kbps而另一帧是1000来保持两者之间相同的质量(纯VBR);所以从全局上看,所有的帧都会被一致地量化,按照质量波动的限制来处理同样的质量,即使比特率可能会剧烈地波动。
    •     从这个角度来考虑:这个选项的功能正如其名称所说。你将这个“比特率变动”设定得越小,从一个场景到下一个场景之间的比特率的变动就越少,但是其质量会显得更为恒定。
    •     这个选项的设定和个人的偏好有关,如果你不是特别明确地想要进行一个CBR的编码(对数据流之类,在这种情况下你可以设定为0)或者是等质量下的VBR编码(在这种情况下你可以设定为100),我强烈建议你保持默认值60不变以获得最佳的质量。
    •     当然,比特率变动的控制只是在一个比特率可以被控制的模式中可用,例如多次编码或者“单次编码 – 比特率”模式(这里我们将不讨论这个模式),对于恒定量化的模式是不可用的,因为它在质量上已经恒定了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-1-14 16:37
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2023-3-30 03:57:19 | 显示全部楼层
    在坛子里看到的码率控制,转过来合在一起备忘

    视频的码率直接影响到了片子的编码质量。要想效果好,码率足够是最重要的必要条件之一。但是想实现更好的效果和控制文件的体积(码率)之间始终是一对矛盾。这就需要我们通过实践,在强大的编码器的帮助下总结出合适的码率,实现尽量好的效果。

    x264有4种码率控制方式,分别是1pass bitrate、crf、qp和2pass bitrate。其中2pass bitrate包含pass bitrate。

    1pass bitrate和qp(恒定量化值)一般不推荐使用。


    crf
    --crf 23 (默认)

    一种根据片子质量自动分配码率的vbr码率控制方式。一遍编码,如果对码率没要求请尽量使用crf模式。

    可用的值从1到51,越小编码质量越好,码率越高。一般使用16到24,可以为浮点。

    crf并不是恒定质量的方式,同一片子同一crf值,其他参数不同可能码率和质量能差比较大,不同的片子之间就更没有可比性了。


    2pass bitrate
    这种方式可以精确的得到想要的平均码率,2pass代表需要做2次编码,第一遍编码x264先分析全片,得到一个stats文件和一个mbtree 文件(默认使用mbtree)。第二遍编码以这两个文件作参考分配合理的码率。需要特定的码率(或文件大小)一定要用2pass(或多pass)编码。

    除了2pass,还有多pass模式,在之前分析的基础上再继续分析,理论上会使码率分配更加合理,但实际上2pass已经足够了。


    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    小黑屋|手机版|NORM TEAM论坛 ( 粤ICP备16015586号-3 )

    GMT+8, 2025-5-16 01:21 , Processed in 0.054809 second(s), 10 queries , File On.

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表