videojs播放监控

记录一个用videojs播放监控的demo。

<head>
	<!-- 1. 引入videojs的CSS。 -->
	<link href="https://vjs.zencdn.net/7.20.3/video-js.css" rel="stylesheet" />

	<!-- If you'd like to support IE8 (for Video.js versions prior to v7) -->
	<!-- <script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script> -->
</head>

<body>

	<video id="Video1" class="video-js vjs-default-skin vjs-big-play-centered" data-setup="{}" muted="muted">    
		<source id="source" >
		<p class="vjs-no-js">
		  To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
		</p>
	</video>


	<video id="Video2" class="video-js vjs-default-skin vjs-big-play-centered" data-setup="{}" muted="muted">    
		<source id="source" >
		<p class="vjs-no-js">
		  To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
		</p>
	</video>


<!-- 2. 引入videojs的JS。 --> 
<script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script>

<script>

/** 3. 执行播放的方法。
*	videoID:html标准<video>标签的id。
*	hslUrl:hsl格式视频的地址。
*/
function videoOne(videoID,hslUrl){
var src=hslUrl
var myVideo = videojs(videoID, {
	controls: true,
	autoplay: true,
	playToggle: false,
	preload:"auto",
	poster:"login.png",	//未播放时的预览图片。
	width: 300, 
	height: 200
})
myVideo.src([
	{type: 'application/x-mpegURL', src:src }
	//如果是mp4
	//{type: 'video/mp4', src:src }
])
}


//4. 值参使用。
videoOne('Video1','http://hx0xxx1en.ys7.com/open3235xlive/90xxffd8fac3bb486b83cb1xxxxxxx3f6.m3u8')
videoOne('Video2','http://219.151.31.38/liveplay-kk.rtxapp.com/live/program/live/hnwshd/4000000/mnf.m3u8')


</script>

</body>

示例:

在使用 `video.js` 播放 HLS 监控视频流时,需要结合额外的插件来实现对 `.m3u8` 格式的支持。HLS(HTTP Live Streaming)是由 Apple 开发的一种基于 HTTP 的流媒体传输协议,广泛用于实时监控视频流的播放。 ### 1. 引入必要的依赖 为了在网页中使用 `video.js` 播放 HLS 视频流,需要引入以下资源: - **video.js**:核心库。 - **video-js.css**:基础样式文件。 - **videojs-contrib-hls** 或 **videojs-http-streaming (HLS.js)**:用于支持 HLS 流的插件。 #### CDN 方式引入 ```html <!-- 引入 video.js 和样式 --> <link href="https://vjs.zencdn.net/7.20.1/video-js.css" rel="stylesheet"> <script src="https://vjs.zencdn.net/7.20.1/video.min.js"></script> <!-- 引入 HLS 插件 --> <script src="https://cdn.jsdelivr.net/npm/videojs-contrib-hls@5.1.1/dist/videojs-contrib-hls.min.js"></script> ``` > 注意:`videojs-contrib-hls` 已经逐渐被弃用,推荐使用更新的 `videojs-http-streaming`(也称为 HLS.js)。[^3] #### 使用 npm 安装方式 ```bash npm install video.js --save npm install videojs-http-streaming --save ``` 在 Vue 或 React 等现代前端框架中,可以按如下方式引入: ```javascript import videojs from 'video.js'; import 'video.js/dist/video-js.css'; import Hls from 'videojs-http-streaming'; // 注册插件 Hls.use(); ``` ### 2. HTML 中定义 Video 元素 ```html <video id="myPlayer" class="video-js vjs-default-skin" controls autoplay preload="auto" width="640" height="360" data-setup='{"html5": {"hls": {"overrideNative": true}}}' crossorigin="anonymous"> <source src="http://yourdomain.com/live/stream.m3u8" type="application/x-mpegURL"> </video> ``` ### 3. JavaScript 初始化播放器 如果未使用 `data-setup` 属性自动初始化,可以通过脚本手动配置播放器: ```javascript const player = videojs('myPlayer', { html5: { hls: { overrideNative: true, // 强制使用 HLS.js 替代原生播放器 } } }); ``` ### 4. 跨域问题处理 由于监控视频流通常来自不同域,需确保服务器正确设置 CORS 头部,例如: ```http Access-Control-Allow-Origin: * Access-Control-Allow-Credentials: true ``` 若服务器不支持跨域请求,可考虑通过后端代理的方式获取视频流。 ### 5. 自动播放策略 浏览器出于用户体验考虑,默认禁止自动播放带有声音的视频。可通过以下方式绕过限制: - 设置 `muted` 属性使视频静音播放。 - 在用户首次交互后触发播放操作。 ```javascript player.muted(true); player.play(); ``` ### 6. 实际应用示例(Vue) ```vue <template> <div> <video ref="videoPlayer" class="video-js vjs-default-skin" controls autoplay preload="auto" width="640" height="360" data-setup='{"html5": {"hls": {"overrideNative": true}}}'> <source :src="videoUrl" type="application/x-mpegURL"> </video> </div> </template> <script> import videojs from 'video.js'; import 'video.js/dist/video-js.css'; import Hls from 'videojs-http-streaming'; export default { data() { return { videoUrl: 'http://yourdomain.com/live/stream.m3u8' }; }, mounted() { this.player = videojs(this.$refs.videoPlayer, { html5: { hls: { overrideNative: true, } } }); }, beforeDestroy() { if (this.player) { this.player.dispose(); } } }; </script> ``` ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值