1

我正在流式传输具有以下结构的预先录制的 H264 视频:

[I] [x] [x] [x] [I] [x] [x] [x] [I]...

在 IDR 之间(在我的结构中)我有 32 个(此处仅显示 3 个)其他框架(所有其他不是 IDR 的东西,如 SEI、SPS、PPS ... X-es)

现在,假设我的帧的时间是这样的:

TIME:   1   2   3   4   5   6   7   8   9
FRAME: [I] [x] [x] [x] [I] [x] [x] [x] [I]...

现在我想寻找时间 4。如果我寻找那个帧并发送它,图片就会变得混乱,因为解码器需要一个 IDR 才能正确解码,所以我求助于找到合适的 IDR(在这种情况下是一个时间 1) 并将其作为时间 4 的帧发送。所以现在图片已正确解码,一切都很好......但是......如果我的 GOV 是 32,我需要发送非 IDR 帧有索引 31,如果它和相应的 IDR 之间的时间跨度是 3 秒,我实际上比我想要的时间早了 3 秒。现在,这并不精确,因为我无法找到 GOV 时间跨度的一半。另外,我不能设置更小的 GOV,所以我想要其他想法......

我的另一个想法是发送最后一个已知的 IDR,然后发送在我想要的之前的所有其他非 IDR 帧,只有我会将所有这些 RTP-TIME 设置为与相应的 IDR 相同。在这种情况下,图片被完美解码,但现在在上述情况下,非 IDR 帧之后的 3 秒与所需时间在解码器/播放器中得到快节奏(没有瞬时搜索)......

有任何想法吗?或者我只能寻找 IDR-s 而不是中间的帧?

4

0 回答 0