You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用VideoJS正确播放M3U8或TS格式的直播流?

VideoJS播放HLS直播流正确实现方案

原有方案失效原因

  • 第一种.m3u8播放方案失效:低于7.x版本的VideoJS默认未内置HLS解码支持,非Safari内核浏览器无法直接解析HLS格式流;同时仅编写HTML标签未初始化VideoJS实例,无法激活播放器的流解析能力
  • 第二种.ts文件播放方案失效:单个.ts是HLS直播流的分片片段,本身不包含完整的流索引信息,无法独立作为直播源播放;提交的代码还存在语法错误,video标签属性未闭合,缺少source标签定义

正确实现代码

使用8.x版本VideoJS(内置HLS播放支持)的完整实现如下:

<!-- 引入VideoJS核心样式 -->
<link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet">
<!-- 引入VideoJS核心脚本 -->
<script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>

<video id='hls-example' class="video-js vjs-default-skin" width="500" height="400" controls>
  <source type="application/x-mpegURL" src="https://live.alarabiya.net/alarabiapublish/alarabiya.smil/playlist.m3u8">
</video>

<script>
// 初始化播放器实例
const player = videojs('hls-example');
</script>

常见问题排查

  • 若使用7.x以下旧版本VideoJS,需额外引入videojs-contrib-hls插件JS文件后再执行初始化操作
  • 如出现跨域报错,说明直播源流站未配置你的域名访问权限,可通过自有服务端做流地址代理转发解决
  • 测试时需通过HTTP服务启动页面,直接打开本地HTML的file协议会触发浏览器跨域限制,无法正常加载直播流

内容的提问来源于stack exchange,提问作者Linablog444

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:45:03