MPEG-DASH 文件格式

3
我正在制作一款播放静态mpeg-DASH文件的应用程序。我一直在使用MP4Box创建DASH .mp4和.mpd文件。MPD文件包含单个.mp4文件中字节范围偏移量列表。这种方式可以正常工作,但是我已经看到了将范围作为单独文件的实现。
我想知道创建DASH文件的“行业首选”方式是哪种?是将所有范围偏移量放入单个.mp4文件中,还是为每个片段创建单独的MP4文件?
如果是单独的文件,则每个文件都有初始内容吗?或者只有一个初始文件,其他文件是内容?
2个回答

1
由于MPEG-DASH本身的复杂性,以及存在许多类型的有效mpd文件,声称支持MPEG-DASH的播放器并不支持全部有效类型。我见过所有播放器都容易支持的一个常见的mpd文件是带有'SegmentURL'元素的文件,基本上是描述片段的。
这里是一个例子:http://www.digitalprimates.net/dash/streams/gpac/mp4-main-multi-mpd-AV-NBS.mpd 正如你所看到的 - 它的初始化是它的第一个片段,在'Initialization'元素中描述。这是它的清单原则:
<MPD type="static" xmlns="urn:mpeg:DASH:schema:MPD:2011" minBufferTime="PT1.5S" mediaPresentationDuration="PT0H10M0.00S" profiles="urn:mpeg:dash:profile:isoff-main:2011">
 <ProgramInformation moreInformationURL="http://gpac.sourceforge.net">
  <Title>mp4-main-multi-mpd-AV-NBS.mpd generated by GPAC</Title>
  <Copyright>TelecomParisTech(c)2012</Copyright>
 </ProgramInformation>
 <Period start="PT0S" duration="PT0H10M0.00S">
  <AdaptationSet segmentAlignment="true" maxWidth="1920" maxHeight="1080" maxFrameRate="25" par="16:9">
   <ContentComponent id="1" contentType="video"/>
   <Representation id="h264bl_low" mimeType="video/mp4" codecs="avc1.42c00d" width="320" height="180" frameRate="25" sar="1:1" startWithSAP="1" bandwidth="50877">
    <SegmentList timescale="1000" duration="10000">
     <Initialization sourceURL="mp4-main-multi-h264bl_low-.mp4"/>
    <SegmentURL media="mp4-main-multi-h264bl_low-1.m4s"/>
    <!-- ... Continue with SegmentURL elements -->
    </SegmentList>
   </Representation>
   <!--   Other video Representations    -->
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" lang="und">
   <ContentComponent id="1" contentType="audio" lang="und"/>
   <Representation id="aaclc_low" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="44100" lang="und" startWithSAP="1" bandwidth="19079">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="1"/>
    <SegmentList timescale="1000" duration="9520">
     <Initialization sourceURL="mp4-main-multi-aaclc_low-.mp4"/>
    <SegmentURL media="mp4-main-multi-aaclc_low-1.m4s"/>
    <!-- ... Continue with SegmentURL elements -->
    </SegmentList>
   </Representation>  
   <!--   Other video Representations    -->
  </AdaptationSet>
 </Period>
</MPD>

0

对于 MPEG DASH,单个或多个媒体片段哪种更好取决于使用情况。

以下是适用于多个媒体片段的情况:MPEG DASH 支持的内容交付优化之一是延迟绑定。例如,对于具有多个替代音轨(不同语言)的内容,仅传递用户选择的音频语言。与包含所有音轨的单个片段相比,多个片段(分别为视频和多个音轨)可能具有更差的 HTTP 缓存效率。

在多个片段的情况下,建议使用包含所有初始化信息(初始化片段)的单个片段。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接