gpt4 book ai didi

flash - 带宽检测在 Flash/FMS 中如何工作

转载 作者:行者123 更新时间:2023-12-04 22:01:34 26 4
gpt4 key购买 nike

我一直在为使用 JW Player 和 Flash Media Server 的客户维护一个视频系统来流式传输一些视频。直到最近,这还只是以一种比特率推出一个流。这显然不适合所有人,所以我一直在研究带宽检测。

我已经构建了一个演示系统,现在可以使用 JW Player 中的内置方法在三种比特率之间动态切换。在推送之前,我需要回答客户的一个问题:

Does it have hysteresis built in so that the stream does not oscillate if the bandwidth is marginal? Ideally, if the bandwidth is anywhere near the bottom of a band (yeh, yeh..) then I would like it to use the next speed down.

所以有两个问题:

  • 当用户的带宽恰好位于两个流的边界时会发生什么?它们会在两个流之间来回切换吗?

  • 是否有任何最佳实践可以最大限度地减少此类用户(以及一般情况下)的流跳转次数?

最佳答案

我不知道 JW Player 是如何做到的,但有一种“本地”方式可以做到。可能这个玩家使用它,也可能不使用它——谁知道呢。 Flash 视频播放器传统上是根据具体情况制作的,事实证明全能型播放器的整体质量较低。因此,考虑到自己构建播放器的特殊需求,这可能是一件好事 - 这是相当多的测试,但代码量不大。

它是如何“本地”工作的:detailed info .简而言之,您需要在用作 NetConnection 实例客户端的对象上实现 2 个函数:onBWCheckonBWDone。检测过程或多或少是这样的:服务器发送一个一定大小的数据包,并在收到后计算数据包传输所需的时间。它将尝试这样做,直到它“认为”它找到了合适的带宽。

现在尝试回答您的问题:由于带宽检查纯粹是经验性的并且每个 session 仅执行一次,因此多种因素可能会导致结果产生偏差。所以估计不是很精确,可能在很大程度上取决于客户端机器同时下载一些东西,或者连接到另一个流媒体服务器,或者 Windows 决定更新一些非常重要的组件......你得到了想法。

说实话,Flash 流式传输在设计上更喜欢延迟较小的低速,而不是延迟可能较大的高速。但是这些值不是绝对的,实际上取决于每种特定情况以及到服务器的路由、用户的 ISP 等。因此,如果我是你,我不会在上面写着“无滞后”的文件上签名,但是,提供良好的质量并非没有道理:)

关于flash - 带宽检测在 Flash/FMS 中如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9990909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com