【问题标题】:Can seek range in Shaka be increased manipulating bufferBehind?可以通过操作 bufferBehind 来增加 Shaka 中的搜索范围吗?
【发布时间】:2021-04-12 04:54:33
【问题描述】:

我正在尝试使用 Shaka 将实时 DASH 流的回溯时间增加到 15 分钟。默认情况下,流可以从当前时间倒退到 5 分钟。这可以通过指示玩家存储过去 15 分钟的缓冲区来实现吗?我尝试使用 bufferBehind 并将其设置为 900(15 分钟)。这似乎不起作用,并且倒带不会超出seek range

这是我使用的 DASH Live URL:https://livesim.dashif.org/livesim/testpic_2s/Manifest.mpd

【问题讨论】:

  • 你从哪里得到 5 分钟?您可以制作一个示例/演示页面来查看所有这些操作吗?我尝试检查 Shaka Player 的源代码,但我看到的只是一个搜索范围被设置为 minus 5 seconds
  • 5 分钟来自 MPD XML 中的 timeShiftBufferDepth 属性。我在 github 上问过同样的问题并得到了回复 - github.com/google/shaka-player/issues/3080
  • 您应该发布提到的解决方案作为您的答案。这对于在 StackOverflow 上搜索时遇到相同问题的其他人很有用。

标签: html5-video live-streaming shaka


【解决方案1】:

曾在 github 上问过这个问题并得到了帮助

简短的回答是肯定的,你可以这样做,但有一些重要的警告。

bufferBehind 用于管理播放头移动后保存在缓冲区中的内容。但这与您想要的不同。您确实想覆盖名为 timeShiftBufferDepth 的 DASH 属性,它定义了可用性窗口的宽度。

可用性窗口有效地表明“这是您可以随时请求的服务器上的内容量。”您可以使用 manifest.availabilityWindowOverride 覆盖它:

player.configure('manifest.availabilityWindowOverride', 900); 这将忽略清单的 timeShiftBufferDepth 并改用 900 秒(15 分钟)的值。播放器中的搜索范围将变为 900 秒。

但是,如果服务器实际上没有保留那么多内容,则对 900 秒前的内容的请求将导致 HTTP 404 错误,并且播放将在该位置停止。因此,您不能使用它来以任何方式控制服务器的行为,或提供不可用的内容。

当我们运行直播时(使用 Shaka Streamer),只有几个片段保留在可用性窗口之外。当我们将新片段上传到云存储时,我们也会删除旧片段。

因此,对于我们的内容,增加播放器中可用性窗口的大小将不起作用。根据您使用的编码器/打包器,您可能能够增加窗口大小并侥幸成功。

【讨论】:

    猜你喜欢
    • 2010-11-22
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多