當前在很多項目中我們都會涉及到視頻監(jiān)控模塊的開發(fā),傳統(tǒng)的開發(fā)方式就是依賴廠家的SDK包進行二次開發(fā)集成,但這種集成開發(fā)的工作有幾個弊端:
一、目前的一些行業(yè)現(xiàn)狀
1、OCX插件式播放,幾乎每個廠家提供的視頻播放都需要支持一些插件播放,有插件就意味著有一定的限制,例如,有的是OCX插件則必須基于IE進行播放。
2、品牌眾多難以集成,當遇到各種品牌的監(jiān)控設備時,你一定會懵,顯然需要一種集成播放各主流品牌的的視頻播放協(xié)議,例如RTSP、Onvif。
3、用戶體驗較差,一般視頻監(jiān)控只是項目中的一個模塊,而我們整個項目的視覺或者UI都是進行極致的設計,使用到一些比較新的渲染技術,整體瀏覽效果非常好,但是遇到視頻監(jiān)控(當然也有其他的插件式)就得安裝插件,甚至切換瀏覽器,導致的結果就是我們整個項目的渲染會受到嚴重的影響。
二、使用web播放協(xié)議進行視頻直播
目前主流的播放協(xié)議主要有三種:
1、HTTP-FLV
出于Adobe公司,基于HTTP協(xié)議的長連接,低延遲的播放協(xié)議,支持HTML5標準,當前主流瀏覽器都會兼容,只要支持HTML5標準的都可以進行播放,當然包括移動端。
2、RTMP
出于Adobe 公司,基于TCP的傳輸協(xié)議,不支持HTML5標準,基于Flash進行播放,播放延時率很低,大概2秒左右,好多直播網(wǎng)站采用這種方式,由于PC端幾乎所有瀏覽器都支持Flash,只有移動端支持較少,因此該協(xié)議適合在PC端運行。
3、HLS
出于蘋果公司的,基于HTTP協(xié)議進行傳輸,采用切片數(shù)據(jù)傳輸,因此在客戶端會產生很多的ts文件,播放延時率較高,普通的在10s+,不過有的廠家對HLS進行了底層優(yōu)化,據(jù)說可以達到4s左右,同時支持HTML5標準,因此支持PC和移動端。
三、開發(fā)及部署
1、流媒體播放服務器一般采用nginx,穩(wěn)定好用,安裝部署自行查閱相關資料。參考地址:https://www.cnblogs.com/xuey/p/9244434.html
2、需要廠家的設備支持RTSP協(xié)議(實時流傳輸協(xié)議,是TCP/IP協(xié)議體系中的一個應用層協(xié)議,幾乎所有都支持),可以聯(lián)系廠家進行設置。
3、使用對應的js插件進行播放。HTTP-FLV使用flv.js,HLS、RTMP采用video.js。前臺頁面使用video標簽進行播放。
1、基于GIS的視頻播放,下面是天地圖的使用的在線視頻播放
五、推薦優(yōu)秀的流媒體服務平臺
最后給大家推薦一款很好用的流媒體服務平臺EasyNVR,一鍵安裝,他是利用nginx+Golang搭建的流媒體服務,集成了HTTP-FLV、HLS、RTMP、RTSP四種協(xié)議,無縫切換,使用體驗好,穩(wěn)定,特別適合快速大家流媒體服務進行無插件的web播放。