【问题标题】:Play HLS with HTML5 [closed]使用 HTML5 播放 HLS [关闭]
【发布时间】:2015-05-21 11:56:04
【问题描述】:

所以我尝试在不使用 Flash 的情况下在 HTML5 上播放 HLS 流。我们尝试了许多视频播放器,但它们都在 Flash 播放器上转播。 我的问题,是否可以在不使用 Flash 的情况下在 HTML5 上播放 HLS 流(任何)?

(我知道https://github.com/RReverser/mpegts,但它不能在移动设备上运行,而且相当滞后。)

【问题讨论】:

  • Clappr 似乎是一个更好的选择。将它作为评论发布给像我这样正在搜索 html5 hls 播放器的人。

标签: html video streaming http-live-streaming


【解决方案1】:

并非所有浏览器都支持 HLS。我使用支持 flash 和 HTML5 流(如果可用)的 jwPlayer。不幸的是,对 HLS 流的支持仍然需要依赖 Flash 才能在各种浏览器中正常工作。查看 HTML5 HLS 浏览器支持:http://www.jwplayer.com/html5/hls/

【讨论】:

  • 但是有没有可能让它支持它?就像在 JavaScript 中剥离流并播放 h264 视频?
  • RReverser 有一个有趣的实现,但是在 JavaScript 中进行转换会对浏览器造成负担(因此在移动设备上会出现延迟)。我认为您的解决方案不应该依赖 JavaScript 来完成繁重的工作。许多网站使用流引擎,这些引擎可以提供一系列格式(hls、rtmp、mpeg-dash)来覆盖尽可能多的原生使用 HTML5 的浏览器。然后他们切换到闪存作为后备。因此,要回答您的问题,这是可能的。但我认为这可能不值得。
  • 嗯,这将是一个开源项目,所以我认为对其他人来说也是绝对值得的。在服务器上进行中继对我们来说不是解决方案,所以我想我们必须进行转换..
  • 听起来是一个很棒的开源项目。在未来,这可能对人们非常有用。祝你好运!
【解决方案2】:

HLS.js 项目现在非常可靠(https://github.com/video-dev/hls.js/tree/master)。最新版本的浏览器支持它。它不依赖于 Flash。它可以在flowplayer中使用。 hls.js 与支持带有“视频/MP4”输入的 MSE 的浏览器兼容。支持:

  • Chrome for Android 34+
  • Chrome for Desktop 34+
  • Firefox for Android 41+
  • Firefox for Desktop 42+
  • IE11+ 用于 Windows 8.1+
  • 适用于 Windows 10+ 的 Edge
  • Opera 桌面版
  • Vivaldi 桌面版
  • Safari for Mac 8+(测试版)

【讨论】:

    【解决方案3】:

    没有成熟稳定的开源HLS HTML5播放器AFAIK。但是有两种商业产品:

    • Viblast Player - 非常便宜且相对易于使用。这只是最低限度的 HLS HTML5 播放。开发者必须自己做 UI 或将其与 Video.js/Flowplayer/JWPlayer 集成。
    • Theo Player - 我对这个没有太多经验。定价不公开。该演示看起来不错,甚至可以在大多数版本的 Firefox 上运行。

    这两个播放器都依赖MSE API,并且不能在不支持它的浏览器上运行(IE

    【讨论】:

    • THEOplayer 实际上不需要 MSE。它还可以在 Firefox、IE10、Opera、... 上运行
    【解决方案4】:

    基本上所有 HTML5 播放器都需要将 MPEG2-TS(传输流)段转换为 MP4,因为大多数浏览器本身并不支持 MPEG2-TS。

    实际上有一些 HTML5 播放器可以播放 HLS 流。一个例子是Bitmovin Player,它提供专业支持以及旧版浏览器的后备。这是一个商业产品,但他们也提供免费计划。 还可以使用 hls.js 等开源项目。

    不过,有了今年 WWDC 中的Apple's announcement,现在还可以将 MP4 片段与 HLS 结合使用,这样就无需转换。 this article 很好地概述了有关如何做到这一点和优势的更多细节。不确定哪些玩家支持它,至少苹果在 iOS 10 和 macOS 上的 Safari 中的原生实现; Bitmovin 也已经支持它。

    【讨论】:

      【解决方案5】:

      THEOplayer 对于这种情况非常有趣。它们允许使用 HLS 流式传输到所有流行的浏览器和平台,而无需使用 Flash。

      它们支持 Windows、Linux、Mac、iOS、Android 和 Windows Phone 上的 Internet Explorer、Firefox、Chrome、Opera 和 Safari。

      此外,与之前的答案相反,它们不依赖 MSE 来运行。因此,该播放器可以在所有平台上运行,甚至可以在不支持 MSE 的旧 IE 版本(10 及更高版本)和浏览器上运行。

      【讨论】:

      • 但我很好奇,他们是如何实现这一切的?是否与 Emscripten 结合使用 C++ 解码器?
      • 他们似乎使用了浏览器硬件支持,解码都发生在浏览器本身。它似乎不是emscripten。 Emscripten 可能太慢了(参见 Broadway.js 项目)
      猜你喜欢
      • 1970-01-01
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 2013-08-28
      • 2013-06-04
      • 1970-01-01
      • 2012-09-04
      • 1970-01-01
      相关资源
      最近更新 更多