基础知识介绍
帧率:FPS(每秒钟要多少帧画面);以及Gop(表示多少秒一个I帧)
码率:编码器每秒变出多少数据大小,单位是kbps,比如800kbps代表编码器每秒产生800kb(或100KB)的数据
分辨率:单位英寸所包含的像素点;VGA:Video Graphics Array (视频图像分辨率)
三者的对应直播的影响因素
帧率:影响画面流畅度,与画面流畅度成正比:
- 帧率越大,画面越流畅
- 帧率越小,画面越有跳动感
如果码率为变量,则帧率也会影响体积,帧率越高,体积越大。帧率就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理每秒钟能够刷新几次。
分辨率:影响图像大小,与图像大小成正比:分辨率越高,图像越大,分辨率越低,图像越小。
清晰度
在码率一定的情况下,分辨率与清晰度成反比关系:分辨率越高,清晰度越低,图像越清晰。
在分辨率一定的情况下,码率与清晰度成正比关系,码率越高,图像越清晰;码率越低,图像越不清晰。
I、P、B帧
-
I帧:帧内编码帧(intra picture),I帧通常是每个GOP(MPEG所使用的一种视频压缩技术)的第一帧,经过适度地压缩,作为随机访问的参考点可以当成静态图像。I帧可以看做一个图像经过压缩后觉得产物,I帧压缩可以得6:1的压缩比而不会产生任何可觉察的模糊现象。I帧压缩可去掉视频的空间冗余信息,下面即将介绍P帧和B帧是为了去掉时间冗余信息。
I帧自身可以通过视频解压算法解压成一行单独的完善的完整视频画面,所以I帧去掉视频帧在空间维度上的冗余信息。
P帧:前向预测编码在帧(predictive-frame),通过将图像序列中前面已编码帧的时间冗余信息去充分去除压缩传输数据量的编码图像,也成为预测帧。
P帧需要参考其前面一个I帧或者P帧来解码成一张完整的视频画面。
B帧:双向预测内插编码帧(bi-directionalinterpolated prediction frame),既考虑源图像序列前面的已编码帧,又估计源图像序列后面的已编码帧之间的时间冗余信息,来压缩传输数据量的编码图像,也成为双向预测帧。
B帧则需要参考前一个I帧或者P帧及其后面一个P帧来生成后面一张完整的视频画面,所以P帧与B帧去掉是视频在时间维度上的冗余信息。DTS(英文全称Decoding Time Stamp):主要用于视频的解码
-
PTS (英文全称Presentation Time Stamp):主要用于视频解码阶段进行视频的同步和输出
当视频中不存在B帧时DTS和PTS是一致的.
IPB帧关系示意图.jpeg
) GOP(Group Of Picture) :两个I帧之间形成一组图片.通常在为编码器设置为参数的时候,必须设置为gop_size的值,其代表的两个I帧之间的帧数目。一个GOP中容量最大的就是I帧,所以相对来讲,gop_size设置的越大,整个画面就会越好,但是在解码端必须从接收接收到一个I帧的第一个I帧开始I才可以正确解码出原始图像,否者无法正常解码(这也是前面提到的I帧可以作为随机访问的帧)。在提高视频质量的技巧中,还有个技巧是多使用B帧,一般来说,I帧的压缩率是7(与JPG差不多),P是20,B可以达到50,可见使用B帧能节省大量的空间,节省出来的空间可以哦用来更多的保存I帧,这样就能在相同的码率下提供更好的画质。所以我们要根据不同的业务场景,适当的设置gop_size的大小,已得到更高质量的视频。