拆分 mp4 文件与 mp4-dash

Splitting mp4 files vs mp4-dash

在网站上向用户提供视频时,可供选择的选项很少。即 HLS、Smooth streaming、Dash 或 HDS。 Dash 似乎是一个更好的选择。查看它的工作原理是它将文件分成许多部分并将其流式传输。另一种选择是手动拆分文件。破折号和拆分 mp4 文件有什么区别。

Dash、Smooth streaming 和 HLS 都是自适应流媒体技术。这些技术让您:

  • 分段提供内容 - 每个分段都是可播放的小块内容(音频、视频甚至文本 - 例如字幕)。单段长度通常为几秒。这就是使它成为 "streaming" 技术的原因,并且与您通过手动拆分 MP4 文件尝试实现的效果非常相似。
  • 以多种质量级别提供内容 - 根据目标设备的网络连接、性能和屏幕分辨率,播放器可以使用适当的质量来减少缓冲或卡顿的可能性。为了使这项工作有效,流中具有特定索引的段必须在所有质量级别上完全对齐(开始和长度)——这是在编码期间实现的。这就是它 "adaptive" 技术的原因。
  • 使用清单 - 清单是对全部内容和所有可用质量级别的描述。您可以拥有 10 多个质量级别的单个视频内容,以及几个质量级别也很少的不同音频流(不同的编解码器或语言)。要使用它,您需要告诉玩家在哪里可以找到各个片段——这就是清单的目的。不同的技术有不同的清单格式。 Dash 提供了很多描述内容的选项。详细选项包括每个质量级别的单个 MP4 源文件,段描述只是从文件开头的字节偏移量和到段末尾的字节长度。但是您可以有更紧凑的描述,例如细分模板和按索引请求细分。

因此,虽然您可以通过创建自己的协议来实现所有这些,但为什么要这样做而不是使用标准呢?

在评论中回答您的问题:两种情况下传输的总数据量是否有差异?

一般不会。它仍然是添加清单的相同视频和音频内容。清单是一个文本文件(易于 GZip 压缩)——其大小在很大程度上取决于描述内容的方式。在详细选项的情况下,它取决于内容的长度、片段的平均长度、流的数量和质量级别的数量。

一旦您开始使用 Dash 的全部功能并在客户端可能不需要或可能无法播放更高质量的情况下使用较低的质量级别,您就可以显着减少传输的数据量。