视频压制探索与B站视频压制参数解析

版权声明:本文为博主原创文章,转载请注明来源 https://blog.csdn.net/C1664510416/article/details/83094546

一.视频压制的目的?

    视频压制技术的初衷,是为了在保证质量的前提下最大程度缩减文件的体积。通过压制减小文件的体积(可以减少存放视频的硬盘空间),降低视频的码率(可以降低服务器的传输压力,而且降低码率还可以减轻网络传输的负担,网速不快的情况下也能欣赏到较好的画质)。对于视频站点来说,通过压制视频,在尽可能保持质量的情况下,减低运营成本;对于个人用户来说,通过压制,用一定量的带宽资源或者存储资源,就可以达到一个比较好的观影体验。

      推荐一个好用的压制工具(小丸工具箱):https://maruko.appinn.me/

二.视频文件中有什么?

          视频文件包含的信息:图像,音频,媒体信息(编码格式,帧率,码率等等),封装格式(Mp4,Mov,MKV)。

          码率,帧率,分辨率之间的关系:https://blog.csdn.net/C1664510416/article/details/83098188

                常见的封装格式

                                  

              常见的视频编码格式

                                 

              常见的音频编码格式

                                  

三.举例

      B站会对上传的视频里不满足要求的视频,进行二次压制

      设想一下,如果是你自己压制的话肯定会尽可能的不减少码率(因为你想要最好的画质),相关的参数也会尽可能的向这个方向设置。但是B站对你进行压制的话肯定不会是你这种想法的,他会尽可能的减少码率,以此来减少服务器的开支,降低网络压力,所以B站的压制参数一定会向这个方向设置。

     所以,有些朋友在上传的时候视频质量挺高的,但是被B站二次压制过后,质量就渣的不行了。因为两者目的不同,压制参数设置就会不同,自然压制出来的东西肯定会不一样的。特别是视频的某一项参数不合要求,被二次压制,如果要来的质量就不是很高,再被二次压制,渣画质就逃不掉了!

     So,你想要你的视频质量比较好的话,你只能自己压制了。自己压制就是带着脚链跳舞,要在站点的各种限制下,压制出最佳质量的视频。

      这是不会被B站二次压制的视频的参数:

                                               

这里来解释一下各个参数的含义:

[1]--视频参数:

0.分辨率 

        这个大多数人应该都是知道的,就是画面像素点的个数,越多画面越细腻;

        常见的分辨率:480p,720p,1080p,2k,4k等等;

1.视频码率最高6000Kbps

       视频码率的定义是这样的:视频数据(视频色彩量、亮度量、像素量)每秒输出的位数。一般用的单位是kbps。这里kbps 是网络的速度,如果转化为文件的大小应该除 8 。

       基本的算法是:【码率】(kbps)=【文件大小】(KB) * 8 / 【时间】(秒)。

                                             

       例如,容量4.3G,其中考虑到音频的不同格式,姑且算为600M,(故剩余容量为4.3*1024-600=3803.2M),所以视频文件应不大于3.7G,本例中取视频文件的容量为3.446G,视频长度100分钟(6000秒),计算结果:码率约等于4818kbps(3.446 * 1024 * 1024 * 8 / 6000 = 4817.857)。

       通常情况下视频流占用的带宽越高则视频质量也越高;如要求高质量的视频效果,那么需要的网络带宽也越大。但是现实情况下,网络带宽值是一定的,所以我们既想要带宽尽量小,又想要好的视频质量(又要马儿跑的快,又要马儿不吃草~~)。

       为了解决各个矛盾,视频编解码技术应运而生!评判一种视频编解码技术的优劣,是比较在相同的带宽条件下,哪个视频质量更好;在相同的视频质量条件下,哪个占用的网络带宽更少。

       是不是视频码率越高,质量越好呢?理论上是这样的,然而在我们肉眼分辨的范围内,当码率高到一定程度,感觉没有什么差别。所以码率设置有它的最优值,H.264(也叫AVC或X.264)的文档中,视频的建议码率如下:

视频大小 分辨率 建议码率
480P 720X480 1800Kbps
720P 1280X720 3500Kbps
1080P 1920X1080 8500Kbps

2.峰值码率

         码率分为CBR(固定码率:同一码流中码率始终恒定)和 VBR(动态码率:根据根据复杂程度即时确定码率)。

           CBR有个缺点,就是某些场景需要的码率高,某些场景需要的码率低;所以某些复杂场景,码率会不足影响画质;而简单场景下,CBR的码率又显得太多余了。所以出现了VBR,复杂场景下增加码率,简单场景下降低码率;这样一来视频质量不会受影响,文件大小自然可以减少了!说道这里想必大家已经理解了什么是峰值码率了吧!就是复杂场景下的码率的最高值,也可以说是实时码率的最高值。

3.色彩空间

            颜色通常用三个独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间。但被描述的颜色对象本身是客观的,不同颜色空间只是从不同的角度去衡量同一个对象。颜色空间按照基本机构可以分为两大类:基色颜色空间和色、亮分离颜色空间。前者典型的是RGB,后者包括YUV和HSV等等。同样在Pr导出时是可以设置的。

          这里有两篇篇文章,想详细了解可以参考一下:https://blog.csdn.net/C1664510416/article/details/83097929

                                                                                      https://blog.csdn.net/C1664510416/article/details/83067477

4.位深

         位深度是指在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深度来表示的。计算机之所以能够显示颜色,是采用了一种称作“位”( bit ) 的记数单位来记录所表示颜色的数据。当这些数据按照一定的编排方式被记录在计算机中,就构成了一个数字图像的计算机文件。“位”( bit )是计算机存储器里的最小单元,它用来记录每一个像素颜色的值。图像的色彩越丰富,“位”就越多。每一个像素在计算机中所使用的这种位数就是“位深度”。

         在记录数字图像的颜色时,计算机实际上是用每个像素需要的位深度来表示的。黑白二色的图像是数字图像中最简单的一种,它只有黑、白两种颜色,也就是说它的每个像素只有1位颜色,位深度是1,用2的零次幂来表示;考虑到位深度平均分给R, G, B和Alpha,而只有RGB可以相互组合成颜色。所以4位颜色的图,它的位深度是4,只有2的4次幂种颜色,即16种颜色或16种灰度等级 ) 。8位颜色的图,位深度就是8,用2的8次幂表示,它含有256种颜色 ( 或256种灰度等级 )。24位颜色可称之为真彩色,位深度是24,它能组合成2的24次幂种颜色,即:16777216种颜色 ( 或称千万种颜色 ),超过了人眼能够分辨的颜色数量。当我们用24位来记录颜色时,实际上是以2^(8×3),即红、绿、蓝 ( RGB ) 三基色各以2的8次幂,256种颜色而存在的,三色组合就形成一千六百万种颜色。

         8位已经可以表示256种了,所以完全够用了。

5.关键帧至少10秒一个

       这里我们先来了解一下帧的压缩方式,有两种:帧内压缩和帧间压缩;

                                                   

             帧内压缩:顾名思义,就是将每一帧的内容进行压缩,这样的压缩方法画质好,播放占用的计算资源也较少。如下图

                                                    

                                                    

                    帧间压缩:通过比较,取一个关键帧出来,去掉关键帧之间的帧,播放时通过计算得出去掉的帧,通过计算得出的帧也叫做 中间帧(过渡帧)。这种方式画质不太好,播放时占用的资源较多。如下图   

                                                     

                                                      

               说了上面两个内容,想必大家已经明白什么是关键帧了吧,但是B站规定关键帧至少10秒一个,可能是为了防止视频加后黑,从而突破6000kbps的码率限制。

     6.逐行扫描

           这里有一篇文章讲的很详细:https://blog.csdn.net/C1664510416/article/details/83067475

           在Pr导出时,这个参数是可以设置的。

 [2]--音频参数:

1.音频码率

         含义类似于视频的码率,在Pr导出时可设置。

2.声道数

   声道数为1时,是单声道;为2时是双声道,也称之为立体声道;

   立体声道的默认值为2,也可以设置为4。

3.采样率

   可以在Pr导出时设置,不做过多解释。

   音频参数按照规定设置好就行了,除了某些对音频要求较高的视频,如Asmr等等,这样的音频参数都是可以的。

   网络传输中的常规音频设置:48KHz/192kbps

  B站的采样率为:44100Hz,码率 <= 320Kbps

      视频中压制的相关参数已经基本解释完毕,如果能融汇理解的话,应该大体能够理解压制视频的技术了,具体压制视频要去实践,参数的控制需要慢慢调试的。

      压制视频的参数设置还是比较烦的,多多调试,希望你也尽快找到你的最佳参数。

至此视频压制参数的研究就告一段落了。

   

欢迎留言交流讨论,共同进步!

参考内容:https://www.bilibili.com/video/av4101573?from=search&seid=11666385348399959411

                  https://baike.baidu.com/item/%E4%BD%8D%E6%B7%B1%E5%BA%A6

                  https://member.bilibili.com/v2#/upload/video/frame

猜你喜欢

转载自blog.csdn.net/C1664510416/article/details/83094546
今日推荐