读取DASH流中Initialization range和SegmentBase indexRange的内容

Read contents of Initialization range and SegmentBase indexRange in a DASH stream

我一直在努力了解 DASH 的工作原理,主要是 MPD 以及远程客户端如何启动以播放流。在 MPD 的许多参数中,Initialization range 和 SegmentBase indexRange 似乎很有趣。如果我理解正确的话,这些值给出了基础 URL 和到关键帧的映射,如果客户端 seeks/rewinds 视频,则必须检索这些关键帧。

我的问题是在我实际播放视频之前是否可以看到这些值。例如,我可以使用像 youtube-dl 这样的工具来下载这些字节范围并以人类可读的方式对其进行解码吗?

非常感谢。 -杰米

我也开始调查 DASH 所以对我的回答持保留态度。

当您在表示中有一个 单个 段时,使用 SegmentBase。对于多个细分市场,有 SegmentListSegmentTemplate。您可以在 MPEG-DASH overview.

中找到更多信息

对于 MPEG-DASH,SegmentBase indexRange 属性指向 sidx 框的位置(Segment Index Box). The box contains information about the sub-segments and random access points for seeking etc. There's more info in this Quick Tutorial on MPEG-DASH

在 WebM-DASH 的情况下,段索引对应于 Cues element

Initializationrange属性指向初始化段

如果服务器支持,您可以发出 HTTP Range 请求来获取数据,但您需要对其进行解析。

这里有一个 Node.js ISO BMFF 解析器:iso-bmff-parser-stream and the DASH-IF reference client implementation in JavaScript can be found at: dash.js

对于 WebM,可以使用 mkvinfo 读取 Cues,如@jamie 所报告。