formats for MPEG-DASH files
我正在创建一个播放静态mpeg-DASH文件的应用。我一直在使用MP4Box创建DASH .mp4和.mpd文件。 MPD文件包含单个.mp4文件中的字节范围偏移量列表。效果很好,但是我看到了范围是单个文件的实现。
我想知道的是创建DASH文件的"行业首选"方法是什么?是要在文件中添加一个具有偏移量的.mp4文件,还是为每个段创建单独的.mp4文件?
如果是个人文件,则每个文件的开头都包含初始化内容,还是只有一个init文件,而其他文件都包含内容?
由于MPEG-DASH有其自身的复杂性,并且有效mpd文件的类型很多,因此声称支持MPEG-DASH的播放器并不支持所有有效类型。
我已经看到所有播放器都容易支持的一个通用mpd文件是带有\\'SegmentURL \\'元素的文件-基本上,在描述片段时。
这是一个例子:
http://www.digitalprimates.net/dash/streams/gpac/mp4-main-multi-mpd-AV-NBS.mpd
如您所见-它的初始化是它的第一个片段,在\\'Initialization \\'元素中进行了描述。
这是它的明显原则:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <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"> mp4-main-multi-mpd-AV-NBS.mpd generated by GPAC <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而言,单个媒体段还是多个媒体段是更好的做法,取决于使用情况。
在这种情况下,可能首选多个媒体段:MPEG DASH支持的内容传递优化之一是后期绑定。例如,对于具有多个替代音轨(不同语言)的内容,仅交付用户选择的音频语言。与多个片段(视频片段和多个音频Rails分开)相比,包含所有音频Rails的单个片段可能具有较差的HTTP缓存效率。
在有多个段的情况下,建议包含所有初始化信息的一个段(初始化段)。