直播推流中推I帧与推非I帧区别是什么?

4 min read

在直播推流过程中,推I帧和推非I帧的主要区别在于推流的视频帧类型。

  1. 推I帧(关键帧):I帧是Intra Frame的简称,也称为关键帧,是视频序列中独立编码的帧。它不依赖于其他任何帧来进行解码,可以单独解码和显示。I帧通常是一段时间内的视频图像中发生较大变化的帧,如场景切换、镜头运动等。I帧具有较高的图像质量,但相对较大的数据量。推送I帧可以提高视频的清晰度和稳定性,但会增加带宽要求。

  2. 推非I帧:非I帧一般指的是P帧(Predicted Frame)和B帧(Bi-directional Predicted Frame)。

  • P帧:P帧是通过对前一帧(一般是I帧或P帧)进行预测编码得到的,它依赖于前一帧来解码和显示。P帧通过记录与前一帧的差异来减少数据量并提高压缩效率。
  • B帧:B帧是通过对前后两帧进行双向预测编码得到的,它依赖于前后两帧的信息。B帧通常在视频序列中运动较快的物体或快速变化的场景中使用,它能进一步减少数据量并提高压缩比。

推非I帧相比于推I帧,可以大幅减少数据的传输量,提高视频编码的压缩效率。但是,由于非I帧的依赖性,当在推流中出现数据丢失时,容易引起画面的乱码或延迟。因此,在实时直播中,通常需要定期推送I帧来保证视频传输的可靠性和稳定性。