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

标签 video video-streaming jwplayer wowza video-on-demand

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

这里我只讨论媒体文件。 (不是“直播”)


假设我有 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/

相关文章:

c++ - ffmpeg AVFrame 到 opencv Mat 转换

php - 具有相同编辑的jwplayer

javascript - 如何使用 JW Player 在所有浏览器/设备中播放视频?

html - 在视频开始之前放置背景颜色过渡

从命令行运行应用程序时 JavaFX 8 视频播放卡住

php - 在Windows Server中安装phpmotion?

amazon-s3 - 从托管连接到 Amazon S3

javascript - 固定控制栏

c++ - 如何在 OpenFrameworks OF 0.8.4 OSX 中将输出帧记录到视频文件

Java 视频播放器