如何解决可以通过操纵bufferBehind增加Shaka中的搜索范围吗?
我正在尝试使用 Shaka 将实时 DASH 流的回溯时间增加到 15 分钟。默认情况下,流可以从当前时间倒退到 5 分钟。这可以通过指示玩家存储过去 15 分钟的缓冲区来实现吗?我曾尝试使用 bufferBehind 并将其设置为 900(15 分钟)。这似乎不起作用,倒带不会超出 seek range。
这是我使用的 DASH Live URL:https://livesim.dashif.org/livesim/testpic_2s/Manifest.mpd
解决方法
在 github 上问过这个问题并得到了帮助
简短的回答是肯定的,您可以这样做,但有一些重要的警告。
bufferBehind 用于在播放头移过时我们如何管理缓冲区中的内容。但这与您想要的不同。您确实想覆盖名为 timeShiftBufferDepth 的 DASH 属性,该属性定义了可用性窗口的宽度。
可用性窗口有效地表明“这是您可以随时请求的服务器上的内容量。”您可以使用 manifest.availabilityWindowOverride 覆盖它:
player.configure('manifest.availabilityWindowOverride',900); 这将忽略清单的 timeShiftBufferDepth 并使用 900 秒(15 分钟)的值代替。播放器中的搜索范围将变为 900 秒。
但是,如果服务器实际上没有保留那么多内容,那么对 900 秒前的内容的请求将导致 HTTP 404 错误,并且播放将在该位置停止。所以你不能用它来以任何方式控制服务器的行为,或者让内容不可用。
当我们运行直播流时(使用 Shaka Streamer),只有几个片段被保留在可用性窗口之外。当我们将新分段上传到云存储时,我们也会删除旧分段。
因此,对于我们的内容,增加播放器中可用窗口的大小是行不通的。根据您使用的编码器/打包器,您可以增加窗口大小并避免使用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。