2024年WEB網頁直接播放海康威視、大華、華為RTSP/RTMP視頻流方案大盤點
在遍地都是攝像頭的今天,往往需要在各種信息化、數字化、可視化等B/S系統中集成實時視頻流播放等功能,海康、大華、華為等廠家攝像頭或錄像機等設備一般也都遵循安防行業標準,支持國際標準的視頻主流傳輸協議RTSP(實時視頻流)輸出,不幸的是Chrome、Edge、Firefox等新一代瀏覽器從2015年開始不再支持NPAPI插件加載運行,直接導致RTSP視頻流從此無法在高版本瀏覽器網頁中原生播放。對于絕大部分沒有影視頻處理經驗的前、后端工程師來說是一個非常棘手的問題,專業性強,技術門檻高,而對做B/S系統集成的大多數公司來說,為了這部分的功能單獨招聘專職音視頻研發人員來負責的話,成本高昂不說,還未必做的好。
當前主流版本瀏覽器既然已都不支持原生播放RTSP流,為了能夠播放RTSP流,不少公司各顯神通,出了各種商用及開源方案,不過總的說來就是在后端先轉碼再轉流給前端播放的方案,這也是號稱無插件的技術方案。對瀏覽器可直接硬件加速播放的H.264編碼視頻流,現在一般是在服務器端將RTSP流轉為WebRTC通訊標準的視頻流,前端接收后可通過Vedio標簽播放;對于瀏覽器不能支持加速播放的其它編碼視頻流,要么在后端先轉流轉碼為H.264編碼后按前述方案播放,要么后端轉流到前端,前端再通過對應編碼的WASM程序利用CPU軟解碼播放。轉流到前端WASM轉碼播放時,即使配置了性能不錯的電腦,受限于WASM的固有缺陷,比如多線程支持差、能使用的內存大小始終受限,無法充分利用終端電腦顯卡的硬件加速能力(GPU),這就導致同時播放多路或高清RTSP流時也會比較吃力,而且大量占用終端電腦的CPU和內存資源,其它操作基本無法進行,對音視頻格式的兼容能力也很有限。
雖然無插件播放方案能夠播放出畫面,但是往往延遲高,高分辨率視頻流基本上都在數秒之久,在一些對延遲敏感的場合客戶要求的是毫秒級延遲,顯然無插件技術方案是無法滿足的;而且首屏畫面顯示慢,這就導致切換播放源時遲遲看不到畫面出來,用戶體驗很差;況且無插件技術方案,需要在后端或前端持續運行高負荷運轉的視頻轉碼轉流服務,也有部分采用WebSocket直接從攝像頭拉流播放的方案,不過需要設備支持才行,適用性不夠。如果攝像頭路數多、高清甚至是4K視頻或需要在線播放的終端比較多,服務器的壓力就會很大,播放卡頓、花屏、黑屏、斷播等現象就會時常出現,很難讓客戶滿意。為了解決這些問題,相關硬件、軟件的投入和持續不斷的帶寬占用往往也讓客戶難以接受。現在越來越多的客戶追求高大上的視頻播放效果,采用高清攝像頭的越來越多,播放顯示器1080P已是低配,2K甚至4K大屏正在成為主流之選。這種無插件技術方案,在中高配的屏幕上如果只能播放出慢如蝸牛的畫面,想不讓客戶吐槽實在是太難。
一個好的RTSP視頻流網頁播放方案,首先是要能做到持續穩定播放多路視頻,還需同時支持H.264、H.265編碼及其它編碼格式、兼容RTSP、RTMP、HLS等流協議播放,最核心的是要做到低延遲、切換畫面快,最好能支持高清甚至4K視頻流暢播放。另外就是對當前主流版本的瀏覽器兼容能力要強,多路播放時分屏樣式多,還有就是開發接口豐富并可定制,如果還能做到開源或采用免費的主流播放引擎實現,那就最好不過了,畢竟開源在商業領域的應用越來越多,是大趨勢。從系統集成商的角度來說,盡可能采用成熟開源工程來使用意味著有更多的自主可控機會來降低整個系統的實施風險。
猿大師針對當前行業痛點,經過數年持續不斷的技術攻關,研發出了核心技術具有專利保護的猿大師中間件產品,成功突破了瀏覽器收緊其插件技術的限制,在瀏覽器之上重新搭建了一套外接程序系統并可無縫嵌入瀏覽器網頁運行,可實現2015年之前Chrome、Firefox、IE等瀏覽器支持的ActiveX控件和NPAPI插件播放效果,是原來采用了跨瀏覽器插件框架FireBreath的最佳替代技術方案。2020年發布了基于猿大師中間件的VLC網頁播放器,2021年發布了基于猿大師中間件的海康原生網頁播放器,基本完成網頁中低延遲單路播放或多路流暢播放視頻流的方案拼圖,2022年上半年實現雙顯卡高性能網頁播放器,另外支持FFPlayer播放引擎,2023年初實現視頻畫面疊加透明網頁內容的顯示特效,2023年中實現了大華原生網頁播放器,最終形成了猿大師播放器網頁低延遲播放RTSP產品。此播放器在不少客戶現場已成功實施,贏得了客戶的一致好評。猿大師中間件是此領域全球唯一實現商用的成熟中間件,核心技術實現方案在2019年就申請了中國大陸軟件發明專利保護,2023年5月正式獲得專利證書,專利號:ZL 2019 1 1323165.1。
1.低延遲播放
從播放性能上說,攝像頭和錄像機的硬件廠家提供的私有協議播放方式無疑是最快的,單路播放延遲可做到100-300毫秒級,其次是RTSP流播放,大致是200-500毫秒級,再次是無插件方案的轉碼流,優化比較好的單路播放大致在1-3秒級。猿大師的多引擎網頁播放器,除了支持海康及大華設備的私有協議直接播放之外,還內置了格式兼容更好的MP4播放庫和兼容能力強大的LibVLC開源播放引擎。另外2020年發布的VLC網頁播放器,基于VLC的ActiveX控件開發,封裝了控件的大多數接口給前端調用,在同等條件下,延遲時間和VLC桌面程序播放保持一致,并可支持多路組合實現多種分屏樣式播放,支持疊加透明網頁的內容顯示。
2.兼容性強
- 絕大部分瀏覽器兼容,同時兼容Chrome、Edge、Firefox、IE、Opera、Vivaldi、Brave、Electron、360、QQ、搜狗等瀏覽器的低版本到最新版都可以使用;
- 設備兼容性強,同時支持海康、大華、華為、宇視等廠家的硬件設備,只要能輸出RTSP、RTMP、HLS、HTTP、TCP、UDP等流媒體協議,就可以直接播放;
- 支持多種視頻編碼方式,不管是H.264還是H.265都可以同時支持播放,在一些采用WASM的無插件技術方案中,往往只支持H.265編碼的視頻流、而且音頻格式兼容差,服務器轉碼方案中,編碼兼容能力直接依賴這個轉碼服務的實現,哪怕都是MP4的視頻也千差萬別,對播放引擎很挑剔,時常會遇到播放黑屏或無聲音等現象;
- 幾乎能播放任何內容,依托最主流的開源VLC、FFPlayer、海康及大華原生播放引擎等,支持文件、光盤、攝像頭、設備及流媒體可直接播放MPEG-2, MPEG-4, H.264, H.265, MKV, WebM, WMV, MP3, MP4等文件,而無插件技術方案往往能播放的格式有限,比如不支持本地文件播放,不支持4K視頻播放;
- 分辨率支持范圍廣,從480P到1080P,還是更高的2K或4K,都能輕松應對,無插件方案從1080P開始,多路播放效果基本上就差強人意了;
- 最低支持Windows XP系統,建議使用Windows 10及以上版本,可充分利用雙顯卡的硬件加速能力(GPU)實現低延遲的流暢多路播放效果。
3.功能豐富
- 最核心的無疑是播放功能,包含單路播放、多路播放、全屏播放、快播、慢播、按偵播放、獨立顯卡播放、雙顯卡播放等等,其中多路播放分屏風格支持多達31種,總有一款適合您,需要的分屏風格沒有時也可以委托定制開發,還有指定視頻名稱或指定時間段回看視頻等;
- 抓圖功能,定時批量抓、支持保存指定本地路徑或圖片數據直接返回前端、圖片質量可控制等,無插件方案由于無法訪問本地文件系統是無法抓圖直接保存到本地的,也不是基于視頻原有分辨率進行抓取,圖片質量是無法保證的;
- 錄像功能,支持直接錄像保存到本地MP4文件,而無插件方案由于無法訪問本地文件系統,自然也無法直接完成此功能;
- 視頻畫面中疊加透明網頁內容顯示,為視頻處理和交互提供可定制的強大支持,如人像及車輛識別顯示詳細信息等;
- 彈幕及水印功能,播放狀態實時提示等支持,無插件方案基本只能在服務器端先行添加,無法針對終端區別對待;
- 性能最好的私有協議播放、語音對講及云臺控制等,無插件方案都不支持私有協議播放和語音對講。
4.可定制
猿大師播放器的播放分屏風格、中間件產品名稱及公司信息等,接受付費定制開發使用,實現個性化的播放效果。
5.開源
猿大師播放器主要基于開源播放引擎LibVLC及FFPlayer開發,視頻播放底層模塊后續服務有保障,網頁播放器本身也支持客戶付費獲得源碼后自行再定制開發,實現源代碼級別的自主可控。因為基于視頻畫面定制實現一些其它功能也是常有的,比如人臉識別、車牌識別,識別出來同時需要在畫面中加入一些標記元素,也可以設計觸發某些條件時自動抓圖并保存。
6.低成本
由于采用終端直接播放的技術方案,無需服務器提供轉碼轉流支持,因此可節省大量軟硬件投入成本和持續的帶寬占用成本。
7.簡單可靠
延續原有插件播放技術路線,可實現平滑升級,前后端改造小,提供VUE集成范例,集成簡單,節省成本。
借助猿大師中間件獨特的專利技術,相對于無插件播放方案來說,猿大師播放器具有無可替代的技術優勢,具體表現如下:
- 可充分利用終端電腦的硬件加速能力(GPU)解碼和渲染,在同等硬件、網絡帶寬及流輸出條件下,延遲可做到毫秒級,可播放更多視頻源、支持更高的分辨率、實現更流暢的播放效果。
- 播放程序可直接調用操作系統及硬件廠家提供的原生播放功能,也可以調用其它程序模塊,不受瀏覽器的限制,實現豐富的個性化播放功能。這個優勢或許有人認為也是缺點,比如有安全隱患,其實對于企業的各種業務系統來說,都是需要經過充分測試才會上線,而猿大師中間件承諾本身無任何病毒或木馬行為,不會有未授權的網絡請求行為,也提供了運行過程中的安全調用驗證機制,即使未授權的第三方拿到了播放器的開發接口,沒有經過安全驗證也是無法請求播放的,一定程度上解決了瀏覽器原有插件技術不安全的缺陷。安全問題關鍵是具體如何看待,其實B/S等各種系統前端代碼的運行在瀏覽器廠家看來,其實就是裸奔的狀態,只要瀏覽器廠家想要獲取前端代碼中的敏感信息,從技術角度完全沒有任何問題,相反的是,通過猿大師的技術方案,瀏覽器可獲得的信息反而受限,除非和操作系統開發商一起配合來進行才有可能。
猿大師中間件不依賴瀏覽器的插件和擴展技術支持,瀏覽器的升級不會導致技術方案失效,通訊技術采用國際標準的Web Socket技術,數據采用主流的JSON打包,通用性強,各種前端框架都可以對接,兼容性好。
猿大師中間件提供了前端可調用的自動升級中間件或小程序的機制,解決了傳統C/S系統升級終端軟件的大難題,具有了和B/S接近的分發便利優勢。