作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我的本地网络上有 OpenH264。
代码是这样的。
send(server, frame)
recv(client, frame)
DecodeFrameNoDelay(frame, frame_buffer)
if(frame_buffer.iBufferStatus == 1)
//process frame
这适用于我本地网络上的低延迟连接。但在像慢速 VPS 这样的高延迟连接上失败。
我可以接收第一帧,但随后流失败并且 DecodeFrameNoDelay 不返回任何帧。
如果我将比特率和 FPS 设置得非常低,我就可以让它工作。这让我相信它与时间有关?
我应该将解码后的帧放入缓冲区,然后让解码器从缓冲区解码帧吗?以保持所需的 FPS?
感谢任何反馈,谢谢!
最佳答案
h264_encoder->SetOption(ENCODER_OPTION_IDR_INTERVAL, &iIDRPeriod);
// or
h264_encoder->ForceIntraFrame(TRUE);
我假设当通过互联网流式传输时,需要经常发送 IDR 帧以保持解码同步。
我觉得这很不错,但这可以完成工作。
关于windows - OpenH264解码有网络延迟导致失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56625434/
我是一名优秀的程序员,十分优秀!