1. 程式人生 > >rtmp流媒體協議播放遇到的坑

rtmp流媒體協議播放遇到的坑

前提:前端網頁是不能直接播放rtmp或rtsp直播流的。

專案中需要播放工場倉儲物流的實時監控攝像頭。經過各種調研,發現video.min.js+videojs-flash.min.js,再加上瀏覽器安裝了adobe flash播放器,則能完美實時播放rtmp視訊了。

但是用video.min.js也踩了個嚴重的坑,很多Bug都是這樣,不大,但愁人!

上次看一有趣的前端Bug,說一個前端開發人員一個Bug找了一個晚上,竟不知啥原因。描述是這樣,是個地圖專案,卻發現地圖怎麼都出不來,就一個藍色背景,找了好久的原因百思不得姐阿,結果不小心拿水杯時碰到了滑鼠滾輪,發現有了地圖區域,於是再滾再滾,地圖出來了,原來是後端人員隨便給了個定位點(0,0)導致放大定位到了大西洋,全是海,尼瑪真是一片藍!~

言歸正傳,今天遇到的播放rtmp流的坑,所以記錄下來。

上程式碼:

changeRtmpUrl(data: any) {   let src = data.src;   if(this.player == null){     this.player = window['videojs']('#asn_video', {       fill: true     });    }   //$('#asn_video source').attr('src', src);   //this.player.src(src);   this.player.src({ type : "rtmp/mp4", src : src });   this.player.load();   this.player.play(); }   我的是動態切換後臺給返回的rtmp流地址,結果怎麼切換不能播放,於是發現,看程式碼紅色部分this.player.src(src);直接設定src函式的值為流地址是不行的,src函式中要設定為object,裡面需要有流地址的src地址源,再加上type屬性則完美呈現。。。   後記:關於流媒體還沒有完,rtmp流建立了還是及時銷燬掉,否則會引起其他頁面的錯誤,有時間了再補充銷燬的文章了,希望對相關問題上的朋友有所幫助。