用監控攝像頭實現網頁直播和微信直播的技術方案?再小的技術點也會有實現網頁市場 ,下面我們就來聊聊關于用監控攝像頭實現網頁直播和微信直播的技術方案?接下來我們就一起去了解一下吧!
用監控攝像頭實現網頁直播和微信直播的技術方案
再小的技術點也會有實現網頁市場!
一直以來,都有一些不被看好,認為是成本太高,無法大規模展開的軟件和産品形态,就好比每一座城市都會有他的著名小吃一樣,即使是慕名而來的人源源不斷,受衆群體也總是有限,但這并不妨礙這些小而美的美食服務于一方用戶;
在螢石/樂橙/微吼/趣看類型直播應用大規模開展的今天,高大上的直播形态視乎占據了主流,然而這些對于普通型的公司似乎成本有點高,而且不能夠長線、無憂地進行,我所謂的無憂地進行,指的不是直播系統的穩定性,而是成本的穩定性,試着對比一種一直在被流量消耗扣錢的心态和每天樂此不疲地用花生殼動态域名解析進行直播的心态,完全是不一樣的趕腳;
通過開源、開源社區,我們接觸了大大小小各行各業的直播需求形态,大多數用戶選擇了最省錢的一種方式:用自有的IPC攝像機做為視頻源,用企業自己的固定線路進行長時間不間斷的常态直播,省錢啊!
上面說到何種需求形态,尤其是在較大企業需要,如:石油、航天、安監、農業,他們有一個共同點,前期投入了大量的經費構建自己的專用網絡,有固定IP,帶寬上下行足夠大,流量不用也是浪費,基于自身安全保密考慮,需要在自建的網絡中建設直播方案;
要義:我有帶寬,我有服務器,我有固定IP,我有攝像頭,我就想做自己的直播,不想用CDN
技術實現方法
剝離業務需求,流媒體方面的業務需求基本就是:
- RTSP流轉RTMP流進行RTMP/HLS直播;
此部分是功能的核心,如何能夠穩定、支持重連、低延時、時間戳均勻地進行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的重連;
- 外圍對這些RTSP輸入源與RTMP輸出源進行通道化的管理;
按照1中的描述,我們不但要做“RTSP轉RTMP”的功能,還要做一個外圍的有效的Source和Sink從配置、到修改、啟用/禁用、列表查詢等一系列的功能,這個功能其實就是類似NVR的通道管理的概念,而且通道管理還需要增加一些增值化的服務就更好了,比如:在線狀态、通道快照、是否啟用音頻、是否長時間拉流推流/還是有人看的時候再拉轉推,等等一系列的功能;
方案推薦
上面描述了這種業務需求的要義和解決方案,為自家開源團隊開發的産品打個廣告:EasyNVR,這個在之前的博客中也已經詳細描述過一些應用的場景了《基于EasyNVR實現RTSP/Onvif監控攝像頭Web無插件化直播監控》,EasyNVR在這一塊已經經過了很多用戶和應用場景的論證,對一般的企業級直播需求是完全能夠滿足的,而且還能對接到CDN,可以說是一款足夠“小而美”的應用産品!
EasyNVR适用于各種網絡場景中
基于EasyNVR實現了很多行業場景的直播需求,目前已經廣泛應用于石油油田、水利大壩、園區監控、幼兒園直播、景區直播:
,