2

我有 OpenH264 在我的本地网络上工作。

代码是这样的。

send(server, frame)
recv(client, frame)
DecodeFrameNoDelay(frame, frame_buffer)

if(frame_buffer.iBufferStatus == 1)
//process frame

这适用于我的本地网络上的低延迟连接。但在慢速 VPS 等高延迟连接上失败。

我可以接收第一帧,但随后流失败并且 DecodeFrameNoDelay 不返回任何帧。

如果我将比特率和 FPS 设置得很低,我可以让它工作。这让我相信它与时间有关?

我是否应该将解码后的帧放入缓冲区,然后让解码器从缓冲区中解码帧?至于维持所需的FPS?

我感谢任何反馈谢谢!

4

1 回答 1

0
h264_encoder->SetOption(ENCODER_OPTION_IDR_INTERVAL, &iIDRPeriod);
// or
h264_encoder->ForceIntraFrame(TRUE);

我假设当通过互联网流式传输时,需要经常发送 IDR 帧以保持解码同步。

我觉得这很糟糕,但这可以完成工作。

于 2019-06-19T05:22:14.127 回答