一、問題來源
在遍地都是攝像頭的今天,往往需要在各種信息化、數(shù)字化、可視化等B/S系統(tǒng)中集成實(shí)時(shí)視頻流播放等功能,???、大華、華為等廠家攝像頭或錄像機(jī)等設(shè)備一般也都遵循安防行業(yè)標(biāo)準(zhǔn),支持國(guó)際標(biāo)準(zhǔn)的視頻主流傳輸協(xié)議RTSP(實(shí)時(shí)視頻流)輸出,不幸的是Chrome、Edge、Firefox等新一代瀏覽器從2015年開始不再支持NPAPI插件加載運(yùn)行,直接導(dǎo)致RTSP視頻流從此無(wú)法在高版本瀏覽器網(wǎng)頁(yè)中原生播放。對(duì)于絕大部分沒有影視頻處理經(jīng)驗(yàn)的前、后端工程師來說是一個(gè)非常棘手的問題,專業(yè)性強(qiáng),技術(shù)門檻高,而對(duì)做B/S系統(tǒng)集成的大多數(shù)公司來說,為了這部分的功能單獨(dú)招聘專職音視頻研發(fā)人員來負(fù)責(zé)的話,成本高昂不說,還未必做的好。
當(dāng)前主流版本瀏覽器既然已都不支持原生播放RTSP流,為了能夠播放RTSP流,不少公司各顯神通,出了各種商用及開源方案,不過總的說來就是在后端先轉(zhuǎn)碼再轉(zhuǎn)流給前端播放的方案,這也是號(hào)稱無(wú)插件的技術(shù)方案。對(duì)瀏覽器可直接硬件加速播放的H.264編碼視頻流,現(xiàn)在一般是在服務(wù)器端將RTSP流轉(zhuǎn)為WebRTC通訊標(biāo)準(zhǔn)的視頻流,前端接收后可通過Vedio標(biāo)簽播放;對(duì)于瀏覽器不能支持加速播放的其它編碼視頻流,要么在后端先轉(zhuǎn)流轉(zhuǎn)碼為H.264編碼后按前述方案播放,要么后端轉(zhuǎn)流到前端,前端再通過對(duì)應(yīng)編碼的WASM程序利用CPU軟解碼播放。轉(zhuǎn)流到前端WASM轉(zhuǎn)碼播放時(shí),即使配置了性能不錯(cuò)的電腦,受限于WASM的固有缺陷,比如多線程支持差、能使用的內(nèi)存大小始終受限,無(wú)法充分利用終端電腦顯卡的硬件加速能力(GPU),這就導(dǎo)致同時(shí)播放多路或高清RTSP流時(shí)也會(huì)比較吃力,而且大量占用終端電腦的CPU和內(nèi)存資源,其它操作基本無(wú)法進(jìn)行,對(duì)音視頻格式的兼容能力也很有限。

雖然無(wú)插件播放方案能夠播放出畫面,但是往往延遲高,高分辨率視頻流基本上都在數(shù)秒之久,在一些對(duì)延遲敏感的場(chǎng)合客戶要求的是毫秒級(jí)延遲,顯然無(wú)插件技術(shù)方案是無(wú)法滿足的;而且首屏畫面顯示慢,這就導(dǎo)致切換播放源時(shí)遲遲看不到畫面出來,用戶體驗(yàn)很差;況且無(wú)插件技術(shù)方案,需要在后端或前端持續(xù)運(yùn)行高負(fù)荷運(yùn)轉(zhuǎn)的視頻轉(zhuǎn)碼轉(zhuǎn)流服務(wù),也有部分采用WebSocket直接從攝像頭拉流播放的方案,不過需要設(shè)備支持才行,適用性不夠。如果攝像頭路數(shù)多、高清甚至是4K視頻或需要在線播放的終端比較多,服務(wù)器的壓力就會(huì)很大,播放卡頓、花屏、黑屏、斷播等現(xiàn)象就會(huì)時(shí)常出現(xiàn),很難讓客戶滿意。為了解決這些問題,相關(guān)硬件、軟件的投入和持續(xù)不斷的帶寬占用往往也讓客戶難以接受?,F(xiàn)在越來越多的客戶追求高大上的視頻播放效果,采用高清攝像頭的越來越多,播放顯示器1080P已是低配,2K甚至4K大屏正在成為主流之選。這種無(wú)插件技術(shù)方案,在中高配的屏幕上如果只能播放出慢如蝸牛的畫面,想不讓客戶吐槽實(shí)在是太難。
一個(gè)好的RTSP視頻流網(wǎng)頁(yè)播放方案,首先是要能做到持續(xù)穩(wěn)定播放多路視頻,還需同時(shí)支持H.264、H.265編碼及其它編碼格式、兼容RTSP、RTMP、HLS等流協(xié)議播放,最核心的是要做到低延遲、切換畫面快,最好能支持高清甚至4K視頻流暢播放。另外就是對(duì)當(dāng)前主流版本的瀏覽器兼容能力要強(qiáng),多路播放時(shí)分屏樣式多,還有就是開發(fā)接口豐富并可定制,如果還能做到開源或采用免費(fèi)的主流播放引擎實(shí)現(xiàn),那就最好不過了,畢竟開源在商業(yè)領(lǐng)域的應(yīng)用越來越多,是大趨勢(shì)。從系統(tǒng)集成商的角度來說,盡可能采用成熟開源工程來使用意味著有更多的自主可控機(jī)會(huì)來降低整個(gè)系統(tǒng)的實(shí)施風(fēng)險(xiǎn)。

猿大師針對(duì)當(dāng)前行業(yè)痛點(diǎn),經(jīng)過數(shù)年持續(xù)不斷的技術(shù)攻關(guān),研發(fā)出了核心技術(shù)具有專利保護(hù)的猿大師中間件產(chǎn)品,成功突破了瀏覽器收緊其插件技術(shù)的限制,在瀏覽器之上重新搭建了一套外接程序系統(tǒng)并可無(wú)縫嵌入瀏覽器網(wǎng)頁(yè)運(yùn)行,可實(shí)現(xiàn)2015年之前Chrome、Firefox、IE等瀏覽器支持的ActiveX控件和NPAPI插件播放效果,是原來采用了跨瀏覽器插件框架FireBreath的最佳替代技術(shù)方案。2020年發(fā)布了基于猿大師中間件的VLC網(wǎng)頁(yè)播放器,2021年發(fā)布了基于猿大師中間件的??翟W(wǎng)頁(yè)播放器,基本完成網(wǎng)頁(yè)中低延遲單路播放或多路流暢播放視頻流的方案拼圖,2022年上半年實(shí)現(xiàn)雙顯卡高性能網(wǎng)頁(yè)播放器,另外支持FFPlayer播放引擎,2023年初實(shí)現(xiàn)視頻畫面疊加透明網(wǎng)頁(yè)內(nèi)容的顯示特效,2023年中實(shí)現(xiàn)了大華原生網(wǎng)頁(yè)播放器,最終形成了猿大師播放器網(wǎng)頁(yè)低延遲播放RTSP產(chǎn)品。此播放器在不少客戶現(xiàn)場(chǎng)已成功實(shí)施,贏得了客戶的一致好評(píng)。猿大師中間件是此領(lǐng)域全球唯一實(shí)現(xiàn)商用的成熟中間件,核心技術(shù)實(shí)現(xiàn)方案在2019年就申請(qǐng)了中國(guó)大陸軟件發(fā)明專利保護(hù),2023年5月正式獲得專利證書,專利號(hào):ZL 2019 1 1323165.1。
二、猿大師播放器產(chǎn)品特性
1.低延遲播放
從播放性能上說,攝像頭和錄像機(jī)的硬件廠家提供的私有協(xié)議播放方式無(wú)疑是最快的,單路播放延遲可做到100-300毫秒級(jí),其次是RTSP流播放,大致是200-500毫秒級(jí),再次是無(wú)插件方案的轉(zhuǎn)碼流,優(yōu)化比較好的單路播放大致在1-3秒級(jí)。猿大師的多引擎網(wǎng)頁(yè)播放器,除了支持??导按笕A設(shè)備的私有協(xié)議直接播放之外,還內(nèi)置了格式兼容更好的MP4播放庫(kù)和兼容能力強(qiáng)大的LibVLC開源播放引擎。另外2020年發(fā)布的VLC網(wǎng)頁(yè)播放器,基于VLC的ActiveX控件開發(fā),封裝了控件的大多數(shù)接口給前端調(diào)用,在同等條件下,延遲時(shí)間和VLC桌面程序播放保持一致,并可支持多路組合實(shí)現(xiàn)多種分屏樣式播放,支持疊加透明網(wǎng)頁(yè)的內(nèi)容顯示。
2.兼容性強(qiáng)
1.絕大部分瀏覽器兼容,同時(shí)兼容Chrome、Edge、Firefox、IE、Opera、Vivaldi、Brave、Electron、360、QQ、搜狗等瀏覽器的低版本到最新版都可以使用;
2.設(shè)備兼容性強(qiáng),同時(shí)支持???、大華、華為、宇視等廠家的硬件設(shè)備,只要能輸出RTSP、RTMP、HLS、HTTP、TCP、UDP等流媒體協(xié)議,就可以直接播放;
3.支持多種視頻編碼方式,不管是H.264還是H.265都可以同時(shí)支持播放,在一些采用WASM的無(wú)插件技術(shù)方案中,往往只支持H.265編碼的視頻流、而且音頻格式兼容差,服務(wù)器轉(zhuǎn)碼方案中,編碼兼容能力直接依賴這個(gè)轉(zhuǎn)碼服務(wù)的實(shí)現(xiàn),哪怕都是MP4的視頻也千差萬(wàn)別,對(duì)播放引擎很挑剔,時(shí)常會(huì)遇到播放黑屏或無(wú)聲音等現(xiàn)象;
4.幾乎能播放任何內(nèi)容,依托最主流的開源VLC、FFPlayer、??导按笕A原生播放引擎等,支持文件、光盤、攝像頭、設(shè)備及流媒體可直接播放MPEG-2, MPEG-4, H.264, H.265, MKV, WebM, WMV, MP3, MP4等文件,而無(wú)插件技術(shù)方案往往能播放的格式有限,比如不支持本地文件播放,不支持4K視頻播放;
5.分辨率支持范圍廣,從480P到1080P,還是更高的2K或4K,都能輕松應(yīng)對(duì),無(wú)插件方案從1080P開始,多路播放效果基本上就差強(qiáng)人意了;
6.最低支持Windows XP系統(tǒng),建議使用Windows 10及以上版本,可充分利用雙顯卡的硬件加速能力(GPU)實(shí)現(xiàn)低延遲的流暢多路播放效果。
3.功能豐富
1.最核心的無(wú)疑是播放功能,包含單路播放、多路播放、全屏播放、快播、慢播、按偵播放、獨(dú)立顯卡播放、雙顯卡播放等等,其中多路播放分屏風(fēng)格支持多達(dá)31種,總有一款適合您,需要的分屏風(fēng)格沒有時(shí)也可以委托定制開發(fā),還有指定視頻名稱或指定時(shí)間段回看視頻等;
2.抓圖功能,定時(shí)批量抓、支持保存指定本地路徑或圖片數(shù)據(jù)直接返回前端、圖片質(zhì)量可控制等,無(wú)插件方案由于無(wú)法訪問本地文件系統(tǒng)是無(wú)法抓圖直接保存到本地的,也不是基于視頻原有分辨率進(jìn)行抓取,圖片質(zhì)量是無(wú)法保證的;
3.錄像功能,支持直接錄像保存到本地MP4文件,而無(wú)插件方案由于無(wú)法訪問本地文件系統(tǒng),自然也無(wú)法直接完成此功能;
4.視頻畫面中疊加透明網(wǎng)頁(yè)內(nèi)容顯示,為視頻處理和交互提供可定制的強(qiáng)大支持,如人像及車輛識(shí)別顯示詳細(xì)信息等;
5.彈幕及水印功能,播放狀態(tài)實(shí)時(shí)提示等支持,無(wú)插件方案基本只能在服務(wù)器端先行添加,無(wú)法針對(duì)終端區(qū)別對(duì)待;
6.性能最好的私有協(xié)議播放、語(yǔ)音對(duì)講及云臺(tái)控制等,無(wú)插件方案都不支持私有協(xié)議播放和語(yǔ)音對(duì)講。
4.可定制
猿大師播放器的播放分屏風(fēng)格、中間件產(chǎn)品名稱及公司信息等,接受付費(fèi)定制開發(fā)使用,實(shí)現(xiàn)個(gè)性化的播放效果。
5.開源
猿大師播放器主要基于開源播放引擎LibVLC及FFPlayer開發(fā),視頻播放底層模塊后續(xù)服務(wù)有保障,網(wǎng)頁(yè)播放器本身也支持客戶付費(fèi)獲得源碼后自行再定制開發(fā),實(shí)現(xiàn)源代碼級(jí)別的自主可控。因?yàn)榛谝曨l畫面定制實(shí)現(xiàn)一些其它功能也是常有的,比如人臉識(shí)別、車牌識(shí)別,識(shí)別出來同時(shí)需要在畫面中加入一些標(biāo)記元素,也可以設(shè)計(jì)觸發(fā)某些條件時(shí)自動(dòng)抓圖并保存。
6.低成本
由于采用終端直接播放的技術(shù)方案,無(wú)需服務(wù)器提供轉(zhuǎn)碼轉(zhuǎn)流支持,因此可節(jié)省大量軟硬件投入成本和持續(xù)的帶寬占用成本。
7.簡(jiǎn)單可靠
延續(xù)原有插件播放技術(shù)路線,可實(shí)現(xiàn)平滑升級(jí),前后端改造小,提供VUE集成范例,集成簡(jiǎn)單,節(jié)省成本。
三、技術(shù)優(yōu)勢(shì)
借助猿大師中間件獨(dú)特的專利技術(shù),相對(duì)于無(wú)插件播放方案來說,猿大師播放器具有無(wú)可替代的技術(shù)優(yōu)勢(shì),具體表現(xiàn)如下:
1.可充分利用終端電腦的硬件加速能力(GPU)解碼和渲染,在同等硬件、網(wǎng)絡(luò)帶寬及流輸出條件下,延遲可做到毫秒級(jí),可播放更多視頻源、支持更高的分辨率、實(shí)現(xiàn)更流暢的播放效果。
2.播放程序可直接調(diào)用操作系統(tǒng)及硬件廠家提供的原生播放功能,也可以調(diào)用其它程序模塊,不受瀏覽器的限制,實(shí)現(xiàn)豐富的個(gè)性化播放功能。這個(gè)優(yōu)勢(shì)或許有人認(rèn)為也是缺點(diǎn),比如有安全隱患,其實(shí)對(duì)于企業(yè)的各種業(yè)務(wù)系統(tǒng)來說,都是需要經(jīng)過充分測(cè)試才會(huì)上線,而猿大師中間件承諾本身無(wú)任何病毒或木馬行為,不會(huì)有未授權(quán)的網(wǎng)絡(luò)請(qǐng)求行為,也提供了運(yùn)行過程中的安全調(diào)用驗(yàn)證機(jī)制,即使未授權(quán)的第三方拿到了播放器的開發(fā)接口,沒有經(jīng)過安全驗(yàn)證也是無(wú)法請(qǐng)求播放的,一定程度上解決了瀏覽器原有插件技術(shù)不安全的缺陷。安全問題關(guān)鍵是具體如何看待,其實(shí)B/S等各種系統(tǒng)前端代碼的運(yùn)行在瀏覽器廠家看來,其實(shí)就是裸奔的狀態(tài),只要瀏覽器廠家想要獲取前端代碼中的敏感信息,從技術(shù)角度完全沒有任何問題,相反的是,通過猿大師的技術(shù)方案,瀏覽器可獲得的信息反而受限,除非和操作系統(tǒng)開發(fā)商一起配合來進(jìn)行才有可能。
3.猿大師中間件不依賴瀏覽器的插件和擴(kuò)展技術(shù)支持,瀏覽器的升級(jí)不會(huì)導(dǎo)致技術(shù)方案失效,通訊技術(shù)采用國(guó)際標(biāo)準(zhǔn)的Web Socket技術(shù),數(shù)據(jù)采用主流的JSON打包,通用性強(qiáng),各種前端框架都可以對(duì)接,兼容性好。
猿大師中間件提供了前端可調(diào)用的自動(dòng)升級(jí)中間件或小程序的機(jī)制,解決了傳統(tǒng)C/S系統(tǒng)升級(jí)終端軟件的大難題,具有了和B/S接近的分發(fā)便利優(yōu)勢(shì)。