微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

可以通过操纵bufferBehind增加Shaka中的搜索范围吗?

如何解决可以通过操纵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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?