在DASH流中读取初始化范围和SegmentBase indexRange的内容

时间:2015-09-01 08:39:28

标签: html5 webm mpeg-dash

我一直在努力了解DASH的工作原理,主要是MPD以及远程客户端如何启动以播放流。在MPD中的许多参数中,初始化范围和SegmentBase indexRange似乎非常有趣。如果我理解正确,这些值将提供基本URL和映射到关键帧的映射,如果客户端搜索/倒回视频,则必须检索这些关键帧。

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

非常感谢。 -Jamie

1 个答案:

答案 0 :(得分:3)

我也开始研究DASH,所以我的回答很简单。

当您在表示中包含单个细分时,会使用SegmentBase。对于多个细分,有SegmentListSegmentTemplate。您可以在此MPEG-DASH overview中找到更多信息。

对于MPEG-DASH,SegmentBase indexRange属性指向sidx框(Segment Index Box)的位置。该框包含有关子段和搜索等随机访问点的信息。此Quick Tutorial on MPEG-DASH中有更多信息。

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

Initialization range属性指向初始化细分。

如果服务器支持它,您可以发出HTTP范围请求以获取数据,但您需要解析它。

这里有一个Node.js ISO BMFF解析器:iso-bmff-parser-stream和JavaScript中的DASH-IF参考客户端实现可以在dash.js找到。

对于WebM,Cues可以使用mkvinfo阅读,正如@jamie报道的那样。