發(fā)布時(shí)間:2024-9-6 11:37:33
早期很多攝像頭視頻流使用的是RTSP、RTMP協(xié)議,播放這類協(xié)議的視頻通常是在網(wǎng)頁上安裝插件。但現(xiàn)在越來越多的用戶,對于網(wǎng)頁安裝插件比較反感,且隨著移動(dòng)設(shè)備的普及,用戶更多的希望使用手機(jī)、平板等移動(dòng)設(shè)備,直接可以查看這些協(xié)議的視頻。那是否有什么方案可以直接網(wǎng)頁打開RTSP、RTMP協(xié)議的視頻,直接觀看不用安裝插件呢?而且對于攝像頭的數(shù)據(jù),盡可能低延遲的獲取實(shí)時(shí)畫面。
其實(shí)很多攝像頭廠家也注意到這個(gè)問題,最新的攝像頭廠家,也有很多已經(jīng)支持了無插件播放,比如通過WebSocket等新的傳輸協(xié)議,取代rtsp等協(xié)議,通過網(wǎng)頁直接播放。但這個(gè)方案對于新攝像頭沒問題,但對于使用RTSP/RTMP/FLV等格式或協(xié)議的視頻并不適用,因此這種情況不做過多討論。
另一種方案是基于JS、WASM等前端技術(shù),在前端直接拉流、解碼、顯示,比如flv.js等前端播放技術(shù),有不少開源的方式,可以實(shí)現(xiàn)一些特殊格式、特殊協(xié)議的直接前端解碼處理。但該類方式一般會(huì)有占用較多終端計(jì)算資源。而且對于iOS等很多設(shè)備的瀏覽器兼容性不友好,該方案的通用性弱一些。
基于前端不合適,那換個(gè)思路基于后臺(tái)轉(zhuǎn)換能不能行呢?比如將rtsp轉(zhuǎn)為m3u8這何總HLS協(xié)議,做成適合H5頁面直接播放的視頻格式。但如果轉(zhuǎn)為HLS(m3u8)這種,有個(gè)問題:延遲會(huì)比較高,因?yàn)?/span>m3u8的分段,導(dǎo)致需要一些緩沖的片段,因此會(huì)增加很多延遲。
那還有沒有其他的方案呢?點(diǎn)量云流基于多年視頻流式傳輸經(jīng)驗(yàn),認(rèn)為后臺(tái)拉流轉(zhuǎn)換時(shí)將這些攝像頭,或rtmp等各種協(xié)議的數(shù)據(jù),直接轉(zhuǎn)為WebRTC的方式,可以很好的解決這個(gè)問題。這種將RTSP/RTMP/FLV等直播協(xié)議、攝像頭數(shù)據(jù),轉(zhuǎn)為WebRTC方式,有以下優(yōu)勢:
1、良好的兼容性:目前主流的瀏覽器均支持WebRTC,因此該方案無需擔(dān)心瀏覽器兼容性問題,用戶可以選擇自己習(xí)慣的瀏覽器使用。
2、對設(shè)備性能占用小:基于瀏覽器的良好支持,可以借助硬解碼能力,從而對設(shè)備性能占用比較低。
3、低延時(shí)、實(shí)時(shí)性優(yōu):WebRTC是一種為實(shí)時(shí)流媒體設(shè)計(jì)的協(xié)議,通過這種,延遲可以低至100ms以內(nèi),完全可以滿足攝像頭領(lǐng)域的低延遲需求。
4、前端引入方便、代碼量。前端不再需要復(fù)雜的播放器解碼等方式,只需要用標(biāo)準(zhǔn)的WebRTC就可以接入。雖然也有一部分技術(shù)通過WebSocket方式獲取視頻,但往往這種拿到視頻數(shù)據(jù)后,還需要基于類似FLV.js等技術(shù),對視頻數(shù)據(jù)要進(jìn)行復(fù)雜的處理,才能進(jìn)行顯示,便捷性不如WebRTC。
以上解決方案工作量主要在后端,拉取RTSP、RTMP等數(shù)據(jù),中轉(zhuǎn)為WebRTC協(xié)議,不過已有成熟技術(shù)可使用。點(diǎn)量團(tuán)隊(duì)作為專業(yè)視頻流公司,有成熟技術(shù)可實(shí)現(xiàn):傳入RTSP/RTMP等地址直接生成WebRTC使用,并提供完善的前端示例,后臺(tái)的部署安裝也比較便捷,有專門的技術(shù)服務(wù),無需從頭研究。該方案不同于二次轉(zhuǎn)碼,只是修改視頻的封裝,無需二次轉(zhuǎn)碼,因此擔(dān)負(fù)起也可以支持大量攝像頭同時(shí)使用。具體架構(gòu)圖如下:
以上系統(tǒng)平臺(tái)具體功能有:
1、支持多協(xié)議、多設(shè)備接入:
支持RTMP/RTSP/Onvif/GB/T28181/等協(xié)議,多廠商品牌的設(shè)備接入
2、標(biāo)準(zhǔn)化輸出,多終端全平臺(tái)覆蓋:
輸出標(biāo)準(zhǔn)的WebRTC,支持幾乎全部主流終端瀏覽器打開播放
3、提供二次開發(fā)、定制等服務(wù);