OpenH264解码有网络延迟导致失败
OpenH264 decoding with network latency causing failure
我的本地网络上有 OpenH264。
代码是这样的。
send(server, frame)
recv(client, frame)
DecodeFrameNoDelay(frame, frame_buffer)
if(frame_buffer.iBufferStatus == 1)
//process frame
这适用于我本地网络上的低延迟连接。但在像慢 VPS.
这样的高延迟连接上失败
我可以接收第一帧,但随后流失败并且 DecodeFrameNoDelay 没有 return 任何帧。
如果我将比特率和 FPS 设置得非常低,我可以让它工作。这让我相信它与时间有关?
我是否应该将解码后的帧放入缓冲区,然后让解码器从缓冲区解码帧?为了保持所需的 FPS?
感谢任何反馈,谢谢!
h264_encoder->SetOption(ENCODER_OPTION_IDR_INTERVAL, &iIDRPeriod);
// or
h264_encoder->ForceIntraFrame(TRUE);
我假设当通过 Internet 进行流式传输时,需要经常发送 IDR 帧以保持解码同步。
我觉得这个技巧很不错,但这可以完成工作。
我的本地网络上有 OpenH264。
代码是这样的。
send(server, frame)
recv(client, frame)
DecodeFrameNoDelay(frame, frame_buffer)
if(frame_buffer.iBufferStatus == 1)
//process frame
这适用于我本地网络上的低延迟连接。但在像慢 VPS.
这样的高延迟连接上失败我可以接收第一帧,但随后流失败并且 DecodeFrameNoDelay 没有 return 任何帧。
如果我将比特率和 FPS 设置得非常低,我可以让它工作。这让我相信它与时间有关?
我是否应该将解码后的帧放入缓冲区,然后让解码器从缓冲区解码帧?为了保持所需的 FPS?
感谢任何反馈,谢谢!
h264_encoder->SetOption(ENCODER_OPTION_IDR_INTERVAL, &iIDRPeriod);
// or
h264_encoder->ForceIntraFrame(TRUE);
我假设当通过 Internet 进行流式传输时,需要经常发送 IDR 帧以保持解码同步。
我觉得这个技巧很不错,但这可以完成工作。