一种将海康大华宇视等安防摄像机发布到H5网页微信进行直播的全终端无插件播放技术方案
在淘寶/螢石/樂橙/微吼/趣看等類型商業直播應用大規模開展的今天,高大上的直播形態似乎占據了主流,然而這些直播對于普通型的公司似乎成本有點高,而且不能夠長線、無顧慮地進行,所謂無顧慮地進行直播,指的不是直播系統的穩定性,而是其成本的穩定性,試著對比一種一直在被流量消耗扣錢的心態和每天樂此不疲地用花生殼動態域名解析進行直播的心態,是完全不一樣的體驗;
通過EasyDarwin開源項目、開源社區、開源用戶,我們接觸了大大小小各行各業的直播需求形態,大多數用戶選擇了最省錢的一種方式:用自有的IPC安防攝像機做為視頻源(攝像機+拾音器),用企業自己的固定線路進行長時間不間斷的常態化直播,省錢啊!
上面說到的這種需求形態,在toB類的企業級應用中,尤其是在較大型的企業需要,如:石油、航天、安監、農業,他們有一個共同點,前期已經投入了大量的經費構建自己的專用網絡,有固定IP,帶寬上下行足夠大,流量不用也是浪費,基于自身安全保密考慮,需要在自建的網絡中建設直播方案;
場景要義:有帶寬,有服務器,有固定IP,有攝像頭,就想做自己的直播,不想用CDN,采用一切可以采用的資源,自建流媒體服務!
二、技術實現方法
基于以上的場景需求,技術層面上,流媒體系統的業務需求基本就是:
1、RTSP安防流轉RTMP互聯網流,進行互聯網RTMP/HLS(m3u8)直播
- 此部分是功能的核心,如何能夠穩定、支持重連、低延時、時間戳均勻地進行RTMP、HLS直播,大部分情況下,ffmpeg技術是開發者的首選,能夠兼容絕大部分的RTSP流和高效的RTMP推流,而且能夠保持低延時,如果僅僅是用來做一個演示Demo,那么用ffmpeg的命令就能搞定,通過:ffmpeg -re -i rtsp://xxx -f flv rtmp://xxx,這種命令形式,就能達到基本的效果。但是這樣會有一個缺點,就是ffmpeg.exe目前不帶自動斷線重連的功能,所以,ffmpeg.exe只能做為臨時演示的Demo來用;
- 另一種方式就是基于ffmpeg或者 EasyRTSPClient + EasyRTMP 技術的二次開發功能,自己開發出支持重連的RTSP拉流轉RTMP推流的功能,這個方案我們在博客《EasyRTMP實現將RTSP流轉換成RTMP流實現RTSP直播轉RTMP直播的功能》和《EasyRTMP+EasyRTSPClient實現的多路(支持斷線重連)RTSP轉RTMP直播推流工具》中已經詳細描述。ffmpeg來做的話,也將會是同樣的方法,對每一路直播的“RTSP轉RTMP”維護一個Session,每一個Session有一個ffmpeg拉流的RTSPSource和一個RTMP推流的RTMPSink,ffmpeg再維護RTSPSource的重連和RTMPSink的重連,以達到對IPC攝像機源和RTMP流媒體服務器/CDN的穩定連接和流轉發;
2、外圍對這些RTSP輸入源與RTMP輸出源進行通道化的管理;
按照1中的描述,我們不但要做“RTSP流轉RTMP流”的功能,還要做一個外圍的、有效的Source和Sink,從配置、修改、啟用/禁用、列表查詢、到平臺對接等一系列功能的管理系統,這個功能其實就是類似NVR的通道管理的概念,而且通道管理還需要增加一些增值化的服務就更好了,比如:在線狀態、通道快照、是否啟用音頻、是否長時間拉流推流/還是有人看的時候再拉轉推(也就是按需直播的概念),等等一系列的管理功能;
3、互聯網化的多現場云端集中化管控
有時候,隨著我們的系統應用場景中,現場數量超過一個,而且經常有需要對現場接入攝像機進行不受限制的云端管控的需求的時候,我們就會遇到這樣的一些問題:
-
流媒體轉換服務(RTSP轉RTMP)置于內網現場,多個內網現場的
需要在云端進行集中化的管控; -
我們需要一套能夠在解決以上所有問題的同時,能夠對所有接入的攝像機、NVR、視頻設備進行可視化運維管理的系統;
-
如果我們能夠在云端就能夠在云端就能夠進行現場視頻設備的問題排查、數據運維,那將會節省多少成本?
三、方案推薦
上面描述了這種業務需求的要義和解決方案方法,實際對于大部分的企業,如果從底層開發做起,需要非常多年限的技術積累,而且對于大部分的企業來說,專注于上層應用可能會比在這種技術底層上消耗大量的精力時間,要獲得到更大的收益,所以,我們更傾向于推薦成熟、可靠、知識產權完備的產品:EasyNVR,
這個在之前的博客中也已經詳細描述過一些應用的場景了《基于EasyNVR實現RTSP/Onvif監控攝像頭Web無插件化直播監控》,EasyNVR在這一塊已經經過了很多用戶和應用場景的論證,對一般的企業級直播需求是完全能夠滿足的,而且還能對接到CDN,可以說是一款足夠“小而美”的應用產品!
1、EasyNVR適用于各種網絡場景中
2、EasyNVR適用的案例
基于EasyNVR實現了很多行業場景的直播需求,目前已經廣泛應用于石油油田、水利大壩、園區監控、幼兒園直播、景區直播:
上為一水利監控項目應用,EasyNVR服務器一邊擁有內網訪問權限,一邊擁有公網固定IP,采用的是方案1x
上為一施工工地網頁監控項目,采用的EasyNVR方案一
上為一幼兒園直播監控項目,面向家長進行幼兒園微信直播,采用的EasyNVR方案一
上為一園區監控網頁監控項目,采用的EasyNVR方案一
上為一施工工地網頁監控項目,采用的EasyNVR方案一
上為中石油地點網頁監控項目,采用的EasyNVR方案二
上為黃山某景區微信直播項目,采用的EasyNVR方案二
EasyNVR能夠通過簡單的網絡攝像機通道配置,將傳統監控行業里面的高清網絡攝像機IP Camera、NVR等具有RTSP協議輸出的設備接入到EasyNVR,EasyNVR能夠將這些視頻源的音視頻數據進行拉取,轉換為RTMP/HLS,進行全平臺終端H5直播(Web、Android、iOS),并且EasyNVR能夠將視頻源的直播數據對接到第三方CDN網絡,實現互聯網級別的直播分發;
EasyNVR官方網站:www.easynvr.com
總結
以上是生活随笔為你收集整理的一种将海康大华宇视等安防摄像机发布到H5网页微信进行直播的全终端无插件播放技术方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Lua和C/C++交互的注意点_艾孜尔江
- 下一篇: [Pytorch系列-42]:工具集 -