视频 "Streaming" 与直接从文件播放

Video "Streaming" vs playing off directly from Files

这可能是最愚蠢的问题之一,但我仍然需要非常清楚地了解视频 "Streaming"。

这里我只讨论 媒体文件 。 (不是 "Live" 流媒体)


假设我有 happy.mp4 文件。那么怎么走。 (或者有什么区别):

选项 (1):

选项 (2):

显然选项(2)也可以。但为什么总有另一种选择来使用 "Streaming" 服务器,即使对于这种按需 "Files".


选项 (1) 是因为,如果我们使用选项 (2),我们将无法兼容地传送到多个设备(如果源只是 .mp4 文件)。是吗?

请问我应该使用流媒体服务器的主要原因是什么?

让我们首先观察视频传输和呈现方面的一些趋势,特别关注将内容传输到各种设备和平台的方式。

  • 所有网络浏览器都可以播放 MP4 文件。
  • 大多数网络浏览器都可以播放 DASH video (MSE 需要技术)。这提供了自适应流和更高级的播放控制功能。
  • Safari 能够播放 HLS 视频,这是自适应流媒体的 Apple 变体。
  • 在插件 (Silverlight) 的帮助下,所有桌面浏览器都能够播放平滑流媒体视频(不过,Chome 正在放弃对 Silverlight 的支持)。
  • Android 可以原生使用 MP4 和 DASH 视频,并借助自定义库、Smooth Streaming 视频。
  • iOS 可以使用 MP4 和 HLS 视频,并在自定义库的帮助下使用平滑流式传输视频。

实际情况更加复杂,但如您所见,不同的设备关注不同的格式,MP4 是唯一真正通用的因素。

一般来说,MP4 并不令人满意,因为它缺乏自适应流媒体和 DRM 支持,而这两者对于呈现优质内容都至关重要。这意味着如果您要创建视频服务,则需要使用多种不同格式提供您的内容,以覆盖所有客户端平台。

这是像 Wowza 或统一流媒体或 Azure 媒体服务这样的媒体服务器的作用——这些产品可以采用一种输入格式的视频并即时将其转换为其他格式,提供相同的服务内容以不同的封装格式发送到不同的客户端设备。

如果您所做的只是提供静态 MP4 文件或已经将您的视频转换为您需要的所有格式,媒体服务器对您毫无用处。请注意,媒体服务器制造商仍会尝试向您出售一台!我看到许多客户在没有任何需要的情况下使用媒体服务器 - 他们只是没有意识到他们所需要的只是一个网络服务器。

视频文件只是视频文件。除了一个例外(平滑流),不需要特殊的服务器端逻辑,任何随机网络服务器都可以将它们很好地传送到客户端设备。如果您使用 IIS 作为您的 Web 服务器,平滑流式处理确实需要 Microsoft a free plugin,如果您使用其他服务器,则需要 Microsoft 的等效服务器。然而,在当今世界,您几乎可以肯定地在任何地方使用 DASH 而不是 Smooth Streaming,从而缓解问题。

"streaming"这个词经常用在营销材料中,非常灵活且容易误导,所以我建议您避免使用它。将视频数据传送给播放器并没有什么特别之处——归根结底,它们是相对较大且重要的文件,但不需要特殊处理。