日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

海康大华等安防摄像机采用通用RTSP协议流转RTMP推送至Web无插件播放展示的流程方法

發(fā)布時間:2023/12/20 编程问答 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 海康大华等安防摄像机采用通用RTSP协议流转RTMP推送至Web无插件播放展示的流程方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

行業(yè)現(xiàn)狀

中國互聯(lián)網(wǎng)化的進程已經(jīng)越來越快了,各個行業(yè)都在進行著互聯(lián)網(wǎng)化的改造,流媒體、音視頻,作為跑在互聯(lián)網(wǎng)上最大量級的數(shù)據(jù)類型,其從編碼方式到傳輸協(xié)議到終端兼容都成為各家標準搶占的高點,RTMP、HLS(m3u8)、WEBRTC、AV1等等,互聯(lián)網(wǎng)帶來的使用習慣已經(jīng)沖擊了非常非常多的傳統(tǒng)行業(yè),就包括非常穩(wěn)重的電力行業(yè)、高速交通行業(yè),都逐步在往互聯(lián)網(wǎng)、物聯(lián)網(wǎng)架構(gòu)進行靠攏,視頻技術(shù)在這些行業(yè)也逐步開始發(fā)生變化,視頻數(shù)據(jù)作為大數(shù)據(jù)可視化的重要部分,一定是要出現(xiàn)在可視化系統(tǒng)中的。

在傳統(tǒng)流媒體視頻監(jiān)控行業(yè)、以視頻為核心的物聯(lián)網(wǎng)行業(yè)、以視頻為特色的各行各業(yè),都在一方面想進行老設(shè)備的互聯(lián)網(wǎng)化改造,另一方面想在新設(shè)備的接入時都能夠以傳統(tǒng)安防的成本和互聯(lián)網(wǎng)的架構(gòu)方式來構(gòu)建新的視頻、流媒體、安防系統(tǒng);

其實以上兩種訴求是不矛盾的,大概自2010年前后,幾乎所有的安防攝像機都已經(jīng)開始支持RTSP協(xié)議了,即使是網(wǎng)絡(luò)攝像機IPCamera、網(wǎng)絡(luò)硬盤錄像機NVR之前的模擬攝像機、硬盤錄像機DVR,也都逐步可以通過“IPC接入NVR”、“DVR固件升級”的方式,將非標的設(shè)備都轉(zhuǎn)換成為支持標準RTSP/RTP協(xié)議的網(wǎng)絡(luò)設(shè)備。以海康攝像機為例,??档臄?shù)字、模擬、IPC、DVR、NVR都可以向上進行兼容接入,也就是再老的設(shè)備,都可以通過向下兼容的方式,由最新的設(shè)備將老設(shè)備進行接入并標準化、數(shù)字化的輸出;

我們大致分析一下安防設(shè)備互聯(lián)網(wǎng)化的流程
  • 設(shè)備RTSP地址的獲取;
  • RTSP協(xié)議拉流;
  • RTSP轉(zhuǎn)RTMP數(shù)據(jù)的處理;
  • RTMP推流;
  • 流媒體轉(zhuǎn)碼與協(xié)議同步輸出;
  • 全終端的視頻播放;
  • 靈活的配置與調(diào)度;

設(shè)備RTSP地址的獲取

在每一款設(shè)備的RTSP協(xié)議輸出方式上,區(qū)別就各種各樣了,有的是一個系列產(chǎn)品會有一個地址格式,有的是沒有格式,直接IP+Port對了就可以,有的只支持UDP協(xié)議(例如很多移動終端設(shè)備或者mifi設(shè)備),最靠譜的還屬于大廠(海康、大華)了,格式基本確定,而且流輸出比較穩(wěn)定;

下面我就對怎么獲取到一款設(shè)備的RTSP地址說一下自己的經(jīng)驗:

  • 判斷攝像機IP Camera、網(wǎng)絡(luò)硬盤錄像機NVR是否支持RTSP協(xié)議,有一個非?;A(chǔ)的參考,就是在設(shè)備的后臺配置中,查找是否有關(guān)于RTSP端口的配置,如果設(shè)備有RTSP端口的配置,那基本上該設(shè)備是支持RTSP協(xié)議的

  • 對于較為近期生產(chǎn)的大部分的視頻設(shè)備:網(wǎng)絡(luò)攝像機、網(wǎng)絡(luò)硬盤錄像機NVR基本都支持Onvif協(xié)議,RTSP地址通過Onvif發(fā)現(xiàn)就可以了,Onvif的發(fā)現(xiàn)工具大家可以到 www.easynvr.com 下載Onvif工具,通過Onvif探測就能夠獲取到RTSP地址;

  • 對于沒有Onvif輔助的設(shè)備,判斷了設(shè)備支持RTSP協(xié)議后,就是找具體RTSP地址規(guī)則了,那么對于市面上的大部分攝像機那都基本上是??荡笕A的天下了,尤其是??怠_@里就對我所接觸的各家設(shè)備的RTSP地址做一個匯總:

??礑S系列設(shè)備:《最新海康攝像機、NVR、流媒體服務(wù)器、回放取流RTSP地址規(guī)則說明

??灯渌显O(shè)備:《??怠⒋笕AIpCamera RTSP地址和格式》
大華設(shè)備:《??怠⒋笕AIpCamera RTSP地址和格式》
宇視設(shè)備:《宇視攝像機RTSP地址格式規(guī)則》
雜牌設(shè)備:雜牌設(shè)備的建議是,直接采用 rtsp://ip:port/試著播放一下,然后再就是去具體廠家問了,很多小廠不把RTSP做為主要輸出內(nèi)容,所以這一塊做的也比較亂,效果一般;

  • 市面上還是會有一些不輸出RTSP協(xié)議的視頻設(shè)備,比如很多特別貴的熱成像設(shè)備(輸出的分辨率還特別低),這些設(shè)備一般情況下只能通過SDK接入,那么我們也可以通過EasyIPCamera (https://github.com/EasyDarwin/EasyIPCamera)或者 EasyRTSPServer(https://github.com/tsingsee/EasyRTSPServer) 將這些非標設(shè)備進行RTSP標準化改造,先通過設(shè)備SDK取流到Server端,再通過EasyIPCamera或者EasyRTSPServer進行輸出;

RTSP協(xié)議拉流

目前市面上兩套相對較好的RTSP協(xié)議拉流技術(shù)框架,一個是live555,一個是ffmpeg,兩套框架各有千秋,各有一系列的成功的案例:

  • live555:非常老牌的RTSP框架,十幾年了,還在迭代與維護,作者Ross也以此為業(yè),進行著開源+商業(yè)的運營,大家所熟知的VLC播放器,RTSP拉流采用的就是live555;

所以說,開源+商業(yè)化才是持久之道!

  • ffmpeg:ffmpeg就更不用說了,目前國內(nèi)大部分的播放器,都用這個,RTSP模塊自寫自帶的,兼容性也非常不錯,不過要定制起來,流程就比較復(fù)雜;

我們在這一塊分別參考live555和ffmpeg打造了兩款RTSPClient工具:EasyRTSPClient和EasyStreamClient,這都是對幾十萬行級別代碼的優(yōu)化輸出,站在巨人的肩膀上!

源自EasyRTSPClient Github介紹:An elegant, simple, high performance & high compatibility RTSP Client Utility,can use in RTSP Player,NVR,RTSP Relay,EasyRTSPClient can run in any platform ,such as x68/x64/Windows/Linux/Android/iOS/arm etc…,with flexible interface,EasyRTSPClient can fit almost all network IPCamera,very easy to use.簡單、穩(wěn)定、高效、易用的RTSPClient工具,支持Windows、Linux、ARM、Android、iOS等幾乎所有平臺,支持RTP Over TCP/UDP,支持斷線重連,能夠接入市面上99%以上的IPC,調(diào)用簡單且成熟穩(wěn)定!Github地址:https://github.com/tsingsee/EasyRTSPClient

EasyStreamClient:是一套RTSP、RTMP、HTTP等網(wǎng)絡(luò)協(xié)議的拉流庫,基本上只要是ffmpeg支持的,EasyStreamClient都支持,而且EasyStreamClient簡化了調(diào)用的流程,強化了輸出的結(jié)果,最重要的是支持了重連功能,非常易用!Github地址:https://github.com/tsingsee/EasyStreamClient

不能小視這兩個功能組件的重要作用,在很多應(yīng)用和項目中,大量的時間都是耗在這兩個上面,每一家的設(shè)備都不一樣,對協(xié)議標準的理解各有出入、各有一定的bug,作為直接面向一線設(shè)備的工具,大部分的兼容工作都在這兩個組件上。

RTMP推流

跟RTSPClient拉流一樣,RTMP推流同樣有兩個非常值得參考的開源項目:librtmp和ffmpeg,相比較來說,這里的ffmpeg推流在兼容性和持續(xù)輸出上,會有一定局限,而且定制起來也會流程相對比較繁瑣,我們目前主要的RTMP推流采用的是EasyRTMP。

EasyRTMP是一套調(diào)用簡單、功能完善、運行高效穩(wěn)定的RTMP功能組件,經(jīng)過多年實戰(zhàn)和線上運行打造,支持RTMP推送斷線重連、環(huán)形緩沖、智能丟幀、網(wǎng)絡(luò)事件回調(diào),支持Windows、Linux、arm(hisiv100/hisiv200/hisiv300/hisiv400/etc…)、Android、iOS平臺,支持市面上絕大部分的RTMP流媒體服務(wù)器,包括Wowza、Red5、ngnix_rtmp、crtmpserver等主流RTMP服務(wù)器,能夠完美應(yīng)用于各種行業(yè)的直播需求,手機直播、桌面直播、攝像機直播、課堂直播等等方面! Github地址:https://github.com/EasyDSS/EasyRTMP

我們幾乎全線的產(chǎn)品都采用的是EasyRTMP進行的流媒體音視頻標準化,EasyRTMP能夠?qū)⑤斎氲腍.264、H.265、AAC進行非常低延時以及平滑的流轉(zhuǎn),這個是目前我們在視頻標準化推流輸出上唯一的選擇!

RTSP轉(zhuǎn)RTMP數(shù)據(jù)的處理

在數(shù)據(jù)的流轉(zhuǎn)上,我們做了很多的工作,實際上這些工作用一個簡單的ffmpeg.exe是可以完成的,但是最終都返工了,用了EasyRTSPLive、EasyRTMPLive、EasyNVR這樣的中間件型服務(wù)或者流媒體網(wǎng)關(guān)服務(wù)。為什么呢?

用ffmpeg只能做到一個基本的DEMO演示的作用,在容錯機制以及應(yīng)對不同網(wǎng)絡(luò)情況時,會有諸多的問題,例如,ffmpeg不能重連,只能靠手動控制其重新連接,或者采用程序反復(fù)調(diào)用連接,另一方面,存在兼容的問題,而且資源消耗非常大,在某些ffmpeg拉流轉(zhuǎn)推流的場景下,ffmpeg對資源的消耗非常大;
還有一個是ffmpeg拉轉(zhuǎn)推延時不可控,對于用戶來說,屬于一個黑盒狀態(tài),出了問題啥情況都不知道;

為了解決以上描述的這些問題,我們分別開發(fā)了EasyRTSPLive、EasyRTMPLive ,區(qū)別在于EasyRTSPLive只針對于RTSP協(xié)議的RTMP轉(zhuǎn)推,而EasyRTMPLive是對于各種各樣的流媒體協(xié)議的輸入,例如RTSP、RTMP、HTTP、HLS等等等等的協(xié)議格式,都可以采用EasyRTMPLive輸入,并做RTMP標準化輸出,而且EasyRTMPLive所使用的EasyStreamClient還自帶了軟轉(zhuǎn)碼的功能,能將各種非標的音視頻格式都能轉(zhuǎn)化成為標準的格式進行輸出;

EasyRTSPLive需要將安防輸入的各種音頻格式,例如PCMA(G.711A)、PCMU(G.711U)、G.726,進行轉(zhuǎn)碼成為互聯(lián)網(wǎng)需要的AAC音頻格式,AAC音頻編碼可選擇用EasyDarwin開源的EasyAACEncoder,基于faac內(nèi)核,效果非常好,而且現(xiàn)在很多支持浮點計算的芯片都能支持;

EasyNVR 是另一款基于EasyStreamClient和EasyRTMP的產(chǎn)品化程度更高的產(chǎn)品,這里只做一個大概的描述,就不深入討論了:EasyNVR是一款擁有完整、自主、可控知識產(chǎn)權(quán),同時又能夠具備軟硬一體功能的安防互聯(lián)網(wǎng)化流媒體服務(wù)器,能夠通過簡單的網(wǎng)絡(luò)攝像機通道配置,將傳統(tǒng)監(jiān)控行業(yè)里面的高清網(wǎng)絡(luò)攝像機IP Camera、NVR等具有RTSP、Onvif協(xié)議輸出的設(shè)備接入到EasyNVR,EasyNVR能夠?qū)⑦@些視頻源的音視頻數(shù)據(jù)進行拉取,轉(zhuǎn)換為RTMP/HLS,進行全平臺終端H5直播(Web、Android、iOS),并且EasyNVR能夠?qū)⒁曨l源的直播數(shù)據(jù)對接到第三方CDN網(wǎng)絡(luò),實現(xiàn)互聯(lián)網(wǎng)級別的直播分發(fā)。

對于技術(shù)實現(xiàn)的選擇:
  • EasyRTSPLive:能方便有一定視頻能力的開發(fā)者或者公司進行集成開發(fā),而且對程序包體大小有要求,盡量要求精簡、專注于RTSP等等特點;

  • EasyRTMPLive:如果想做一款全功能、全協(xié)議的視頻編碼器,那可以采用EasyRTMPLive,支持協(xié)議全、兼容擴展方便、站在ffmpeg巨人的肩膀上;

  • 如果想低成本、快速、穩(wěn)定、可靠、有效達到目標建議用EasyNVR;

流媒體轉(zhuǎn)碼與協(xié)議同步輸出

一般情況下,在一些互聯(lián)網(wǎng)直播的場景中,我們經(jīng)常只需要通過EasyRTMP將RTMP流推送到CDN或者第三方公有云即可達到視頻直播的目標,但是在很多政府型項目或者私有場景項目,需要自建流媒體服務(wù)器,我們基本上采用的就是EasyDSS高性能流媒體服務(wù)器,EasyDSS內(nèi)核也基本上是整套Easy系列的流媒體服務(wù)技術(shù)中臺,對內(nèi)、對外都用的是一個產(chǎn)品,極大地方便了各個開發(fā)者、部門、公司對流媒體技術(shù)的獲取。

EasyDSS商用流媒體服務(wù)器是一款支持視頻點播、轉(zhuǎn)碼、RTMP推流直播、RTMP/HLS直播分發(fā)、服務(wù)端錄像、錄像檢索、錄像下載、時移回放的商用流媒體服務(wù)器,采用業(yè)界優(yōu)秀的流媒體框架模式設(shè)計,服務(wù)運行高效、穩(wěn)定、可靠、易維護,支持RTMP直播、RTMP推送、HTTP點播、HLS直播,并支持關(guān)鍵幀緩沖,畫面秒開等多種特性,能夠接入WEB、Android、iOS、微信等全平臺客戶端,是移動互聯(lián)網(wǎng)時代貼近企業(yè)點播/直播需求的一款接地氣的流媒體服務(wù)器,配套OBS、EasyRTMP等直播推流工具以及EasyPlayer等網(wǎng)絡(luò)播放器,可以形成一套完整的視頻直播、錄播解決方案,滿足用戶在各種行業(yè)場景的流媒體業(yè)務(wù)需求。

功能特點
  • 接收RTMP推流:EasyDSS能夠接收RTMP推流客戶端推送的RTMP音視頻流(H264+AAC),并轉(zhuǎn)發(fā)給播放客戶端;
  • 分發(fā)RTMP流:EasyDSS提供RTMP流的高性能分發(fā),RTMP播放客戶端可直接連接EasyDSS進行播放;
  • 分發(fā)HLS流:EasyDSS提供同步輸出HLS流的功能,可以將推送的RTMP流進行實時HLS切片,并提供HLS流的高性能分發(fā);
  • 直播錄像:支持將推送的直播流進行同步錄像保存;
  • 直播錄像檢索:支持檢索系統(tǒng)的直播錄像,提供錄像檢索和列表接口;
  • 直播錄像回放點播:可以點播錄制的服務(wù)端錄像,提供HLS點播,自由seek與倍數(shù)播放功能;
  • 錄像下載:可以對檢索到的錄像段進行下載,另存為MP4文件;
  • HTTP服務(wù)器:EasyDSS同時也是一款高性能的HTTP服務(wù)器,用于提供HTTP訪問,同時用于HLS流分發(fā)(具備nginx所有屬性功能);
  • 防盜鏈:持HTTP防盜鏈技術(shù);
  • 主動拉取RTMP流進行轉(zhuǎn)發(fā):EasyDSS支持對RTMP流的主動拉取,并將此RTMP流進行RTMP/HLS的轉(zhuǎn)發(fā);
  • 轉(zhuǎn)發(fā)RTMP流推送:支持將推送客戶端推送的RTMP流,轉(zhuǎn)發(fā)推送到其他RTMP流媒體服務(wù)器;
  • 推流鑒權(quán)驗證:支持對推送客戶端的推送流進行推流驗證,若無權(quán)限的推流地址,則不接收客戶端推流;
  • 推流信息統(tǒng)計:可以對推送流進行信息統(tǒng)計,包括推送時長、觀看人數(shù)、起始時間、持續(xù)時長、視頻碼率、音頻碼率、推送流量等信息;
  • 播放鑒權(quán):支持播放客戶端播放驗證,無權(quán)限的播放地址將無法進行播放;
  • 播放信息統(tǒng)計:可以對播放客戶端的數(shù)量進行統(tǒng)計,并且可以統(tǒng)計客戶端的開始時間、播放時長、播放流量等信息;
  • 視頻文件點播:支持點播HLS/mp4文件;
  • 跨平臺:支持多種平臺部署運行,Windows、Linux;
  • 二次開發(fā):提供HTTP二次開發(fā)接口,可使用接口進行一定的二次開發(fā);
  • 全終端的視頻播放

    從以上的流程來看,我們采用的是RTMP推流輸出的方式,但是如果說輸出只是支持RTMP,已經(jīng)是不能夠滿足需求的,或者說是逐步會被淘汰的,RTMP協(xié)議慢慢已經(jīng)不適合做播放協(xié)議了,更多情況下只適合做推流協(xié)議,主要幾個方面:

    • 各大瀏覽器已經(jīng)明確要淘汰flash了;
    • 國內(nèi)的flash播放已經(jīng)逐步被商業(yè)化,很多時候播放還要運行廣告插件才行;

    目前RTMP推流到EasyDSS或者CDN、公有云流媒體服務(wù)器,基本都會同步輸出RTMP、HLS(m3u8)協(xié)議,保障全平臺、全終端的可播放;EasyDSS稍微優(yōu)勢一些,支持RTSP(兼容視頻分析用途)、RTMP、HLS(m3u8)、HTTP-FLV(Web低延時);

    前端播放用EasyPlayer.js能夠達到全平臺全終端兼容播放而且是免費的;

    靈活的配置與調(diào)度

    綜上描述了很多,從設(shè)備到轉(zhuǎn)發(fā),再到流媒體和播放,其實一整套下來東西非常多,想要做的穩(wěn)定一點,都需要花費很長很長的時間;

    更多流媒體音視頻資源

    EasyDarwin開源流媒體服務(wù)器:www.EasyDarwin.org

    EasyDSS高性能互聯(lián)網(wǎng)直播服務(wù):www.EasyDSS.com

    EasyNVR安防視頻可視化服務(wù):www.EasyNVR.com

    EasyNVS視頻綜合管理平臺:www.EasyNVS.com

    EasyNTS云組網(wǎng):www.EasyNTS.com

    EasyGBS國標GB/T28181服務(wù)器:www.EasyGBS.com

    EasyRTC視頻會議解決方案:www.EasyRTC.cn

    Copyright ? TSINGSEE.com Team 2012-2019

    總結(jié)

    以上是生活随笔為你收集整理的海康大华等安防摄像机采用通用RTSP协议流转RTMP推送至Web无插件播放展示的流程方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。