这可能是最愚蠢的问题之一,但我仍然需要非常清楚地了解视频“流”。
这里我只讨论媒体文件。 (不是“直播”)
假设我有 happy.mp4
文件。那么要走的路是什么。 (或者有什么区别):
选项 (1):
- 使用一台流媒体服务器(如:Wowza)
- 在那边上传
happy.mp4
文件。 - 然后获取流链接并将其放在带有播放器(如:JWplayer)的网站上。
选项(2):
- 将
happy.mp4
文件直接上传到 Web 服务器(如:Apache) - 用播放器(例如:JWplayer)将其放在网站上。
显然选项 (2) 也可以工作。但为什么总是有另一种选择来使用“流媒体”服务器,即使对于这种点播"file"也是如此。
选项 (1) 是因为,如果我们使用选项 (2),我们将无法兼容地传送到多个设备(如果源只是 .mp4
文件)。是吗?
- 但是像“JWplayer”这样的播放器可以处理这部分。我说得对吗?
请问我应该使用流媒体服务器的主要原因是什么?
最佳答案
让我们首先观察视频传输和演示的一些趋势,特别关注将内容传输到各种设备和平台的方式。
- 所有网络浏览器都可以播放 MP4 文件。
- 大多数网络浏览器都能够播放DASH视频(需要 MSE 技术)。这提供了自适应流媒体和更高级的播放控制功能。
- Safari 能够播放 HLS 视频,这是自适应流媒体的 Apple 变体。
- 在插件 (Silverlight) 的帮助下,所有桌面浏览器都能够播放平滑流媒体视频(不过,Chome 正在放弃对 Silverlight 的支持)。
- Android 可以在自定义库 Smooth Streaming 视频的帮助下原生使用 MP4 和 DASH 视频。
- iOS 可以使用 MP4 和 HLS 视频,并借助自定义库、Smooth Streaming 视频。
实际情况要复杂得多,但如您所见,不同的设备关注不同的格式,MP4 是唯一真正通用的因素。
一般来说,MP4 并不令人满意,因为它缺乏自适应流媒体和 DRM 支持,而这两者对于呈现优质内容都至关重要。这意味着,如果您要创建视频服务,则需要使用多种不同格式提供您的内容,以覆盖所有客户端平台。
这就是像 Wowza 或统一流媒体或 Azure 媒体服务这样的媒体服务器的作用——这些产品可以采用一种输入格式的视频并即时将其转换为其他格式,以提供相同的内容不同客户端设备的不同封装格式。
如果您所做的只是提供静态 MP4 文件,或者已经将您的视频转换为您需要的所有格式,那么媒体服务器对您来说毫无用处。请注意,媒体服务器制造商仍会尝试向您出售一台!我看到许多客户在没有任何需要的情况下使用媒体服务器 - 他们只是没有意识到他们所需要的只是一个网络服务器。
视频文件只是视频文件。除了一个异常(exception)(平滑流),不需要特殊的服务器端逻辑,任何随机网络服务器都可以将它们很好地传送到客户端设备。平滑流式处理确实需要 a free plugin如果您使用 IIS 作为 Web 服务器,则来自 Microsoft;如果您使用其他服务器,则来自 Microsoft。然而,在当今世界,您几乎可以肯定地在任何地方使用 DASH 而不是平滑流式传输,从而缓解问题。
“流媒体”这个词经常用在营销 Material 中,非常灵活且具有误导性,因此我建议您避免使用它。向播放器传送视频数据没有什么特别之处 - 归根结底,它们是相对较大且重要的文件,但不需要特殊处理。
关于视频 "Streaming"与直接从文件播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28872010/