我正在创建一个播放静态mpeg-DASH文件的应用程序。我一直在使用MP4Box创建DASH .mp4和.mpd文件。MPD文件包含单个.mp4文件中的字节范围偏移量列表。这工作得很好,但我见过一些实现,其中的范围是单独的文件。
我想知道的是,创建DASH文件的“行业首选”方式是什么?是让一个带有偏移量的.mp4文件进入文件,还是为每个段创建单独的.mp4文件?
如果是单独的,是每个文件在开始时都有初始化内容,还是只有一个init文件,其他的都是内容?
发布于 2015-04-01 14:54:11
由于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>发布于 2014-03-31 11:24:15
对于MPEG DASH来说,单个媒体段还是多个媒体段是更好的做法取决于使用案例。
这里有一种情况,其中多个媒体段可能是首选的: MPEG DASH支持的内容传递优化之一是后期绑定。例如,对于具有多个可选音轨(不同语言)的内容,仅传送用户所选择的音频语言。与多个段(分别用于视频和多个音轨)相比,包含所有音轨的单个段的HTTP缓存效率可能较低。
如果有多个段,建议使用包含所有初始化信息的单个段(初始化段)。
https://stackoverflow.com/questions/20668564
复制相似问题