我正在使用一种丰富的远程桌面系统,使用avcodec / x264对桌面视频流进行编码。我必须手动设置流的GOP大小,到目前为止,我使用的是fps / 2。
但是我刚刚在Wikipedia上阅读了以下内容:
这意味着我正在创建大量延迟,因为客户端需要接收至少GOP的一半才能输出I帧之后的第一帧。如果我想要尽可能小的延迟,那么GOP大小的最佳策略是什么?一幅只有一张的照片?
最佳答案
如果要使用h264最小化延迟,通常应避免使用b帧。这样,解码器至少有机会提早发出解码的帧。这样可以防止解码器引起的延迟。
您可能还希望通过减少/禁用提前查找来调整编码器的延迟。 x264具有“零延迟”设置,这应该是找到最佳设置的良好起点。
“GOP”大小(h264并未真正定义afaik;我仅假设您是指I(DR)帧间隔)不一定会影响延迟。此参数仅影响客户端必须等待多长时间才能在流上“同步”(到第一张图片的时间)。