我看到一个非常奇怪的问题,我可以在旧版本的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?
答案 0 :(得分:1)
您的视频源不是有效的HLS流。它是一种HLS /伪流混合。流主控资源(http://204.101.47.140:8080/cameras/1eq0U31IYNNWUOss/live.m3u8?stream=3ddf9e2c-46f6-40a0-e010-272d1a058369)是包含单个元素的有效HLS播放列表。到现在为止还挺好。然而,该元素不是整个视频流的有限部分。当请求开始伪流媒体整个直播流时,它是一种资源。
这不是有效的HLS流。我不知道您使用的是哪种媒体服务器(如果有),但配置不正确。