如何创建MPEG-DASH的MPD文件来播放webm视频? [英] How to create a MPD file of MPEG-DASH to play a webm video?

查看:150
本文介绍了如何创建MPEG-DASH的MPD文件来播放webm视频?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在关注使用mediaSource API的演示 MPEG DASH 标准播放.webm视频。
这是使用的MPD文件:

I'm following this demo which uses mediaSource API and MPEG DASH standard to play a .webm video. This is the MPD file used:

<?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'吗?

推荐答案

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

indexRange contains Segment Index Box (sidx). It is basically metadata fragment that contains information about the fragments the player should request when downloading the file. This is a quote from the spec:


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

"indexRange specifies the byte range that contains the Segment Index in all Media Segments of the Representation. The byte range shall be expressed and formatted as a byte-range-spec as defined in RFC 2616, Clause 14.35.1. It is restricted to a single expression identifying a contiguous range of bytes."

sidx框在 HERE
和解析器可以找到这里这里(来自破折号码。 js项目)

初始化 - 根据规范:

Initialization - According to spec:


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

"specifies the URL including a possible byte range for the Initialization Segment."

希望它lped!

这篇关于如何创建MPEG-DASH的MPD文件来播放webm视频?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆