国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

關(guān)于vue播放flv,m3u8視頻流(監(jiān)控)的方法

這篇具有很好參考價值的文章主要介紹了關(guān)于vue播放flv,m3u8視頻流(監(jiān)控)的方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前文:隨著前端大屏頁面的逐漸壯大,客戶的需求也越來越多,大屏上面展示的事物也越來越豐? ? ?富。其中實時播放監(jiān)控的需求逐步增加,視頻流格式也是有很多種,用到最多的.flv、.m3u8。

一、 JessibucaPlayer插件用來播放flv流

1.首先是先把文件放在vue項目的public下面

關(guān)于vue播放flv,m3u8視頻流(監(jiān)控)的方法

2.在index.html文件里面引入 index.js文件(直接引入即可)

關(guān)于vue播放flv,m3u8視頻流(監(jiān)控)的方法

?3.把封裝好的JessibucaPlayer組件放到公共components

<template>
  <div class="jessibuca-player" style="width: 100%; height: 100%">
    <div class="container" :id="id" ref="container"></div>
  </div>
</template>

<script>
export default {
  name: "JessibucaPlayer",
  props: {
    videoUrl: {
      type: String,
      default: ""
    },
    id: {
      type: Number,
      required: true
    }
  },
  data() {
    return {
      jessibuca: null // jessibuca 實例化對象
    };
  },
  methods: {
    init() {
      this.jessibuca = new window.Jessibuca({
        container: document.getElementById(this.id), // 播放器容器,若為 string ,則底層調(diào)用的是 document.getElementById('id')
        videoBuffer: 0.2, // 設(shè)置最大緩沖時長,單位毫秒,播放器會自動消除延遲。
        forceNoOffscreen: true, // 是否不使用離屏模式(提升渲染能力)
        hasAudio: false, // 是否有音頻
        rotate: 0, // 設(shè)置旋轉(zhuǎn)角度,只支持,0(默認(rèn)) ,180,270 三個值
        isResize: false, // 1.當(dāng)為true的時候:視頻畫面做等比縮放后,高或?qū)拰Rcanvas區(qū)域,畫面不被拉伸,但有黑邊;2.當(dāng)為false的時候:視頻畫面完全填充canvas區(qū)域,畫面會被拉伸
        isFullSize: true, // 當(dāng)為true的時候:視頻畫面做等比縮放后,完全填充canvas區(qū)域,畫面不被拉伸,沒有黑邊,但畫面顯示不全
        debug: false, // 是否開啟控制臺調(diào)試打印
        timeout: 30, // 設(shè)置超時時長, 單位秒,在連接成功之前和播放中途,如果超過設(shè)定時長無數(shù)據(jù)返回,則回調(diào)timeout事件
        supportDblclickFullscreen: true, // 是否支持屏幕的雙擊事件,觸發(fā)全屏,取消全屏事件。
        showBandwidth: false, // 是否顯示網(wǎng)速
        operateBtns: {
          // 配置功能
          fullscreen: false, // 是否顯示全屏按鈕
          screenshot: false, // 是否顯示截圖按鈕
          play: false, // 是否顯示播放暫停按鈕
          audio: false // 是否顯示聲音按鈕
        },
        keepScreenOn: false, // 開啟屏幕常亮,在手機瀏覽器上, canvas標(biāo)簽渲染視頻并不會像video標(biāo)簽?zāi)菢颖3制聊怀A痢?        isNotMute: false, // 是否開啟聲音,默認(rèn)是關(guān)閉聲音播放的。
        loadingText: "加載中...", // 加載過程中文案。
        background: "" // 背景圖片。
      });
      // 事件:
      this.jessibuca_load()
      // 1. 監(jiān)聽 jessibuca 初始化事件。
      this.jessibuca.on("load", () => {
        this.jessibuca_load()});
      // 2. 信息,包含錯誤信息
      this.jessibuca.on("log", data => this.jessibuca_log(data));
      // 3. 觸發(fā)暫停事件
      this.jessibuca.on("pause", this.jessibuca_pause);
      // 4. 觸發(fā)播放事件
      this.jessibuca.on("play", this.jessibuca_play);
      // 5. 當(dāng)前是否全屏
      this.jessibuca.on("fullscreen", this.jessibuca_fullscreen);
      // 6. 觸發(fā)聲音事件,返回boolean值
      this.jessibuca.on("mute", this.jessibuca_mute);
      // 7. 當(dāng)解析出音頻信息時回調(diào)
      this.jessibuca.on("audioInfo", this.jessibuca_audioInfo);
      // 8. 當(dāng)解析出視頻信息時回調(diào)
      this.jessibuca.on("videoInfo", this.jessibuca_videoInfo);
      // 9. 錯誤信息
      this.jessibuca.on("error", this.jessibuca_error);
      // 10. 當(dāng)設(shè)定的超時時間內(nèi)無數(shù)據(jù)返回,則回調(diào)
      this.jessibuca.on("timeout", this.jessibuca_timeout);
      // 11. 流狀態(tài)統(tǒng)計,流開始播放后回調(diào),每秒1次
      this.jessibuca.on("start", this.jessibuca_start);
      // 12. 渲染性能統(tǒng)計,流開始播放后回調(diào),每秒1次
      this.jessibuca.on("performance", this.jessibuca_performance);
      // 13. 當(dāng)前網(wǎng)速, 單位KB 每秒1次,
      this.jessibuca.on("kBps", this.jessibuca_kBps);
    },
    // 事件:
    jessibuca_load() {
      // 監(jiān)聽 jessibuca 初始化事件。
      console.log("on load");
      console.log("module", this.videoUrl);
      this.methods_play(this.videoUrl);
    },
    jessibuca_log(data) {
      // 信息,包含錯誤信息
      console.log("on log", data);
    },
    jessibuca_pause(flag) {
      // 觸發(fā)暫停事件
      console.log("on pause", flag);
    },
    jessibuca_play(flag) {
      // 觸發(fā)播放事件
      console.log("on play", flag);
    },
    jessibuca_fullscreen(flag) {
      // 當(dāng)前是否全屏
      console.log("on fullscreen", flag);
      if (flag) {
        let myEvent = new Event("resize");
        setTimeout(() => {
          window.dispatchEvent(myEvent);
        }, 100);
      }
    },
    jessibuca_mute(flag) {
      // 觸發(fā)聲音事件
      console.log("on mute", flag);
    },
    jessibuca_audioInfo(data) {
      // 當(dāng)解析出音頻信息時回調(diào),2個回調(diào)參數(shù)
      // 1. numOfChannels:聲頻通道
      // 2. sampleRate 采樣率
      console.log("audioInfo", data);
    },
    jessibuca_videoInfo(data) {
      // 當(dāng)解析出視頻信息時回調(diào)
      // 1. w:視頻寬
      // 2. h:視頻高
      console.log("videoInfo", data);
    },
    jessibuca_error(error) {
      // 錯誤信息
      console.log("error:", error);
    },
    jessibuca_timeout() {
      // 當(dāng)設(shè)定的超時時間內(nèi)無數(shù)據(jù)返回,則回調(diào)
      console.log("timeout");
    },
    jessibuca_start(s) {
      // 流狀態(tài)統(tǒng)計,流開始播放后回調(diào),每秒1次
      // 1. buf: 當(dāng)前緩沖區(qū)時長,單位毫秒
      // 2. fps: 當(dāng)前視頻幀率,
      // 3. abps: 當(dāng)前音頻碼率,單位bit,
      // 4. vbps: 當(dāng)前視頻碼率,單位bit,
      // 5. ts:當(dāng)前視頻幀pts,單位毫秒
      // console.log('stats is', s);
    },
    jessibuca_performance(performance) {
      // 渲染性能統(tǒng)計,流開始播放后回調(diào),每秒1次。
      // 0: 表示卡頓、1: 表示流暢、2: 表示非常流程
      // console.log('performance', performance);
    },
    jessibuca_kBps(kBps) {
      // 當(dāng)前網(wǎng)速, 單位KB 每秒1次,
      // console.log('kBps', kBps);
    },
    // 方法:
    methods_play(url) {
      // 播放
      if (this.jessibuca.hasLoaded()) {
        this.jessibuca.play(url);
      } else {
        console.error("視頻數(shù)據(jù)未加載完畢,請稍后操作");
      }
    },
    methods_mute() {
      // 靜音
      this.jessibuca.mute();
    },
    methods_cancelMute() {
      // 取消靜音
      this.jessibuca.cancelMute();
    },
    methods_pause() {
      // 暫停
      this.jessibuca.pause();
    },
    methods_setVolume(volume) {
      // 設(shè)置音量
      this.jessibuca.setVolume(volume);
    },
    methods_setRotate(rotate) {
      // 設(shè)置旋轉(zhuǎn)角度 0\180\270
      this.jessibuca.setRotate(rotate);
    },
    methods_destroy() {
      // 關(guān)閉視頻,釋放底層資源
      if (this.jessibuca) {
        this.jessibuca.destroy();
      }
    },
    methods_fullscreen(flag) {
      // 全屏(取消全屏)播放視頻
      this.jessibuca.setFullscreen(flag);
    },
    methods_screenShot() {
      // 截圖
      // 1. screenshot(filename, format, quality)
      // 2. {string} filename、 {string} format、{number} quality
      // 3.filename: 保存的文件名, 默認(rèn) 時間戳、format : 截圖的格式,可選png或jpeg或者webp ,默認(rèn) png、quality: 可選參數(shù),當(dāng)格式是jpeg或者webp時,壓縮質(zhì)量,取值0 ~ 1 ,默認(rèn) 0.92
      this.jessibuca.screenshot();
    },
    methods_setBufferTime(time) {
      // 設(shè)置最大緩沖時長,單位秒,播放器會自動消除延遲。
      // {number} time
      this.jessibuca.setBufferTime(Number(time));
    },
    methods_setScaleMode(mode) {
      // 設(shè)置播放器填充
      // 1. 0 視頻畫面完全填充canvas區(qū)域,畫面會被拉伸 等同于參數(shù) isResize 為false
      // 2. 1 視頻畫面做等比縮放后,高或?qū)拰Rcanvas區(qū)域,畫面不被拉伸,但有黑邊 等同于參數(shù) isResize 為true
      // 3. 2 視頻畫面做等比縮放后,完全填充canvas區(qū)域,畫面不被拉伸,沒有黑邊,但畫面顯示不全 等同于參數(shù) isFullSize 為true
      this.jessibuca.setScaleMode(Number(mode));
    },
    restartPlay() {
      // 重新加載
      this.methods_destroy();
      this.methods_play(this.videoUrl);
    }
  },
  mounted() {
    this.init();
    window.onerror = msg => (this.err = msg);
  },
  beforeDestroy() {
    if (this.jessibuca) this.jessibuca.destroy();
  }
};
</script>

<style>
@import url("./JessibucaPlayer.css");
</style>

?4.最后再自己用到的文件里面 引入組件即可

關(guān)于vue播放flv,m3u8視頻流(監(jiān)控)的方法

?如有想要文件的請私聊

二、easyplayer插件播放m3u8流

教程:

1.首先npm安裝EasyPlayer、copy-webpack-plugin
ps:copy-webpack-plugin版本一定一定一定不能大于6.0,否則會報錯。

 npm install @easydarwin/easyplayer --save
 npm install copy-webpack-plugin@5.1.2 --save-dev

2.最重要的地方 一定要把這個地方弄好 那就是在vue.config.js里面

const CopyWebpackPlugin = require('copy-webpack-plugin')
configureWebpack: {
  plugins:[
        new CopyWebpackPlugin([
          {
            from: 'node_modules/@easydarwin/easyplayer/dist/component/EasyPlayer.swf',
            to: './libs/EasyPlayer/'
          },
          {
            from: 'node_modules/@easydarwin/easyplayer/dist/component/crossdomain.xml',
            to: './libs/EasyPlayer/'
          },
          {
            from: 'node_modules/@easydarwin/easyplayer/dist/component/EasyPlayer-lib.min.js',
            to: './libs/EasyPlayer/'
          }
        ])
  ]
}

3.還需要在public/index.html 引入EasyPlayer-lib.min.js,可以直接在node_modules里找到@easydarwin下的dist/compent/EasyPlayer-lib.min.js復(fù)制到pubilc目錄下,還有需要EasyPlayer.wasm同樣放到public目錄下

關(guān)于vue播放flv,m3u8視頻流(監(jiān)控)的方法

?4.引入組件使用

關(guān)于vue播放flv,m3u8視頻流(監(jiān)控)的方法

?最后效果

關(guān)于vue播放flv,m3u8視頻流(監(jiān)控)的方法文章來源地址http://www.zghlxwxcb.cn/news/detail-414260.html

到了這里,關(guān)于關(guān)于vue播放flv,m3u8視頻流(監(jiān)控)的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • m3u8視頻流,視頻切片處理

    m3u8視頻流,視頻切片處理

    隨著客戶的增加,mp4文件播放的弊端也日益凸顯。 mp4缺點 1):mp4的關(guān)鍵幀元素往往很大,需要加載很長時間才能開始播放。 2):當(dāng)用戶打開一個視頻播放的時候,瀏覽器會持續(xù)請求下載mp4文件直到下載完成,就算是用戶暫停視頻播放瀏覽器也會持續(xù)這種下載狀態(tài),給服務(wù)器硬

    2024年02月02日
    瀏覽(22)
  • 小X通m3u8視頻流AES加密分析

    小X通m3u8視頻流AES加密分析

    最近有空研究了下小X通的視頻協(xié)議,下面記錄下研究過程 首先我們要了解下m3u8是什么 首先我們需要了解什么時HLS,所謂HLS(HTTP Live Streaming)是一個由蘋果公司提出的基于 HTTP 的流媒體網(wǎng)絡(luò)傳輸協(xié)議。而m3u8是HLS協(xié)議的一部分,但是在直播,視頻網(wǎng)站等用處很廣泛。 HLS協(xié)議規(guī)定

    2024年02月05日
    瀏覽(28)
  • Windows上搭建rtsp-simple-server流媒體服務(wù)器實現(xiàn)rtsp、rtmp等推流以及轉(zhuǎn)流、前端html與Vue中播放hls(m3u8)視頻流

    Windows上搭建rtsp-simple-server流媒體服務(wù)器實現(xiàn)rtsp、rtmp等推流以及轉(zhuǎn)流、前端html與Vue中播放hls(m3u8)視頻流

    Nginx-http-flv-module流媒體服務(wù)器搭建+模擬推流+flv.js在前端html和Vue中播放HTTP-FLV視頻流: Nginx-http-flv-module流媒體服務(wù)器搭建+模擬推流+flv.js在前端html和Vue中播放HTTP-FLV視頻流_霸道流氓氣質(zhì)的博客-CSDN博客 上面講了Nginx-http-flv-module+flv.js進(jìn)行流媒體服務(wù)器搭建和前端播放視頻流的過

    2024年02月01日
    瀏覽(24)
  • 前端vue播放m3u8、flv、mp4視頻的方法

    安裝依賴 npm install video.js --save // 視頻播放器插件 npm install videojs-contrib-hls --save // 播放hls流插件 頁面引入插件 頁面中的使用 簡介:flv.js是 HTML5 Flash 視頻(FLV)播放器,純原生 JavaScript 開發(fā),沒有用到 Flash。由 bilibili 網(wǎng)站開源。 開源地址: https://github.com/Bilibili/flv.js/ 安裝依

    2024年02月13日
    瀏覽(28)
  • 在AWS Lambda中使用FFmpeg處理m3u8視頻流

    在直播里領(lǐng)域,我們經(jīng)常需要對視頻流進(jìn)行處理。FFmpeg則是該領(lǐng)域中處理的利器。這篇文章,我們將以視頻流截圖為例,講解如何在AWS Lambda中對m3u8視頻流進(jìn)行截圖。因為Lambda是無服務(wù)架構(gòu),其本地存儲是不可靠的,于是最后我們需要將截圖文件上傳S3桶。 這塊的方案可以見

    2024年02月03日
    瀏覽(26)
  • ffmpeg + nginx 實現(xiàn)rtsp視頻流轉(zhuǎn)m3u8視頻流,轉(zhuǎn)碼推流(linux)

    ffmpeg + nginx 實現(xiàn)rtsp視頻流轉(zhuǎn)m3u8視頻流,轉(zhuǎn)碼推流(linux)

    FFmpeg即是一款音視頻編解碼工具,同時也是一組音視頻編碼開發(fā)套件,作為編碼開發(fā)套件,它為開發(fā)者提供了豐富的音視頻處理的調(diào)用接口。 FFmpeg提供了多種媒體格式的封裝和解封裝,包括多種音視頻編碼、多種協(xié)議的流媒體、多種多彩格式轉(zhuǎn)換、多種采樣率轉(zhuǎn)換、多種碼率

    2024年02月09日
    瀏覽(32)
  • Uniapp H5 播放m3u8、flv格式視頻

    Uniapp H5 播放m3u8、flv格式視頻

    簡述一下業(yè)務(wù)需求,僅僅是需要在H5頁面播放m3u8格式的視頻,但是Uniapp官方提供的video組件在H5端不支持m3u8格式的視頻播放,所以需要使用第三方庫來播放,這里我使用的是MuiPlayer,但是貌似MuiPlayer的官方文檔沒有過多提及UniApp的用法,由于MuiPlayer默認(rèn)支持mp4格式播放,所以

    2024年04月15日
    瀏覽(29)
  • 使用 阿里云 播放器播放 .flv 和 hls(.m3u8) 格式的視頻流

    官方教程:https://help.aliyun.com/document_detail/125570.htm?spm=a2c4g.11186623.0.0.4a3b125de04RLI#task-1997027 在 vue 項目中的 index.html 文件中,引入視頻資源 封裝組件 base_video_Flv : 組件調(diào)用: web前端HTML播放HLS在線視頻流(m3u8): https://blog.csdn.net/Evil_0_0_0/article/details/105768336

    2024年02月06日
    瀏覽(17)
  • uniapp 使用 mui-player 插件播放 m3u8/flv 視頻流

    uniapp 使用 mui-player 插件播放 m3u8/flv 視頻流

    背景 :uniapp 開發(fā)的h5項目,需要播放m3u8/flv后綴的視頻,網(wǎng)上有很多視頻插件,但是樣式和效果不盡如人意,博主最后選擇mui-player插件,定制化稍微強一點以及有官方文檔可以閱讀,官網(wǎng)文檔https://muiplayer.js.org/zh/guide/ tips :建議先閱讀官方文檔,再在頁面進(jìn)行引入 博主最后

    2023年04月19日
    瀏覽(62)
  • video.js 播放m3u8、flv、rtmp、RTS格式視頻

    ?第一種方案(只適用m3u8格式): 屬性 說明 ? ?options: { ? ? ? ? ? ? ? ? ? ? autoplay: true, // 設(shè)置自動播放 ? ? ? ? ? ? ? ? ? ? muted: true, // 設(shè)置了它為true,才可實現(xiàn)自動播放,同時視頻也被靜音 (Chrome66及以上版本,禁止音視頻的自動播放) ? ? ? ? ? ? ? ? ? ? prelo

    2024年02月12日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包