如何在不违反DASH标准的前提下为MPD添加私有属性?
符合DASH标准的MPD私有属性添加方案
直接在MPD标签下加无命名空间的programDateTime会触发验证错误,因为DASH的XML Schema和Schematron规则只允许预定义属性。正确的做法是通过自定义XML命名空间来添加私有属性,这是DASH标准明确允许的扩展方式,能顺利通过验证。
具体步骤
- 第一步:在MPD根标签中声明一个自定义命名空间,格式为
xmlns:[前缀]="[唯一标识URL]",比如:
这里的URL不需要实际可访问,只要是唯一的字符串即可,用来区分你的私有扩展和标准属性。xmlns:custom="http://your-custom-domain.com/dash-extensions" - 第二步:用这个命名空间前缀来定义你的私有属性,比如:
custom:programDateTime="2024-05-20T14:30:00Z"
完整示例代码
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:custom="http://your-custom-domain.com/dash-extensions" custom:programDateTime="2024-05-20T14:30:00Z" type="static" mediaPresentationDuration="PT30M0S"> <!-- 这里是MPD的其他标准内容,比如Period、AdaptationSet等 --> </MPD>
关键说明
- DASH标准(ISO/IEC 23009-1)明确支持通过自定义命名空间添加私有扩展,验证工具会忽略合法命名空间下的私有属性,不会触发Schema或Schematron错误。
- 命名空间前缀可以自定义(比如
myext、custom都可以),只要和声明的前缀一致即可。 - 属性值建议遵循ISO 8601时间格式,和DASH标准中时间相关属性的格式保持一致,方便后续解析。
内容的提问来源于stack exchange,提问作者stackxyz
相关产品推荐
相关产品推荐

