如何创建具有多个后备 URL 的 MPEG-DASH 清单?

Posted

技术标签:

【中文标题】如何创建具有多个后备 URL 的 MPEG-DASH 清单?【英文标题】:How to create MPEG-DASH manifest with multiple fallback URL? 【发布时间】:2019-07-11 17:15:47 【问题描述】:

我有一个类似http://.../test/index.mpd 的网址。我想要的是创建另一个破折号清单,其中将包含多个指向原始清单文件的后备 URL。

例如对于 URL http://example.com/test/index.mpd(原始清单),新清单文件应包含多个 CDN URL,例如:

http://cdn1.com/example/test/index.mpd
http://cdn2.com/example/test/index.mpd
http://cdn3.com/example/test/index.mpd

我在以下 URL https://bitmovin.com/docs/player/faqs/how-can-i-utilize-the-cdn-fallback-feature-of-the-player 中发现了类似的内容。但是,此示例将基本 URL 添加到原始清单文件中,它不适用于动态清单(实时流)。有没有办法做到这一点。我找不到关于 dash manifest 操作的好的文档或示例。

【问题讨论】:

【参考方案1】:

正确的方法是通过 BaseURLs。 “它不适用于动态清单”是什么意思? BaseURLs 独立于清单类型工作,并且绝对可以在动态清单中工作。也许你的播放器有问题?

另一种选择是在 <Location> 标签中指定备用 MPD URL,这允许您指定 MPD 可用的多个位置,但 IMO BaseURL 更适合用于 CDN 故障转移。

【讨论】:

你好。 Flussonic 生成了一个实时流清单。我没有操作原始文件,而是复制了文件并添加了 baseURL。理论上,无论我把这个文件放在哪里,因为 baseURL 指向播放器应该播放流的正确段位置。这适用于 DVR 清单。 DVR 清单是静态的,所有片段在清单文件中都是可见的。但是,在直播流清单(动态)中只有 4 个片段,并且随着文件不断变化,片段也会发生变化。 此时,副本和原始文件没有相同的段,当您尝试播放副本清单文件时,会抛出与段相关的错误。有没有办法创建一个没有段的单独 mpd 文件,但只有几个指向原始清单文件的 baseURL。 不,这在 DASH 规范中是不可能的。通常,您所描述的问题是使用更高级别的应用程序逻辑来解决的,以检测播放器引发的错误,然后从其他 URL 重新加载替代清单,并通过其他方式提供,并寻找正确的位置。

以上是关于如何创建具有多个后备 URL 的 MPEG-DASH 清单?的主要内容,如果未能解决你的问题,请参考以下文章

如何设计具有多个输入参数的 RESTful URL

在一层上绘制多个 UIView

WebP 后备图像未加载

创建具有多个基本 url 的 Javascript API 类

断言当前后备特征集合包含一个或多个未指定的特征:

我们如何使用具有多个参数的laravel URL?