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", // 將播放器置于流暢模式,并在計算播放器的動態(tài)大小時使用該值。值應該代表一個比例 - 用冒號分隔的兩個數(shù)字(例如"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無法播放媒體源時顯示的默認信息。
}
};
},
備注:上述能夠正常播放芒果臺實時視頻,但是公司的實時視頻播放不了,還未發(fā)現(xiàn)根本原因
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>