IT培训机构|91免费精品视频|专注编程培训|91免费精品|软件开发培训_91免费国产视频_华清远见教育

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Android視頻監(jiān)控實(shí)現(xiàn)(一)

Android視頻監(jiān)控實(shí)現(xiàn)(一) 時(shí)間:2018-09-26      來(lái)源:未知

第一章 系統(tǒng)簡(jiǎn)介

近年來(lái),視頻監(jiān)控市場(chǎng)的發(fā)展已經(jīng)進(jìn)入高速時(shí)期,與此同時(shí),隨著各大運(yùn)營(yíng)商對(duì)基礎(chǔ)網(wǎng)絡(luò)建設(shè)的巨大投入,快速地推動(dòng)了網(wǎng)絡(luò)攝像機(jī)在各個(gè)領(lǐng)域的快速發(fā)展應(yīng)用。安卓在Google的推進(jìn)以及本身的開(kāi)放性作用下,已經(jīng)延生到生活的各個(gè)方面,從安卓智能手機(jī)、平板,到可穿戴的Android Ware、眼鏡、手表、再到Android汽車、智能家居、電視,甚至日本出的幾款機(jī)器人都是Android系統(tǒng)的,傳統(tǒng)監(jiān)控中的移動(dòng)終端設(shè)備,例如:?jiǎn)伪O(shè)備、手持設(shè)備、車載終端設(shè)備,包括家庭監(jiān)控中用到的智能設(shè)備,都可以用Android系統(tǒng)替代了,不僅開(kāi)發(fā)容易,而且易擴(kuò)展,設(shè)備也更加智能了。在此思路下我們實(shí)現(xiàn)了Android手機(jī)的音視頻采集與上傳、流媒體服務(wù)器轉(zhuǎn)發(fā)、多平臺(tái)播放器播放的實(shí)時(shí)監(jiān)控系統(tǒng)。

1.1 視頻采集安卓端(spydroid)

Google Code上有一個(gè)開(kāi)源項(xiàng)目:spydroid-ipcamera,spydroid能在Android手機(jī)中建立一個(gè)精簡(jiǎn)的HTTP Server和RTSP Server,功能類似于一般的IpCamera,既能夠通過(guò)網(wǎng)頁(yè)訪問(wèn)攝像機(jī)并修改監(jiān)控配置,還能通過(guò)http或者rtsp協(xié)議,獲取監(jiān)控的實(shí)時(shí)音視頻。具體原理是,通過(guò)android手機(jī)對(duì)mediaRecorder錄制視頻,把localsocket傳輸?shù)奖镜氐牧鹘?jīng)過(guò)硬編碼,添加RTP頭,分離NALU包,根據(jù)RTSP協(xié)議交互過(guò)程把數(shù)據(jù)發(fā)送到對(duì)方。而且從其代碼結(jié)構(gòu)中,spydroid已經(jīng)實(shí)現(xiàn)了RTSPServer、RTSPClient、RTP、RTCP、H264、AAC...等等功能,總之,音視頻采集與上傳需要的Utility都已經(jīng)具備了,我們將這些功能組合到一塊實(shí)現(xiàn)了直播需求。

1.2 流媒體服務(wù)器(Darwin Streaming Server)

Darwin Streaming Server簡(jiǎn)稱DSS。DSS是Apple公司提供的開(kāi)源實(shí)時(shí)流媒體播放服務(wù)器程序。整個(gè)程序使用C++編寫(xiě),在設(shè)計(jì)上遵循高性能,簡(jiǎn)單,模塊化等程序設(shè)計(jì)原則,務(wù)求做到程序高效,可擴(kuò)充性好。并且DSS是一個(gè)開(kāi)放源代碼的,基于標(biāo)準(zhǔn)的流媒體服務(wù)器,可以運(yùn)行在Windows NT和Windows 2000,以及幾個(gè)UNIX實(shí)現(xiàn)上,包括Mac OS X,Linux,F(xiàn)reeBSD,和Solaris操作系統(tǒng)上的。

1.2.1 主體框架

DSS的核心服務(wù)器部分是由一個(gè)父進(jìn)程所fork出的一個(gè)子進(jìn)程構(gòu)成,該父進(jìn)程就構(gòu)成了整合流媒體服務(wù)器。父進(jìn)程會(huì)等待子進(jìn)程的退出,如果在運(yùn)行的時(shí)候子進(jìn)程產(chǎn)生了錯(cuò)誤從而退出,那么父進(jìn)程就會(huì)fork出一個(gè)新的子進(jìn)程?梢钥闯,網(wǎng)絡(luò)客戶和服務(wù)器直接的對(duì)接是由核心服務(wù)器來(lái)完成的。網(wǎng)絡(luò)客戶RTSPoverRTP來(lái)發(fā)送或者接受請(qǐng)求。服務(wù)器就通過(guò)模塊來(lái)處理相應(yīng)的請(qǐng)求并向客戶端發(fā)送數(shù)據(jù)包。

核心流媒體服務(wù)通過(guò)創(chuàng)建四種類型的線程來(lái)完成自己的工作,具體如下:

服務(wù)器自己擁有的主線程。當(dāng)服務(wù)器需要關(guān)閉檢查,以及在關(guān)閉之前記錄相關(guān)狀態(tài)打印相關(guān)統(tǒng)計(jì)信息等任務(wù)處理時(shí),一般都是通過(guò)這個(gè)線程來(lái)完成的。

空閑任務(wù)線程。這個(gè)任務(wù)線程是用來(lái)對(duì)一個(gè)周期任務(wù)隊(duì)列的管理,主要管理兩種任務(wù),超時(shí)任務(wù)和Socket任務(wù)。

事件線程。套接口相關(guān)事件由事件線程負(fù)責(zé)監(jiān)聽(tīng),當(dāng)有RTSP請(qǐng)求或者收到RTP數(shù)據(jù)包時(shí),事件線程就會(huì)把這些實(shí)踐交給任務(wù)線程來(lái)處理。

任務(wù)線程。任務(wù)線程會(huì)把事件從事件線程中取出,并把處理請(qǐng)求傳遞到對(duì)應(yīng)的服務(wù)器模塊進(jìn)行處理,比如把數(shù)據(jù)包發(fā)送給客戶端的模塊,在默認(rèn)情況下,核心服務(wù)器會(huì)為每個(gè)處理器核創(chuàng)建一個(gè)任務(wù)線程。

1.2.2 相關(guān)協(xié)議

如果要使用QuickTime流媒體服務(wù)器的編程接口,您應(yīng)該熟悉該服務(wù)器實(shí)現(xiàn)的互聯(lián)網(wǎng)工程組織(Internet Engineering Task Force,簡(jiǎn)稱IETF)協(xié)議,列舉如下:

實(shí)時(shí)流媒體協(xié)議(Real Time Streaming Protocol,簡(jiǎn)稱RTSP)

實(shí)時(shí)傳輸協(xié)議(Real Time Transport Protocol,簡(jiǎn)稱RTP)

實(shí)時(shí)傳輸控制協(xié)議(Real Time Transport Control Protocol,簡(jiǎn)稱RTCP)

對(duì)話描述協(xié)議(Session Description Protocol,簡(jiǎn)稱SDP)

1. 實(shí)時(shí)流媒體協(xié)議

當(dāng)我們需要?jiǎng)?chuàng)建并且對(duì)一個(gè)或多個(gè)時(shí)間的同步且連續(xù)的音視頻的媒體數(shù)據(jù)流控制的時(shí)候,我們需要用到RTSP協(xié)議,也就是實(shí)時(shí)流協(xié)議。RTSP并不是通過(guò)連續(xù)的數(shù)據(jù)流來(lái)創(chuàng)建并控制媒體流數(shù)據(jù)的,所以不會(huì)產(chǎn)生媒體流與控制流的交叉。用另外一種說(shuō)法就是,RTSP本身是對(duì)流媒體服務(wù)器的遠(yuǎn)程控制。為了時(shí)間實(shí)時(shí)音視頻數(shù)據(jù)的受控(快進(jìn),暫停)以及按需分配流,這個(gè)協(xié)議為我們提供了可實(shí)現(xiàn)的框架。實(shí)時(shí)流控制協(xié)議可以用在對(duì)多個(gè)數(shù)據(jù)發(fā)送的會(huì)話,通過(guò)UDP或者TCP方式,以及基于RTP發(fā)送方式來(lái)實(shí)現(xiàn)。

2. 實(shí)時(shí)傳輸協(xié)議

RTP協(xié)議是互聯(lián)網(wǎng)上進(jìn)行媒體數(shù)據(jù)的一種傳輸協(xié)議,為了實(shí)現(xiàn)一對(duì)一或者一對(duì)多的同步傳輸和提供時(shí)間信息,我們就會(huì)采用RTP協(xié)議。由于其典型應(yīng)用建立在UDP傳輸之上,但也能在TCP或者ATM等其他協(xié)議上使用這個(gè)協(xié)議。實(shí)時(shí)傳輸協(xié)議本身只能對(duì)確保數(shù)據(jù)的實(shí)時(shí)性以及完整性,但并不對(duì)傳輸?shù)捻樞蛞约皞鬏斂煽啃蕴峁┍U稀S捎谑墙⒃赨DP協(xié)議之上,所以RTP協(xié)議本身并沒(méi)有提供流量控制或者阻塞控制,所以在一般情況下我們需要使用RTCP來(lái)進(jìn)行這些幫助。由于DSS本身默認(rèn)的傳輸協(xié)議就是RTP協(xié)議,而RTP協(xié)議需要通過(guò)RTCP協(xié)議進(jìn)行流量控制,這樣很大程度上增加了機(jī)頂盒也就是解碼端的CPU處理壓力,因此本設(shè)計(jì)采用UDP協(xié)議直接對(duì)TS包進(jìn)行發(fā)送,不使用RTP協(xié)議進(jìn)行數(shù)據(jù)封裝,由于UDP協(xié)議也缺少流量控制機(jī)制,我們使用PCR值來(lái)對(duì)發(fā)送流量進(jìn)行控制以防止接收端出現(xiàn)緩存溢出影響播放質(zhì)量。

3. 實(shí)時(shí)傳輸控制協(xié)議

實(shí)時(shí)傳輸控制協(xié)議的作用是管理傳輸?shù)馁|(zhì)量,也就是在進(jìn)程間傳輸?shù)耐瑫r(shí)相互交換信息。在建立RTP會(huì)話的時(shí)候,參與傳輸?shù)碾p方周期性的傳輸RTCP包,這個(gè)數(shù)據(jù)包中包含了所有相關(guān)傳輸?shù)男畔,比如?shù)據(jù)包大小,丟失的數(shù)據(jù)包數(shù)量等等。因此通常我們利用RTCP來(lái)對(duì)傳輸流量或有效載荷進(jìn)行動(dòng)態(tài)調(diào)整,同時(shí)與RTP配合有效的控制傳輸速率,所以特別適合傳送實(shí)時(shí)數(shù)據(jù)。

4. 對(duì)話描述協(xié)議

對(duì)話描述協(xié)議(SDP)就是用來(lái)描述多媒體會(huì)話通告,多媒體會(huì)話邀請(qǐng)和其他形式的多媒體會(huì)話初始化的協(xié)議。SDP協(xié)議對(duì)流媒體描述的具體信息如下:會(huì)話名和會(huì)話目的,會(huì)話發(fā)起時(shí)間,會(huì)話中相關(guān)的網(wǎng)絡(luò)信息,會(huì)話發(fā)起者的相關(guān)信息,媒體類型,傳輸所使用的協(xié)議,流媒體編碼格式,傳輸時(shí)所使用的端口號(hào),IP網(wǎng)絡(luò)地址。因此我們可以通過(guò)解析SDP協(xié)議來(lái)獲取我們所需要的一些必要的相關(guān)信息。

其中RTSP是非常重要的協(xié)議,因此后面會(huì)結(jié)合原代碼做一個(gè)詳細(xì)的分析,這個(gè)結(jié)果對(duì)設(shè)計(jì)模塊有著非常重要的影響,也可以說(shuō)是本設(shè)計(jì)的關(guān)鍵。

1.2.3 模塊

流媒體服務(wù)器使用模塊來(lái)響應(yīng)各種請(qǐng)求及完成任務(wù)。有三種類型的模塊:

1. 內(nèi)容管理模塊

媒體源相關(guān)的RTSP請(qǐng)求與響應(yīng),我們通過(guò)內(nèi)容管理模塊來(lái)管理,每個(gè)模塊都用來(lái)對(duì)客戶的需求進(jìn)行解釋并做相應(yīng)處理,例如讀取和解析模塊支持的文件,或者請(qǐng)求的網(wǎng)絡(luò)源信息,并通過(guò)RTP等方式響應(yīng)。

內(nèi)容管理模塊有以下幾個(gè):

QTSSFileModule,

QTSSReflectorModule,

QTSSRelayModule,

QTSSMP3StreamingModule。

2. 服務(wù)器支持模塊

服務(wù)器支持模塊執(zhí)行服務(wù)器數(shù)據(jù)的收集和記錄功能。

服務(wù)器模塊包括:

QTSSErrorLogModule,

QTSSAccessLogModule,

QTSSWebStatsModule,

QTSSWebDebugModule,

QTSSAdminModule,

QTSSPOSIXFileSystemModule。

3. 訪問(wèn)控制模塊

訪問(wèn)控制模塊提供鑒權(quán)和授權(quán)功能,以及操作URL路徑提供支持。

訪問(wèn)控制模塊包括:

QTSSAccessModule,

QTSSHomeDirectoryModule,

QTSSHttpFileModule,

QTSSSpamDefenseModule。

1.2.4 工作流程

在DSS中的模塊分為動(dòng)態(tài)模塊和靜態(tài)模塊,動(dòng)態(tài)模塊在服務(wù)器啟動(dòng)時(shí)會(huì)首先裝載動(dòng)態(tài)模塊,之后才會(huì)裝載一部分靜態(tài)模塊。我們一般建議將我們自己書(shū)寫(xiě)的功能模塊編譯為動(dòng)態(tài)模塊來(lái)替換或擴(kuò)展現(xiàn)有的服務(wù)器模塊,因?yàn)樗鼤?huì)被優(yōu)先裝載。在QTSS的模塊中必須包含Register這個(gè)角色,這也是每個(gè)模塊所必須支持的角色。在模塊被裝載之后服務(wù)器會(huì)調(diào)用每個(gè)模塊的Register角色。在這個(gè)角色當(dāng)中,模塊會(huì)調(diào)用QTSS_AddRole函數(shù)來(lái)記錄這個(gè)模塊所支持的其他角色。然后服務(wù)器就將初始化角色來(lái)調(diào)用每一個(gè)擁有這個(gè)角色的模塊。這個(gè)角色主要是做一些初始化的任務(wù),比如說(shuō)內(nèi)存的分配或者對(duì)數(shù)據(jù)結(jié)構(gòu)的初始化等等。在關(guān)閉服務(wù)器的時(shí)候,所有模塊的Shutdown角色將被調(diào)用,這個(gè)角色主要是為了結(jié)束工作后處理現(xiàn)場(chǎng),比如釋放內(nèi)存等等。流媒體服務(wù)器主要就是通過(guò)這種角色來(lái)完成相應(yīng)任務(wù)的。

1.3 視頻播放器(VLC)

VLC多媒體播放器(初命名為VideoLAN客戶端)是VideoLAN計(jì)劃的多媒體播放器。它支持眾多音頻與視頻解碼器及文件格式,并支持DVD影音光盤(pán),VCD影音光盤(pán)及各類流式協(xié)議。它也能作為unicast或 multicast的流式服務(wù)器在IPv4或 IPv6的高速網(wǎng)絡(luò)連接下使用。它融合了FFmpeg計(jì)劃的解碼器與libdvdcss程序庫(kù)使其有播放多媒體文件及加密DVD影碟的功能。

優(yōu)秀的開(kāi)源播放器可以播放MPEG-1、MPEG-2、MPEG-4、DivX、DVD/VCD、數(shù)字衛(wèi)星頻道、數(shù)字地球電視頻道(digital terrestial television channels)、在許多作業(yè)平臺(tái)底下透過(guò)寬頻 IPv4、IPv6網(wǎng)絡(luò)播放線上影片;此軟件開(kāi)發(fā)項(xiàng)目是由法國(guó)學(xué)生所發(fā)起的,參與者來(lái)自于世界各地,設(shè)計(jì)了多平臺(tái)的支持,可以用于播放網(wǎng)絡(luò)串流及本機(jī)多媒體檔案之播放。

上一篇:Android視頻監(jiān)控實(shí)現(xiàn)(二)

下一篇:Git使用(本地倉(cāng)庫(kù)) 主分支

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5京公海網(wǎng)安備11010802025203號(hào)

回到頂部

主站蜘蛛池模板: 垃圾桶_垃圾桶厂家_临沂市旭宏塑料有限公司 | 唐山搬家公司-搬家公司电话价格-四通搬家 | 欢迎光临广西七三科技有限公司官网| 久久91精品久久91综合_国产亚洲自拍一区_国产精品第1页_亚洲高清视频一区_91成人午夜在线精品_亚洲国产精品网站在线播放_亚洲国产成人久久综合区_国产精品亚洲专区在线观看_免费视频精品一区二区三区 | 增压泵-离心泵-管道泵-排污泵-上海渤泉泵业制造有限公司 【官方网站】 | 液压万能试验机-液压式万能试验机-万能试验机厂家-济南鸿君试验机 | 随车吊/洒水车/低平板运输车-程力专用汽车股份有限公司 | 轻质隔墙板厂家-加气隔墙板_grc轻质隔墙板_空心实心复合隔墙板_水泥混凝土轻质隔墙板批发价格 | 投影仪配件,苏州投影仪维修,B60数显表维修-苏州市加野仪器有限公司 | 随州市东正专用汽车有限公司| 云南自考网_云南自学考试网| 全国重点实验室--人民网 | 首页|广东蒙泰高新纤维股份有限公司|丙纶细旦丝|丙纶异形丝|丙纶FDY网络丝 - 广东蒙泰高新纤维股份有限公司 | 户外工程照明|洗墙灯厂家|聚翔(广东)照明科技有限公司 | 河北瑞峰医疗-河北护理床-河北医用病床-河北养老院护理床-河北护理床厂家-河北病床厂家-河北瑞峰医疗 | 景德镇晶达新材料有限公司| 天木生物科技有限公司-高通量自动化-细胞筛选平台 | 惠声电子、广州市惠声电子科技有限公司、VBS、VBS惠声电子、VBS公共广播生产厂家、VBS广播功放生产厂家、VBS会议系统设备批发、VBSIP网络对讲系统厂家、VBS会议系统厂家、VBS智能中控厂家、VBS专业扩声厂家 | 搜药网-中药材中成药大全网普及中医中药功效归经知识,中药学知识天地 | 泊头市天一泵业有限公司_齿轮泵,高粘度齿轮泵,螺杆泵,三螺杆泵 | 陕西锐锋建筑安装有限公司,锐锋建筑,总承包,专业分包,市政综合,劳务,水电钢构,铁路公路,房建,房屋建筑施工 | 深圳钢成培训专业从事,五轴培训,车铣复合培训,数控车床,CNC数控编程,模具编程 ,钣金机械与模具设计,powermill,mastercam,solidworks,ug,hypermill培训 | 塞伯罗斯官网|二维码门禁|景区验票主板|扫码门禁|扫码开门厂家 | 山东金起起重机械有限公司[官网]-金桥银路悬臂吊,金起龙门吊,山东金起起重行吊,单梁起重机 | 首创十载—广州专业美博会展览设计公司_美博会展台搭建工厂 | 消防安装_消防安装施工_消防施工_北京消防安装公司-亿杰(北京)消防工程有限公司 | 思行科技-珠海小程序开发-珠海网站建设-珠海APP开发-江门小程序开发-江门网站建设-江门APP开发 | 南京文化墙设计公司,南京包装设计制作印刷,南京PPT设计公司,导视制作公司,企业logo设计 | 卧式球磨机_干法球磨机_尼龙球磨机-无锡市少宏粉体科技有限公司 卧螺离心机-固液分离机-台州春鼎机械制造有限公司 | 智能化会议系统|多媒体会议系统|无纸化会议系统|会议音箱|高清视频会议终端|智能化会议室|会议系统|视频会议系统-深圳市航视达科技有限公司 | 深圳五洲中医院_深圳好的中医院_深圳市医保定点医院[官网] | 深圳钢成培训专业从事,五轴培训,车铣复合培训,数控车床,CNC数控编程,模具编程 ,钣金机械与模具设计,powermill,mastercam,solidworks,ug,hypermill培训 | 誉瑞仪器是全球知名检测仪器厂商RAE在华东地区的专业级产品销售及授权维修服务商- | 上海搬运公司_上海工厂设备搬迁_大型设备吊装搬运_设备安装公司-桂星装卸搬运 | 深圳办公室装修_设计_实景_效果图_哪家好-公装装饰公司 | 虚商通信-电销卡 电销助手 | 履带底盘-橡胶履带底盘-无线遥控底盘-德州力维智能装备有限公司 铝压铸件_铝合金压铸件_铝合金压铸件厂家-安平县长虹压铸厂 | 山东飞斯特汽车科技有限公司| 消防栓保温罩,玻璃钢灭火器箱,玻璃钢消防沙箱-潍坊辰阳玻璃钢有限公司 | 宁波管道安装_宁波工业冷风机_宁波冷风机厂家_宁波厂房通风降温_「浙江甬风机电」 | 临沂网站建设,临沂网站制作,临沂网络公司,临沂小程序开发,临沂网站设计,沂水网站建设,沂南网站建设,蒙阴网站建设,平邑网站建设,费县网站建设,兰陵网站建设,郯城网站建设,临沭网站建设,莒南网站建设,兰山网络公司 |