【问题标题】:How to create a MPD file of MPEG-DASH to play a webm video?如何创建 MPEG-DASH 的 MPD 文件来播放 webm 视频?
【发布时间】:2013-02-07 12:28:35
【问题描述】:

我正在关注这个demo,它使用 mediaSource API 和 MPEG DASH 标准来播放 .webm 视频。 这是使用的 MPD 文件:

<?xml version="1.0" encoding="UTF-8"?>
<MPD
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="urn:mpeg:DASH:schema:MPD:2011"
  xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011"
  type="static"
  mediaPresentationDuration="PT888.05S"
  minBufferTime="PT1S"
  profiles="urn:webm:dash:profile:webm-on-demand:2012">
  <Period id="0" start="PT0S" duration="PT888.05S" >
  <AdaptationSet id="0" mimeType="video/webm" codecs="vp8" lang="eng" width="720"      height="306" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
  <Representation id="1" bandwidth="534144">
    <BaseURL>mevq_logo_720x306_0250k_int-150-150.webm</BaseURL>
    <SegmentBase indexRange="29052226-29054708">
      <Initialization range="0-229" />
    </SegmentBase>
  </Representation>
  <Representation id="2" bandwidth="1078766">
    <BaseURL>mevq_logo_720x306_0500k_int-150-150.webm</BaseURL>
    <SegmentBase indexRange="56003676-56006200">
      <Initialization range="0-229" />
    </SegmentBase>
  </Representation>
  <Representation id="3" bandwidth="1745140">
    <BaseURL>mevq_logo_720x306_0750k_int-150-150.webm</BaseURL>
    <SegmentBase indexRange="83686040-83688577">
      <Initialization range="0-229" />
    </SegmentBase>
  </Representation>
  <Representation id="4" bandwidth="2295403">
    <BaseURL>mevq_logo_720x306_1000k_int-150-150.webm</BaseURL>
    <SegmentBase indexRange="111588024-111590567">
      <Initialization range="0-229" />
    </SegmentBase>
  </Representation>
  <Representation id="5" bandwidth="3797938">
    <BaseURL>mevq_logo_720x306_1500k_int-150-150.webm</BaseURL>
    <SegmentBase indexRange="166960740-166963291">
      <Initialization range="0-229" />
    </SegmentBase>
  </Representation>
  <Representation id="6" bandwidth="6418657">
    <BaseURL>mevq_logo_720x306_2000k_int-150-150.webm</BaseURL>
    <SegmentBase indexRange="222165200-222167753">
      <Initialization range="0-229" />
    </SegmentBase>
  </Representation>
</AdaptationSet>
<AdaptationSet id="1" mimeType="audio/webm" codecs="vorbis" lang="eng" audioSamplingRate="41000" subsegmentStartsWithSAP="1">
  <Representation id="7" bandwidth="115479">
    <BaseURL>evq_vorbis_128kbps_cues-5sec_tracks-2.webm</BaseURL>
    <SegmentBase indexRange="11944509-11947524">
      <Initialization range="0-4501" />
    </SegmentBase>
  </Representation>
</AdaptationSet>

有人知道如何获取/计算任何视频的数字“SegmentBase indexRange”和“初始化范围”吗?

【问题讨论】:

    标签: xml html5-video mpeg webm mpeg-dash


    【解决方案1】:

    indexRange 包含段索引框 (sidx)。 它基本上是元数据片段,其中包含有关播放器在下载文件时应请求的片段的信息。 这是规范中的引述:

    "indexRange 指定包含Segment Index的字节范围 在表示的所有媒体段中。字节范围 应表示和格式化为定义的字节范围规范 RFC 2616,第 14.35.1 条。它仅限于单个表达式 识别连续的字节范围。”

    sidx 框在HERE 中描述 并且可以找到解析器HEREHERE(from dash.js project)

    初始化 - 根据规范:

    " 指定 URL,包括可能的字节范围 初始化段。”

    希望对您有所帮助!

    【讨论】:

    • 点击这些链接后,我仍然找不到 Initialization.range 和 SegmentBase.rangeIndex 是如何计算的。你能解释或给出一个例子的链接吗?谢了!
    • 先下载SegmentBase.rangeIndex,查看它的二进制数据: curl -o -r 你可以用 你可以下载/克隆 dash.js 项目,代码本身有一个示例。
    • 所以你是说我应该下载第一个卡盘并阅读它,看看它在哪里结束,然后用这些值填充 MPD?
    • @StefanVasiljevic 是的。您需要分析 sidx 元数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 2012-11-20
    • 1970-01-01
    • 2018-06-28
    • 1970-01-01
    • 2022-10-18
    • 2014-03-16
    相关资源
    最近更新 更多