Vue播放rtmp/Hls实时视频踩坑日记

2019-07-18  本文已影响0人  努力努力再努力_g

1 rtmp

//安装
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实时视频播放

<!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>
//安装
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>

上一篇 下一篇

猜你喜欢

热点阅读