当前位置: 首页 > 知识库问答 >
问题:

如何创建MPEG-DASH的MPD文件来播放webm视频?

吕自明
2023-03-14

下面是一个使用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”和“Initialization range”数字吗?

共有1个答案

居飞扬
2023-03-14

indexRange包含Segment Index Box(sidx)。它基本上是元数据片段,包含有关玩家在下载文件时应请求的片段的信息。这是来自规范的引用:

“indexRange指定包含表示的所有媒体段中的段索引的字节范围。字节范围应表示为RFC 2616第14.35.1条中定义的字节范围规范。它仅限于标识连续字节范围的单个表达式。”

sidx-box在这里有描述,可以在这里和这里找到解析器(来自dash.js项目)

初始化-根据规范:

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

希望有帮助!

 类似资料:
  • 所以我正在为我的MPEG-DASH视频生成一个非常简单的MPD清单文件,但我无法找出问题所在。这是我当前的清单文件 这个MPD文件使用我能找到的每个验证器进行验证。出于安全原因,这些段的URL被隐藏,但它们都是开放的、公开的,并且可以单独查看。但当我试图运行清单文件时,这取决于我得到的玩家。“在清单中找不到支持的源”,或者干脆什么都没发生。 你知道这怎么可能是错的吗?我目前正在使用媒体url作为绝

  • 我已经使用ffmpeg为我的视频创建了一个MPD文件,我可以在我的电脑上播放和观看它,使用:http://dashplayer.azurewebsites.net/ 现在我想确保它在andoid和IOS上正常工作和播放,有人能告诉我如何在android和IOS上测试这个文件吗?

  • 我刚刚开始使用MPEG-DASH(从客户端),遵循c057623_ISO_IEC_23009-1_2012规范。 有人知道是否有公共库或开源来验证我收到的MPD文件吗? 我在处理xml方面没有问题。 任何帮助都将不胜感激。

  • 我想玩。iPhone应用程序中的mpd文件,为此我尝试了VLC播放器,但它没有按照预期工作,播放视频花费了太多时间。我还有其他选择吗。像Android中的exoplayer这样的mpd文件。 我已经为此目的实现了VLC媒体播放器,但现在我正在寻找另一种选择。如果有人对此有任何想法,请帮助。

  • 我连续录制保存为由录制时间戳命名的单段破折号文件的视频: MP4Box-dash 10000-profile onDemand-single file-single segment-segment-segment-name filename_uufilename。mp4 用户可以指定自定义时间窗口。我希望能够合并时间框架中包含的所有mpd文件,或者从头开始生成一个mpd文件,包括指定持续时间内所有

  • 我知道使用,我们可以创建MPEG-DASH就绪文件,包括段和. mpd清单文件。例如,我正在尝试这个有效的命令: 但我不想分割视频,所以我们有一个更简单的版本,整个视频有多个版本,没有块。MPEG-DASH允许吗?如果是这样的话,我如何使用在不创建块的情况下完成它?