使用video.js流式传输m3u8

leo*_*era 1 streaming html5 video.js

我正在尝试流这个网址:http://stream331.overseebrasil.com.br/live_previd_155/ definst /live_previd_155/playlist.m3u8

<audio id="streaming" class="video-js vjs-default-skin" controls>
  <source src="http://stream331.overseebrasil.com.br/live_previd_155/_definst_/live_previd_155/playlist.m3u8" type='audio/mp4; codecs=mp4a.40.2' />
</audio>
Run Code Online (Sandbox Code Playgroud)

Safari/Mac和Safari/iOS工作正常,但代码不能在Chrome和Firefox中运行.

我尝试从类型属性中删除编解码器的信息,但没有任何反应.Firefox说:

Specified "type" attribute of "audio/mp4; codecs=mp4a.40.2" is not supported. Load of media resource http://stream331.overseebrasil.com.br/live_previd_155/_definst_/live_previd_155/playlist.m3u8 failed. 
All candidate resources failed to load. Media load paused.
Run Code Online (Sandbox Code Playgroud)

我也试过改变基于mime页面的类型属性(http://www.videojs.com/projects/mimes.html)有关这个问题的任何想法吗?

Mat*_*ure 5

跨浏览器HLS支持正在一个单独的插件,contrib-hls中进行.它在Safari中工作,因为浏览器本身支持HLS播放,但没有其他因为Video.js后备不支持.

尝试插件非常简单,但如果您使用的是Video.js的CDN版本,则需要上传contrib-hls包含的内容.

<script src="/path/to/video.js"></script>
<script src="/path/to/videojs-hls.min.js"></script>
<script>
  var player = videojs('video');
  player.hls('http://example.com/video.m3u8');
</script>
Run Code Online (Sandbox Code Playgroud)

然后你可以像往常一样对待玩家player.play(),等等.

  • 由于m3u8是通过XHR检索的,因此另一个域只需要包含CORS头. (2认同)