实时视频流的GOP大小

时间:2017-01-07 15:49:47

标签: c++ x264 avcodec

我正在研究一种丰富的远程桌面系统,其中桌面的视频流使用avcodec / x264编码。我必须手动设置流的GOP大小,到目前为止我使用的是fps / 2的大小。 但我刚刚在维基百科上阅读了以下内容:

  

这种结构[Group Of Picture @表明存在问题,因为需要第四帧(P帧)来预测第二帧和第三帧(B帧)。所以我们需要在B帧之前传输P帧,它会延迟传输(保持P帧是必要的)。

这意味着我正在创建大量延迟,因为客户端需要接收至少一半的GOP才能输出I帧之后的第一帧。如果我想要尽可能小的延迟,那么GOP大小的最佳策略是什么?一张1张照片吗?

1 个答案:

答案 0 :(得分:2)

如果你想用h264最小化延迟,你通常应该避免使用b帧。这样,解码器至少有机会提前发射解码帧。这可以防止解码器引发的延迟。

您可能还希望通过减少/禁用预测来调整编码器的延迟。 x264具有零延迟"设置应该是找到最佳设置的良好起点。

" GOP"大小(对于h264没有真正定义afaik;我只是假设你的意思是I(DR) - 帧间隔)并不一定会影响延迟。此参数仅影响客户端必须等待多长时间才能同步"同步"在流上(时间到第一张图片)。