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