Video.js / Contrib-HLS 在大多数浏览器中不播放 HLS (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED)

Video.js / Contrib-HLS not playing HLS in most browsers (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED)

我正在构建一个需要播放 HLS 直播和点播流的视频播放器。

它似乎只在 Safari 中运行良好。 (减去我需要更新的自定义样式,忽略它) 在所有其他浏览器中,我收到此错误:

VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) The media could not be loaded, either because the server or network failed or because the format is not supported.

我错过了什么?看起来与 contrib-hls 演示页面实现非常相似,它在所有浏览器中都运行良好。

这是回购协议:https://github.com/adult-swim/adult-swim-video-player 要查看的分支是 feature-latest-versions

为了测试,我实际上使用的是从此处的 videojs-contrib-hls 演示页面下载的视频:http://videojs.github.io/videojs-contrib-hls/

这里是我初始化 VideoJS 的地方:https://github.com/adult-swim/adult-swim-video-player/blob/feature-latest-versions/app/scripts/views/adult-swim-video-player.js#L56

这是代码的两个编译版本:
http://www.adultswim.com/dev/as-player/ - 按需
http://www.adultswim.com/dev/as-player-live/ - 直播

我正在使用这些版本:
video.js : 5.5.2
videojs-contrib-hls:1.3.4
视频贡献媒体资源:2.4.4

您的 MIME 类型不正确:<source src="video/test.m3u8" type="video/mp4">

结果是播放器将尝试播放 html5 技术(html5 视频元素)中的视频,因为它可以播放 MP4。在 Safari 上,视频将播放,因为视频元素也支持 HLS,但在没有本机 HLS 支持的浏览器上,它会中断。

使用正确的 MIME 类型 application/x-mpegURL 以便 videojs-contrib-hls 可以在其他浏览器上运行。