HLS实时流在OS X El Capitan上的Safari中无法使用HTML 5 <video>标记

时间:2015-12-07 19:16:48

标签: html5 safari html5-video osx-elcapitan hls

我看到一个非常奇怪的问题,我可以在旧版本的OS X上通过HLS(mpeg-TS作为容器)查看实时视频流,但不是最新版本( El Capitan)。我在两种情况下都使用Safari 9.0.1。

基本上,我有一个简单的HTML 5 <video>标记,将实时流的网址作为来源。在较旧版本的OS X中,这可以毫无问题地播放,但在OS X 10.11.1上,它将最多显示 一帧,然后不播放。

这是一个重复的小代码片段,带有测试流。

<!DOCTYPE html> 
<html> 
  <body> 
    <video width="400" controls autoplay>
      <source src="http://204.101.47.140:8080/cameras/1eq0U31IYNNWUOss/live.m3u8?stream=3ddf9e2c-46f6-40a0-e010-272d1a058369">
    </video> 
  </body> 
</html>

浏览器控制台中没有可见的相关错误,我已经能够可靠地重现这个在OS X Mavericks / Yosemite上的工作,而不是在几台机器上使用El Capitan。

上述代码需要进行哪些更改才能在所有最新版本的OS X上使用Safari?

1 个答案:

答案 0 :(得分:1)

您的视频源不是有效的HLS流。它是一种HLS /伪流混合。流主控资源(http://204.101.47.140:8080/cameras/1eq0U31IYNNWUOss/live.m3u8?stream=3ddf9e2c-46f6-40a0-e010-272d1a058369)是包含单个元素的有效HLS播放列表。到现在为止还挺好。然而,该元素不是整个视频流的有限部分。当请求开始伪流媒体整个直播流时,它是一种资源。

这不是有效的HLS流。我不知道您使用的是哪种媒体服务器(如果有),但配置不正确。