接上一篇。
三.码率
码率是单位时间内编码器产生的数据量。由于H264编码的压缩特性,编码器产生的码率并不是完全等于我们设定的码率。如前所述,码率控制的方式不同,实际码率会有很大的不同,特比是在vbr模式下,如果是静止画面,即使我们设定的目标码率为5M,实际码率可能只有几十K。而对于剧烈运动的场景,码率可能会升至7M+。
在其余参数相同的情况下,我们设定的目标码率对计算资源的影响不大,比如设定的目标码率为8M和10M相比,CPU的使用率可能基本感觉不出什么变化,当然这也和我们CPU本身的计算能力有关。归结起来就是,目标码率越高,对计算资源要求越高,但该影响不明显。
码率对视频质量的影响是显而易见的,在其余条件相同的情况下,码率越高,画质质量会越好,这是由于更高的码率携带了更加丰富的视频信息,越能呈现更丰富的细节。
在实际项目中,我们最要关心的是码率对带宽的影响。OBS中设置的目标码率是编码器编码后的数据率,实际上由于传输中还牵涉到源端和目标端的信息交互、信号重传、协议开销等等,所以实际占用的带宽会比编码器产生的数据率高。推荐申请的运营商接入带宽不能低于目标码率的2倍。如果当地的网络资源不稳定,波动较大的话,那么申请的运营商带宽还应该提高。
一旦实际码率高于带宽,就会出现丢帧现象。编码器生成的码字会存放在缓存(cache)中,再通过网络传输到目标端,缓存是编码器申请的一块内存空间。
网络传输的速度小于编