新聞中心
本文轉(zhuǎn)載自微信公眾號「java開源精選」,作者妖生 。轉(zhuǎn)載本文請聯(lián)系java開源精選公眾號。

站在用戶的角度思考問題,與客戶深入溝通,找到額爾古納網(wǎng)站設計與額爾古納網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋額爾古納地區(qū)。
背景
最近在調(diào)研調(diào)研流媒體、RTSP、SIP之類的,兩方面的目的:一是找一個云端查看局域網(wǎng)監(jiān)控的方案,一個是實現(xiàn)與門禁聯(lián)動的SIP 可視化對講。
云端視頻監(jiān)控
云端視頻監(jiān)控有三種方案:
1、開發(fā)SIP服務器,實現(xiàn)GB28181協(xié)議,海大宇的IPC攝像頭也基本支持,但是如果有存儲30天的這種需求,對于云端來說,云盤就太昂貴了。
2、上下級聯(lián)動,通過海大宇的SDK調(diào)用攝像頭NVR(IPC攝像頭一般自帶)或硬盤錄像機,再推送云端。
3、上下級聯(lián)動,通過RTSP(攝像頭一般都支持此協(xié)議)拉流錄像,在云端下發(fā)命令時推送實時的或曾經(jīng)的錄像視頻至云端。
云端視頻監(jiān)控之前選定的方案是采購h5stream,可以上下級聯(lián)動,使用簡單,海大宇等主流攝像頭都可以支持。
但是因為需要每臺機器都部署一個license,比較煩人;操作步驟是先部署,再郵件申請license,再激活,要弄兩次,沒法直接接入,在物聯(lián)網(wǎng)實施的時候特別尷尬。費用倒是不貴,一個license百元左右。
然后開始重新調(diào)研。
2020年年初,我在疫情放假期間曾經(jīng)基于網(wǎng)上的教程做過一個使用nginx-RTMP + OBS實現(xiàn)的推流直播,瀏覽器上調(diào)用.m3u8的分片流,但是分片流這種方式延遲太高了。
調(diào)研SIP時發(fā)現(xiàn)有一個國人開發(fā)的C++流媒體庫不錯,ZLMediaKit;地址是https://github.com/xia-chu/ZLMediaKit。并且有許多優(yōu)秀的作者基于ZLMediaKit開發(fā)了對應的SIP服務,且實現(xiàn)了公安制定的國標GB28181-2011、GB28181-2016協(xié)議。
在豬豬群里問了一下有沒有java實現(xiàn)的流媒體庫,有同學說red,去搜了下,發(fā)現(xiàn)red5的github還在更新維護,倒不失為一個選擇。但是最新的red5版本是基于jdk11的,就有點犯怵了。
另有群里的同學貼出了知乎上的答案,雖然已經(jīng)是2015年的了,但還是具有參考價值,可以看一看:
- Live555 (C++) 流媒體平臺框架
- EasyDarwin (C++,國產(chǎn)精品)實時流媒體播放服務器程序
- DarwinStreamingSrvr (C++)
- Flash流媒體服務器
- Red5 (Java)流媒體服務器
- Open Streaming Server (Java)FMS流媒體服務器 (Adobe,收費的)
- Wowza流媒體服務器(Java)開源流媒體平臺
- FreeCast(Java)
帖子地址:https://www.zhihu.com/question/31160392。
Live555 EasyDarwin都是不錯的方案,EasyDarwin 還是我們合肥的,是一家叫青犀的公司。
上面沒列入而我調(diào)研的還有 liveGBS 、h5stream,這幾種方案都是可以上下級聯(lián)動的,但是因為價格的原因,主要是青犀千路以下比較貴,我們目前還沒那個量級,所以選擇了可以分批次購買的h5stream。
SIP音視頻對講
說完視頻監(jiān)控,說說SIP 音視頻對講。
如果只是做SIP 音視頻對講的話,找到了一個不錯的解決方案,即是flashphoner,地址https://flashphoner.com/。Android、ios、web都支持。
然后在查看flashphoner的過程中,找到了這個帖子【25個常用免費SIP軟電話】,地址:https://zhuanlan.zhihu.com/p/313345953。
列表如下:
- XLite (Now Bria Solo)
- linphone
- MicroSIP
- 3CX Softphone
- ZoIPer
- Blink
- Grandstream WAVE
- (Qutecom)Wengo
- Damaka
- AdoreSoftphone
- MiniPAX
- MizuPhone
- FlashPhone
- FaramPhone
- Mirial Softphone
- WXCommunicator
- Twinkle
- IAXComm
- SJLabs SJPhone
- Phoner
- DIAX
- ExpressTalk
- T-Max Dialer
- IPComms
- IMSDroid
當然,并沒有一一驗證。
如果選好了后端的流媒體方案,前端的播放怎么弄?想到了使用webRTC。
在搜尋webRTC的時候,找到了極客時間李超的課,在其音視頻直播課中,也推薦了幾款開源的流媒體軟件:
- licode、
- Janus-gateway
- Mediasoup
- Medooze
Meooze、Mediasoup、Licode這三個流媒體服務器的媒體通信部分都是由 C++ 實現(xiàn)的,控制邏輯通過 Node.js 實現(xiàn)。Janus-gateway是完全通過 C 語言實現(xiàn)的。據(jù)說是都可以支持500人的多人視頻。
商業(yè)上還有個大牛直播,據(jù)自己介紹延遲極低,適合做直播服務。
調(diào)研后的想法
就這些吧,這是目前調(diào)研的一些成果。有些也并沒有做深入的研究。有些部署起來較為麻煩,花了半天沒部署好,就放棄了。
目前的想法是將視頻全部推到云端肯定不現(xiàn)實,帶寬太貴了。所以準備在局域網(wǎng)中部署客戶端,拉流RTSP,使用webRTC或其他js工具播放,然后使用frp這類穿透軟件,可以直接暴露服務給外網(wǎng)訪問。
甚至可以將js中的播放地址替換為局域網(wǎng)中播放地址,使用iframe的方式嵌套,只要解決跨域問題,就可以直接讓視頻在客戶局域網(wǎng)的本機上播放。
當然,如果不是對應局域網(wǎng)內(nèi)的客戶機訪問就很尷尬了,所以還要做好云端訪問與本地訪問的隔離。
回過頭來想想,我們在A、B兩個局域網(wǎng),使用A區(qū)的電腦訪問系統(tǒng),然后展示B區(qū)的攝像頭,也不是不可以,使用NAT轉(zhuǎn)換的方式,進行點對點訪問就行了,只是把云端作為一個隧道,那流量是不是可以破開帶寬的限制呢?
目前的想法可能有別于主流的解決方案,也不知道能不能實現(xiàn)。做做看,否則帶寬真的是個大問題。
至于可視化對講,如果自研的話,目前傾向于采用 ZLMediaKit,在其上實現(xiàn)SIP 信令。
但是可視化對講方案是比較成熟、通用的,也沒有個性化的需求,所以找?guī)准疑虡I(yè)公司比較下,應該就可以確定了。
附錄:名詞簡析
RTSP:實時流協(xié)議(Real Time Streaming Protocol)。流媒體公有協(xié)議,專門用以控制流媒體服務器。如播放,錄制和暫停?;赨DP協(xié)議,傳輸ts(.m3u8)、MP4格式流。目前多用于安防領域。
RTMP:實時消息協(xié)議(Real-Time Messaging Protocol)。目前是Adobe的私有協(xié)議,未完全公開,跟RTSP擁有一樣的功能?;赥CP協(xié)議,傳輸flv、f4v格式流,目前是比較主流的流媒體協(xié)議。有很多變種,具體看維基。
RTSP一般需要2-3個通道,數(shù)據(jù)和命令通道分開,RTMP和HTTP在一個通道上傳輸命令和數(shù)據(jù)。
SIP:會話發(fā)起協(xié)議(Session Initiation Protocol),由IETF(Internet Engineering Task Force,因特網(wǎng)工程任務組)制定的多媒體通信協(xié)議,也被稱作信令協(xié)議,所以SIP服務也稱作信令服務。
SIP可以用于創(chuàng)建、修改和終止包括視頻、語音、即時通信、在線游戲和虛擬現(xiàn)實等多種多媒體元素在內(nèi)的交互式用戶會話。
文章標題:流媒體:云端視頻監(jiān)控與可視化對講
標題URL:http://fisionsoft.com.cn/article/ccsioph.html


咨詢
建站咨詢
