Azure 客户端清单条目:n 和 r 元素

Posted

技术标签:

【中文标题】Azure 客户端清单条目:n 和 r 元素【英文标题】:Azure client manifest entry: n and r elements 【发布时间】:2015-04-11 11:02:16 【问题描述】:

在查看 Azure 媒体服务为 HTTP 平滑流提供的客户端清单时,我注意到一个新元素 (n) 在以前的 IIS 清单中找不到并且在 Sam Zhang's blog 中不存在。

根据之前的清单(clientManifestVersion 2.2),r 表示“重复”并用于压缩 - 表示重复片段持续时间。

但是通过比较同一流在不同时间的两个 Azure 清单,您可以看到:

`<c t="868948936" d="2000" r="1770" n="136" />`  // (@ 8:21 PM)
`<c t="881664896" d="2000" r="1770" n="6494"/>`  // (@ 11:53 PM)

据我了解, d = 2000 表示片段持续时间(2秒)

在哪里: n1 = 136 n2 = 6494, t1 = 868948936 t2 = 881664896, n2 - n1 = 6358 * d = 12716000 + t1 = t2

尽管 r 应该是重复的,但 r 保持不变,而 n 会随着时间的推移而增加......那么什么是 r 如果它是不变的,那么 n 是什么?

【问题讨论】:

【参考方案1】:

n 属性是片段的从零开始的索引,每个新片段增加 1。只是一个无意义的计数器:0,1,2,3,4,...

r 属性表示r 更多具有相同持续时间的片段跟随当前片段。它允许您替换它:

<c t="1000" d="1000" />
<c t="2000" d="1000" />
<c t="3000" d="1000" />
<c t="4000" d="1000" />

有了这个更紧凑的表示:

<c t="1000" d="1000" r="3" />

您可以认为它只是重复 XML 元素 r 的次数。

编辑:根据评论,我现在了解了混乱的根源 - 问题实际上不在于这些属性是什么,而是为什么在直播中,只有 n 发生变化随着时间的推移。

要理解这一点,您必须了解实况视频在概念上的表示方式以及这与点播视频有何不同。后者有明确的开始和结束,中间有固定数量的片段:

(start)123456789(end)

根据定义,实时视频是一个没有结尾的视频 - 可能有一个“最后一个片段”,但新片段会不断添加到结尾,而当前的“最后一个片段”会随着时间的推移而改变:

(start)1234
(start)12345
(start)123456

现在这一切都很好而且超级好,但你可能会注意到这里有一个问题。自适应流技术允许您播放视频的任何片段。如果您的视频基本上永远持续播放,那么源服务器必须有效地存储无限数量的片段!这是不允许的。

为了解决这个问题,自适应流媒体技术引入了 DVR 窗口 的概念 - 视频上的滑动窗口,其中包含玩家可以查看的所有数据。任何滑出此窗口范围的数据都可以丢弃。

(start)[1]
(start)[12]
(start)[123]
(start)1[234]
(start)12[345]
(start)123[456]
(start)1234[567]
(start)12345[678]
(start)123456[789]

让我们丢弃我们不需要的片段,看看它的样子。如果您的滑动窗口大小为 3,那么玩家可见的片段将按如下方式进行:

1
12
123
234
345
456

您注意到滑动窗口的大小保持不变(一旦有足够的片段可以填充它),并且第一个片段的索引加上滑动窗口大小足以表示整个滑动窗口。

你有它:r 是滑动窗口中的片段数,n 是第一个片段的索引!这不是表示实时视频的唯一方法,但它肯定是最有效的,因为清单中的数据明显较小。

【讨论】:

n 作为数字计数器似乎是合乎逻辑的,我知道这是 r 在 clientManifestVersion 2.2 中表示的方式,但正如您从我的示例 r 随着流持续时间的增加保持不变——只有 n 增加。此外,每个清单的每个比特率每个视频流只有一个 c 条目。 @Sparkyish 我现在明白是什么让你感到困惑。我已经更新了我的答案以澄清情况。 谢谢你,桑德。你的回答解决了我的问题。我很困惑,因为使用 IIS,我一直在处理事件的总持续时间可用的事件——因此清单中没有包含 n 元素,而使用 Azure,设置了默认的可用性窗口到 59 分钟,这就是为什么在我的测试中我看到了 n 元素。再次感谢! (对不起,我不能给你的答案投票,我还没有足够好的“声誉”)

以上是关于Azure 客户端清单条目:n 和 r 元素的主要内容,如果未能解决你的问题,请参考以下文章

Django 模型:ValueError:缺少“file_name.ext”的静态文件清单条目

ValueError:即使在 collectstatic 之后也缺少静态文件清单条目

Django:ValueError:缺少'jquery.twbsPaginationAlt.min.js'的静态文件清单条目

ValueError:缺少“favicon.ico”的静态文件清单条目

ValueError:缺少“favicon.png”的静态文件清单条目

软件清单的 WQL 查询