用于 DASH 和 HLS On Demand 与 Live Profiles 的碎片化 mp4

Fragmented mp4 for DASH and HLS On Demand vs Live Profiles

我正在尝试使用 Bento4 和 Shaka Packager 来使用碎片化的 mp4 为 DASH 和 HLS 输出文件。

我在理解 MPEG-DASH Live 和 On-Demand 配置文件之间的差异和优缺点时遇到了一些困难。如果我正在流式传输直播内容,我会使用 Live 配置文件,但对于静态点播视频,我似乎可以使用点播或实时配置文件。每个配置文件以完全不同的文件格式和文件夹结构输出文件,其中 On-Demand 输出包含 .mp4 文件的平面文件夹结构,而 Live 输出包含 m4s 文件的嵌套文件夹结构。

对于不会直播的静态视频内容(例如浏览器支持、功效等),是否建议使用一种配置文件而不是另一种配置文件?如果是,为什么?

"live" 配置文件有点用词不当,因为它与实时流媒体并没有真正的关系。主要区别在于,对于 on-demand 配置文件,服务器托管每个文件有许多片段的大型平面文件(其中片段是媒体资产的一小部分,如音频或视频,通常每个 2 到 10 秒) ,包括段在文件中位置的索引。然后由流媒体客户端通过执行 HTTP "range" 请求访问媒体资产的一部分来一个接一个地访问片段。对于 "live" 配置文件,段不作为平面资源中的范围访问,而是作为每个段的单独资源(每个段单独的 URL)访问。这并不一定意味着 HTTP 服务器需要将段放在单独的文件中,但它需要能够将每个段 URL 映射到其相应的媒体,或者通过自己在索引中执行查找平面文件,或通过将每个段放在一个单独的文件中,或通过任何其他方式。因此,由服务器来完成繁重的工作(与 "on-demand" 配置文件相反,后者是由 player/client 完成的。 对于像 Bento4 这样的打包器,如果没有对将服务于媒体的 HTTP 服务器做出特殊假设,"live" 配置文件的默认模式是将每个段存储在单独的文件中,以便流可以由任何 off-the-shelf HTTP 服务器。 因此,为简单起见,如果您的播放器支持 on-demand 配置文件,则选择起来更容易,因为您的文件会更少。