具有网络延迟的OpenH264解码导致失败

时间:2019-06-17 05:56:57

标签: windows h.264 openh264

我的本​​地网络上有OpenH264。

代码类似于。

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

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

这在我的本地网络上的低延迟连接下可以正常工作。但是在高延迟的连接(例如缓慢的VPS)上失败。

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

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

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

感谢您的任何反馈!

1 个答案:

答案 0 :(得分:0)

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

我假设在Internet上进行流式传输时,需要经常发送IDR帧以保持解码同步。

我觉得这很不错,但是可以完成工作。