mpeg dash 的element BaseURL语法规则遵循RFC 3986,需要做简单了解:
I.1URI各个部分的名称
foo://:8042/over/there?name=ferret#nose
\_/\______________/\_________/\_________/\__/
|||||
schemeauthoritypathqueryfragment
|_________________________|__
/\/ \
urn:example:animal:ferret:nose
scheme:协议的名称,以字母开头,后接任意个字母/数字/+/-/.的组合。
scheme=ALPHA*(ALPHA/DIGIT/"+"/"-"/".")
authority:以双斜线”//”开始但不包括”//”,以紧接着的第一个’/’或者?或者#(#在这里
叫着numbersign)结束但不包括该符号,或者一直到URL结束为止。
authority=[userinfo"@"]host[":"port]
[]内的部分是可选部分。
path:在authority之后,以/开头,以紧接着的第一个?或者#结束或者直到URL结束为止。
query:以?开头,以紧接着的第一个#结束,或者直到URL结束为止,query常常以
“key=value”的形式来携带一些认证信息。
fragment:以#开头,直到URL结束为止。Fragment常用于标记一个参考主要资源的次要
资源。
I.2URI的参考规则
URI-reference:URI-reference可能是URI或者relative-reference,当URI-reference的前缀不
匹配scheme的语法时,表明URI-reference是一个relative-reference。
Relative-reference所参考的URI叫targetURI。
在mpegdash中,暂时只需要知道BaseURL可能需要参考上级的BaseURL来组合成一个完整的http链接即可,如下:
xmlns:xsi="/2001/XMLSchema-instance"
xmlns="urn:mpeg:DASH:schema:MPD:"
xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:DASH-MPD.xsd"
type="static"
mediaPresentationDuration="PT3256S"
minBufferTime="PT1.2S"
profiles="urn:mpeg:dash:profile:isoff-on-demand:">
/
/
subsegmentStartsWithSAP="1">
7657412348.mp4
3463646346.mp4
访问两个MP4文件的HTTPURL需要组合MPD中的BaseURL和Representation中的BaseURL:
或者