BigPig0/RelayLive

降低延时

Closed this issue · 5 comments

非常感谢作者分享代码。
经过一番尝试,程序终于在自己电脑上跑起来了。
测试了下,延时大约有3s。
不知道有没有办法降低延时呢?
我见到有闭源程序,httpflv实现几百毫秒的延时。
不知道延时是哪里引起的呢?

看到这篇文章
https://www.cnblogs.com/programmer-wfq/p/7281894.html#4247204
据说做到了几百毫秒的延时,没弄明白怎么做到的

  1. flv.cpp里面有个CFlv::MakeVideo方法,里面有两处m_fCB的地方,其中一处是注释掉的。前一处是每收到一个关键帧,将之前缓存的数据上抛,这必然导致延时。后一处是每收到一帧数据立即把数据上抛,但这导致频繁调用socket发送。这两处只能打开一处。
  2. rtp接收解包有可以优化的地方,特别是丢帧时,暂时没精力处理
    3.flv.js播放有延时,并且延时会逐渐增大,其他通过mse的方式播放也有这种问题。nodeplay能够播放最新图像,我和下级平台自己的客户端比较过,相差不到1s(1里面那个地方使用低延时方法)。

非常感谢作者分享代码。
经过一番尝试,程序终于在自己电脑上跑起来了。
测试了下,延时大约有3s。
不知道有没有办法降低延时呢?
我见到有闭源程序,httpflv实现几百毫秒的延时。
不知道延时是哪里引起的呢?

看到这篇文章
https://www.cnblogs.com/programmer-wfq/p/7281894.html#4247204
据说做到了几百毫秒的延时,没弄明白怎么做到的

感谢你提供的资料,很有用处,特别是前端直接播放fmp4或者h264应该是更好的方式,如果你有自己实现mse的方法,希望能提供一下。wfs.js我没有成功用起来,也在找前端的小伙伴帮忙研究。

实在抱歉,我最近才接触到GB28181和音视频流媒体,只是从宏观上对整个流程和各种技术有了一些了解,涉及到细节和具体实现就无能为力了- -! 。

发现一个修改CFlv::MakeVideo函数的后遗症,就是同时打开一个视频源,第一个打开的没事,后边打开的首屏出现的速度非常慢,大概七八秒的样子,大概是什么原因呢?

不需要转码时的延时已经解决