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

MPEG-DASH文件的格式

荆亦
2023-03-14

我正在创建一个可以播放静态mpeg DASH文件的应用程序。我一直在使用MP4Box来创建短跑。mp4和。mpd文件。MPD文件包含一个字节范围偏移量列表,这些偏移量位于单个字节中。mp4文件。这很好,但我见过范围是单个文件的实现。

我想知道哪种是创建DASH文件的“行业首选”方式?是在文件中包含一个带有偏移量的. mp4文件,还是为每个段创建单独的. mp4文件?

如果是单个文件,那么每个文件在开始时都有初始化内容,还是只有一个init文件,其他文件都是初始化内容?

共有2个答案

晋功
2023-03-14

单个或多个媒体段是MPEG DASH的更好实践取决于用例。

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

如果有多个段,建议使用一个包含所有初始化信息的段(初始化段)。

华恩
2023-03-14

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

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

  • 我一直在尝试学习MP4Box和Dash,我正在取得一些进展,但我似乎无法让我的视频正常工作。我按照将播放器添加到一个简单的html页面的说明进行了操作,并用它测试了Dash测试页面中的已知MPD,并且播放器的一切都很完美,所以我缩小了MPD文件的范围。 我通过Dash验证器运行了我的MPD文件,但它失败了。我得到以下错误: 我正在使用MP4Box来分割mp4,所以这可能是一个错误的命令。我用的是这

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

  • 我正在尝试实施Android应用程序来播放受小程序保护的视频。我在Exoplayer上构建我的应用程序,但我对有问题。 我有这个异常。我发现这个异常被抛出在这行代码中: 方法的所有参数都设置正确,但调用此方法失败,并引发上述异常。 你知道我该怎么解决吗?谢谢你的帮助。

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