实时 - 如何避免使用 Flowplayer 在直播播放中累积延迟



我正在尝试使用FlowPlayer在我的网页上播放音频直播(或者更准确地说,是我的Web应用程序)。包含应用程序和播放器的页面应该长时间保持打开状态,例如数小时,经过一堆测试后,我意识到播放器会不断缓冲音频流并在每次缺少某些包时延迟播放(我想这是因为我的连接不稳定而导致包丢失)。几个小时后,从最初的 1-2 秒,流堆积了大约 30-35 秒的延迟。

所以,我试图实现的是:每当一些丢失的包会导致音频流延迟时,音频流就会避免此错误,甚至导致音频跳转,但不会堆积任何延迟。

搜索了整个文档,我能够找到的有关此参数的唯一信息是关于缓冲区长度的信息。由于我的实时需求,我实际上将bufferLength设置为 2(使用默认的 3 值,我有一个基本的 5-6 秒延迟,对于我尝试运行的应用程序类型来说是不可接受的),但我无法获得避免延迟堆积的确定方法。

我使用 RTMP 协议从 Wowza 2.0 服务器捕获我的实时流。

我终于让它工作了,我只是将缓冲区长度设置为较小的数字(准确地说是 1),并向事件处理程序"onEmptyBuffer"添加一个刷新函数,这样每次延迟开始堆积时,播放器刷新并回到 1-2 秒的延迟。这样,由于刷新,我只会损失 1-2 秒的通信时间(在我的案例研究中不是那么糟糕),尽管我的延迟不会高于原来的 2-3 秒。

最新更新