基于HTML5(微信公众号,小程序)的视频安防解决方案浅析
基于HTML5(微信公眾號,小程序)的視頻安防解決方案淺析
安防產(chǎn)品經(jīng)過幾十年發(fā)展,大體分為錄像帶時代、模擬硬盤錄像機時代和數(shù)字硬盤錄像機時代,中間出現(xiàn)過很多優(yōu)秀的產(chǎn)品和公司,不一一介紹。為我國的國民經(jīng)濟(jì)發(fā)展做出了突出貢獻(xiàn),在降低罪案率,維護(hù)了社會的穩(wěn)定方面,一代代安防人作出了不可磨滅的貢獻(xiàn)。當(dāng)前視頻安防朝智能化、高清化方向發(fā)展,不但看得清、而且看得懂是下一代安防的重點目標(biāo)。本文不涉及高清和人工智能,僅僅從易用性來闡述現(xiàn)有視頻安防,由于作者水平有限,難免有不當(dāng)之處,歡迎指正和批評,不接受人身攻擊。
 現(xiàn)有安防從使用者和開發(fā)者角度來講,大體分為私有協(xié)議、SDK、標(biāo)準(zhǔn)協(xié)議(ONVIF,GB28181)等接入方式。對于接入標(biāo)準(zhǔn)協(xié)議、私有協(xié)議,要求開發(fā)者熟練掌握套接字、多線程技術(shù)、編解碼技術(shù)等等,需要大量的財力、物力和人力。SDK相對簡單,但這取決于設(shè)備廠商開發(fā)能力,有的穩(wěn)定可靠,有的就不太好用。這使得一般企業(yè)或者開發(fā)團(tuán)隊對多種設(shè)備的接入有一定困難。
 隨著html5和智能手機的興起,在H5上融合視頻的需求越來越多,IE插件方式,FLV方式也即將面臨淘汰,安裝插件對于普通用戶來說,也并不是那么簡單,而且安全性得不到保障。這時候解決方案就應(yīng)運而生。
 市面上出現(xiàn)以流媒體代理相關(guān)的產(chǎn)品,可以提供HLS,RTMP,HTTP-FLV,RTSP等取流方式,以解決上述問題。在具體描述解決方案之前,讓我們先來了解一下所提到的這幾種常見流媒體協(xié)議。
 流媒體協(xié)議 RTMP, HTTP-FLV, HLS 簡單對比
 RTMP 協(xié)議為流媒體而設(shè)計,在推流中用的比較多,同時大多 CDN 廠商支持RTMP 協(xié)議。
 HTTP-FLV 使用類似 RTMP流式的 HTTP 長連接,需由特定流媒體服務(wù)器分發(fā)的,兼顧兩者的優(yōu)點。以及可以復(fù)用現(xiàn)有 HTTP 分發(fā)資源的流式協(xié)議。它的實時性和 RTMP 相當(dāng),與 RTMP 相比又省去了部分協(xié)議交互時間,首屏?xí)r間更短,可拓展的功能也更多。
 HLS 作為蘋果提出的直播協(xié)議,在 IOS 端占據(jù)了不可撼動的地位,Android 端也同時提供相應(yīng)的支持。
 具體分析
 RTMP
 RTMP,全稱 Real Time Messaging Protocol,即實時消息傳送協(xié)議。Adobe 公司為 Flash 播放器和服務(wù)器之間音視頻數(shù)據(jù)傳輸開發(fā)的私有協(xié)議。工作在 TCP 之上的明文協(xié)議,默認(rèn)使用端口 1935。協(xié)議中的基本數(shù)據(jù)單元稱為消息(Message),傳輸?shù)倪^程中消息會被拆分為更小的消息塊(Chunk)單元。最后將分割后的消息塊通過 TCP 協(xié)議傳輸,接收端再反解接收的消息塊恢復(fù)成流媒體數(shù)據(jù)。
 優(yōu)缺點
 RTMP 主要有以下幾個優(yōu)點:RTMP 是專為流媒體開發(fā)的協(xié)議,對底層的優(yōu)化比其它協(xié)議更加優(yōu)秀,同時它對Adobe Flash Player的支持比較好,基本上所有的編碼器(攝像頭之類)都支持 RTMP 輸出。現(xiàn)在 PC 市場巨大,PC 主要是 Windows操作系統(tǒng),Windows 的瀏覽器基本上都支持 Flash Player。另外RTMP適合長時間播放,曾經(jīng)有過測試,連續(xù) 100 萬秒(11天多)的播放沒有出現(xiàn)問題。最后 RTMP 的延遲相對較低,一般延時在 1-3s 之間,一般的視頻會議,互動式直播,完全是夠用的。
 當(dāng)然 RTMP 并非盡善盡美,它也有不足的地方。一方面是它是基于 TCP 傳輸,非公共端口,可能會被防火墻阻攔;另外比較坑的一方面就是 RTMP 為 Adobe 私有協(xié)議,很多設(shè)備無法播放,特別是在 IOS 端,需要使用第三方解碼器才能播放。
 HTTP-FLV
 HTTP-FLV將音視頻數(shù)據(jù)封裝成FLV格式,然后通過 HTTP 協(xié)議傳輸給客戶端。要理解HTTP-FLV協(xié)議,這句話就是關(guān)鍵。
 優(yōu)缺點
 HTTP-FLV 依靠 MIME 的特性,根據(jù)協(xié)議中的 Content-Type 來選擇相應(yīng)的程序去處理相應(yīng)的內(nèi)容,使得流媒體可以通過 HTTP 傳輸。相較于 RTMP 協(xié)議,HTTP-FLV 能夠較好的穿透防火墻,它是基于 HTTP/80 傳輸,有效避免被防火墻攔截。除此之外,它可以通過 HTTP 302 跳轉(zhuǎn)靈活調(diào)度/負(fù)載均衡,支持使用 HTTPS 加密傳輸,也能夠同時兼容支持 Android、IOS 的移動端。
 說了這么多優(yōu)點,也來順便說下 HTTP-FLV 的缺點。由于它的傳輸特性,會讓流媒體資源緩存在本地客戶端,在保密性方面不夠好。因為網(wǎng)絡(luò)流量較大,它也不適合做拉流協(xié)議。
 HLS
 HLS就是“HTTP Live Streaming”的縮寫,它誕生于2009年,QuickTime和iPhone3GS黃金搭檔下的一個標(biāo)準(zhǔn),一個意在顛覆流媒體產(chǎn)業(yè)的新協(xié)議。
 它的工作原理簡單來說就是把一段視頻流,分成一個個小的基于HTTP的文件來下載。當(dāng)媒體流正在播放時,客戶端可以根據(jù)當(dāng)前網(wǎng)絡(luò)環(huán)境,方便地在不同的碼率流中做切換,以實現(xiàn)更好的觀影體驗。
 HLS的出現(xiàn)是為了解決蘋果原生環(huán)境中的流媒體播放,這個協(xié)議可以方便地讓Mac和iPhone播放視頻流,不依賴Adobe,更不用去管什么標(biāo)準(zhǔn)委員會。依賴自己,才是最有力的保障。
 優(yōu)缺點
 HLS 的優(yōu)勢:
 Apple 的全系列產(chǎn)品支持:由于 HLS 是蘋果提出的,所以在 Apple 的全系列產(chǎn)品包括 iPhone、 iPad、Safari 都不需要安裝任何插件就可以原生支持播放 HLS, 現(xiàn)在 Android 也加入了對 HLS 的支持。
 穿透防火墻:基于 HTTP/80 傳輸,有效避免防火墻攔截。
 性能高:通過 HTTP 傳輸, 支持網(wǎng)絡(luò)分發(fā),CDN 支持良好,且自帶多碼率自適應(yīng),Apple 在提出 HLS 時,就已經(jīng)考慮了碼流自適應(yīng)的問題。
 HLS 的劣勢:
 實時性差,延遲高:HLS 的延遲基本在 10s+ 以上。
 文件碎片:其特性的雙刃劍,ts 切片較小,會造成海量小文件,對存儲和緩存都有一定的挑戰(zhàn)。
 WEB-RTSP
 WEB-RTSP在體系結(jié)構(gòu)上位于RTP和RTCP之上,它使用WEBSOCKET完成數(shù)據(jù)傳輸,在瀏覽器本地實現(xiàn)RTP解包復(fù)合成H5支持的格式,相比其他幾種方式,延時最低,服務(wù)端壓力最小。
 優(yōu)缺點
 WEB-RTSP擁有和RTMP相仿的視頻實時性,而且協(xié)議公開透明,目前來說是最好的解決方案。
 水平有限,難免疏漏,歡迎指正!
總結(jié)
以上是生活随笔為你收集整理的基于HTML5(微信公众号,小程序)的视频安防解决方案浅析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 检索 COM 类工厂中 CLSID 为
- 下一篇: 关于Adobe fireworks cs
