Vue使用 video-player 播放 M3U8 視頻流


Vue使用 video-player 播放 M3U8 視頻流

因為前端頁面如果是接入視頻流的話,說難也難,說不難也不難。
如果單純提供視頻流url連接,沒有中間件進行轉的話:
rtsp 是不能直接接近web的,因為web不能直接接入rtsp視頻流,需要后端或者是中間件進行轉化,把rtsp的視頻流轉換成其他前端可以接入的視頻流格式,一般是hls,也就是m3u8。
rtmp格式視頻流以前是可以接入的,但是現在不行了,因為大多數瀏覽器在2020年底陸續宣布不在支持flash插件,但是rtmp視頻流必須使用flash插件播放,因此在瀏覽器不支持flash的前提下,rtmp格式的視頻流也就不能在web端播放了,很遺憾!
所以說,現在視頻流播放一般都會采用M3U8格式的視頻流進行播放,當然了,確定也就暴露出來了,那就是資源消耗的比較大,延時性比較高,畢竟是后端對其他視頻流進行轉換得到的,轉換、傳輸、展示都需要時間,延時都會在10秒左右,如果單純看的話沒問題,控制的話就體驗性差了,你控制了一下,十秒鍾之后才能看到移動的角度,難受,但是沒辦法。
但是電腦軟件接入rtsp或者是rtmp是沒有問題的,這個東西是瀏覽器不在支持,與其他東西無關。
加油,祝你好運!

安裝插件

npm install vue-video-player -S

npm install 'video.js' -S

使用

首先引入

  // require styles
  import 'video.js/dist/video-js.css'
  import 'vue-video-player/src/custom-theme.css'
  //引入hls.js
  import 'videojs-contrib-hls'
  // video-player
  import { videoPlayer } from 'vue-video-player'

然后在data創建一個對象對播放器進行設置

		playerOptions: {
          language: 'zh-CN',  // 語言
          playbackRates: [0.5, 1.0, 1.5, 2.0],  // 可選的播放速度
          sources: [{
            type: "application/x-mpegURL",   // 類型
            withCredentials: false,
            src: 'http://cctvalih5ca.v.myalicdn.com/live/cctv1_2/index.m3u8' // 中央1 M3U8連接
          }],
          techOrder: ['html5'],
          flash: { hls: { withCredentials: false } },
          html5: { hls: { withCredentials: false } },
          autoplay: true,  // 是否自動播放
          controls: true,  // 是否顯示控制欄
          notSupportedMessage: '無信號',
          muted: true, // 是否靜音
        }

然后HTML創建一個播放器。

<video-player ref="videoPlayer" style="width: 100%;height: 100%;" class="vjs-custom-skin" :options="playerOptions"></video-player>

然后頁面就可以正常顯示視頻了!

這里有一篇更詳細的介紹博文:https://www.jianshu.com/p/9f9e996768ba

然后給大家幾個測試的 m3u8 連接: M3U8測試連接

我自己在項目里面測試過,是沒有問題的,都是經過當時驗證的。

好了,希望可以有用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM