繁体   English   中英

如何通过 hls.js 跳转到 hls 流中的具体 UTC 时间戳

[英]How do I jump to a concrete UTC timestamp in an hls stream via hls.js

我们正在使用一个音频播放器,它使用 hls.js 库以 hls 格式播放广播直播。 我们正在尝试实现一项功能,允许我们的用户在直播中跳回到某个时间点(歌曲的开始时间)。 从过去两个小时的时间范围内播放的每首歌曲中,我们将这首歌的开始时间作为 UTC 时间戳。 由于 hls.js 似乎没有提供任何实用方法来直接寻找某个 utc 时间戳的位置,我们试图找出其他方法来计算流中的那个点。

我们的想法是找出当前播放流的 utc 时间戳,使用此时间戳计算流中的实时时间与我们要跳转到的歌曲的开始时间之间的秒数差,并将该差值添加到播放器在流中的当前位置(我们将此位置作为流在两小时时间窗口中播放的秒数)。 但不幸的是,我们只设法找出流中当前播放片段的开始时间,但未能找到流在片段中实际播放的确切时间点。 由于我们的片段持续时间为 5 秒,因此我们对跳跃位置的计算不是那么准确。

有没有人知道如何通过 hls.js 获取直播当前正在播放的确切 UTC 时间戳? 例如,在带有 exoplayer 的 Android 上,可以借助 HLSManifest 类计算直播中当前位置的 utc 时间戳。 该类提供了一种方法,该方法可随时返回配置的 hls 时间窗口起点的 utc 时间戳。 通过添加该时间窗口中当前位置的时间(以秒为单位),可以轻松计算流在某个时间点的确切 utc 时间戳。

感谢任何帮助,即使是关于如何使用 hls.js 的最小提示。 提前致谢。

你能解决这个问题吗? 我可以为 MPD (DASH) 实现这个,但不能为 M3U8 (HLS) 对于 MPD,使用下面的标签来实现相同的。

保持视频点播

type="static"
mediaPresentationDuration="PT2M7.3S"
minBufferTime="PT10.0S">

允许视频仅在特定时间开始

type="dynamic"
minimumUpdatePeriod="PT5S"
suggestedPresentationDelay="PT5S"
availabilityStartTime="2020-07-16T09:23:30Z"
publishTime="2020-07-16T09:23:30Z"
timeShiftBufferDepth="PT20M50.0S"
minBufferTime="PT10.0S">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM