1 rtmp
- 使用vue-video-play播放(支持rtmp和hls)
//安装
npm install vue-video-player --save
//代码
<template>
<videoPlayer class="vjs-custom-skin videoPlayer" :options="playerOptions"></videoPlayer>
</template>
import videojs from 'video.js'
import 'video.js/dist/video-js.css'
import 'vue-video-player/src/custom-theme.css'
import { videoPlayer } from 'vue-video-player'
import 'videojs-flash'
export default {
components: {
// videoPlayer
},
data() {
return {
//rtmp设置
playerOptions: {
height: '300',
sources: [{
type: "rtmp/mp4",
src: "XXX" //需要播放的rtmp地址
}],
techOrder: ['flash'],
autoplay: false,
controls: true
},
//hls设置
playerOptions: {
playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
autoplay: false, //如果true,浏览器准备好时开始回放。
controls: true, //控制条
preload: "auto", //视频预加载
muted: false, //默认情况下将会消除任何音频。
loop: false, //导致视频一结束就重新开始。
language: "zh-CN",
aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
sources: [
{
type: "application/x-mpegURL",
// src: 'https://video-dev.github.io/streams/x36xhzz/x36xhzz.m3u8'
src: "http://32.92.129.52:83/openUrl/uDaH1JK/live.m3u8"
}
],
width: document.documentElement.clientWidth,
notSupportedMessage: "此视频暂无法播放,请稍后再试" //允许覆盖Video.js无法播放媒体源时显示的默认信息。
}
};
},
备注:上述能够正常播放芒果台实时视频,但是公司的实时视频播放不了,还未发现根本原因
2 Hls实时视频播放
- 使用video.js进行播放(实测可行)
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>hls.js</title>
<script type='text/javascript' src='../../lib/video.js'></script>
<style>
/* #video{
width:100%;
} */
</style>
</head>
<body>
<video id="video" ></video>
<video id="video2" ></video>
</body>
<script>
var Hls = window.Hls
function initVideo() {
var url = "http://32.92.129.52:83/openUrl/NY0ikco/live.m3u8"
let video = document.getElementById('video')
if (Hls.isSupported()) {
var hls = new Hls()
hls.loadSource(url)
hls.attachMedia(video)
hls.on(Hls.Events.MANIFEST_PARSED, function () {
video.play()
})
} else if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = url
video.addEventListener('canplay', function () {
// video.play()
})
}
}
initVideo()
</script>
</html>
- 使用Hls.js(Vue项目中实测可行)
//安装
npm install --save hls.js
文档链接:https://www.helloweba.net/javascript/571.html
<template>
<div>
<video ref="videoRef" width="400" controls></video>
</div>
</template>
<script>
import "../assets/js/video.js";
// import "../assets/js/hls";
// var Hls = window.Hls
import Hls from "hls.js";
export default {
mounted() {
var hls = new Hls();
hls.loadSource("XXXX");//需要播放的视频地址
hls.attachMedia(this.$refs.videoRef);
hls.on(Hls.Events.MANIFEST_PARSED, function() {
this.$refs.videoRef.play();
});
}
};
</script>
网友评论