2013-02-07 115 views
6

我遵循此demo它使用mediaSource API和MPEG DASH標準播放.webm視頻。 這是所使用的MPD文件:如何創建MPEG-DASH的MPD文件來播放webm視頻?

<?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」和「初始化範圍」的任何視頻?

回答

6

indexRange包含段索引框(sidx)。 它基本上是元數據片段,它包含播放器在下載文件時應該請求的片段信息。 這是從規格報價:

「indexRange指定包含在表示的所有媒體段段索引 字節範圍字節範圍 應表示並格式化爲一個字節範圍 - 規範,如 RFC 2616,第14.35.1條所定義,它僅限於一個表達式 ,用於標識一個連續的字節範圍。「

SIDX盒在HERE 描述和解析器可以發現HEREHERE(from dash.js project)

初始化 - 根據規格:

「指定的URL包括可能的字節範圍爲 初始化段「。

希望它有幫助!

+0

在遵循這些鏈接之後,我仍然無法找到如何計算Initialization.range和SegmentBase.rangeIndex。你能解釋一個例子嗎?謝謝! –

+0

開始下載SegmentBase.rangeIndex並查看其二進制數據: curl -o -r <1500-8000(SegmentBase.rangeIndex)> 您可以使用您可以下載/克隆dash.js項目中,代碼本身就有一個例子。 – inbaly

+0

所以你說我應該下載第一個查克並閱讀它,看看它在哪裏結束,然後用這些值填充MPD? –

相關問題