freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于android設(shè)備的音視頻實(shí)時(shí)監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-資料下載頁

2025-10-24 08:16本頁面

【導(dǎo)讀】盡我所知,除了文中特別加以標(biāo)注和致謝中所羅列的內(nèi)容以外,論文中不。教育機(jī)構(gòu)的學(xué)位或證書而使用過的材料。與我一同工作的同志對(duì)本研究所做的任。何貢獻(xiàn)均已在論文中作了明確的說明并表示了謝意。申請(qǐng)學(xué)位論文與資料若有不實(shí)之處,本人承擔(dān)一切相關(guān)責(zé)任。校攻讀學(xué)位期間論文工作的知識(shí)產(chǎn)權(quán)單位屬北京郵電大學(xué)。學(xué)校有權(quán)保留并向國。本學(xué)位論文不屬于保密范圍,適用本授權(quán)書。出于安全等方面考慮,日常生活中有很多需要用到監(jiān)控的地方,絡(luò),價(jià)格昂貴,難以實(shí)現(xiàn)遠(yuǎn)距離傳輸。載能力取得了重大進(jìn)展。備迅速得到了普及。尤其是以Android作為操作系統(tǒng)的智能設(shè)備,如。Android系統(tǒng)具有廉價(jià)、開放、兼容。性強(qiáng)、高效等特點(diǎn),特別適合作為民用智能終端設(shè)備的操作系統(tǒng)。備、通過互聯(lián)網(wǎng)和3G通信網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳送的音視頻實(shí)時(shí)監(jiān)控系統(tǒng)。接口,然后自下而上逐步進(jìn)行研究和開發(fā)。在此過程中,為了使系統(tǒng)。知的編碼格式和傳輸協(xié)議。本文所設(shè)計(jì)的系統(tǒng)主要由Android音視頻

  

【正文】 SAS, 5 塊 考慮 到數(shù)據(jù)存儲(chǔ)的可靠性,可以考慮使用 RAID 技術(shù),考慮到廉價(jià)性因素,可以選擇 RAID5 方式( IBM System x3650 M3 內(nèi)建支持 RAID5),則此時(shí): 10TB = (N 1) 2TB 式( 32) 可得 N = 6,即需要的硬盤數(shù)量為 6塊。 軟件架構(gòu) 本監(jiān)控系統(tǒng)主要運(yùn)用的是音視頻媒體的實(shí)時(shí)傳輸技術(shù)。具體而言,包括北京郵電大學(xué)軟件工程碩士論文 16 Android 音視頻采集、音視頻編解碼、 RTP傳輸、 RTSP 服務(wù)、 UPnP 等。這些技術(shù)均依賴于特定的操作系統(tǒng)、軟件環(huán)境與應(yīng)用程序框架等。 ? 受監(jiān)控端軟件架構(gòu) 圖 33 受監(jiān)控 端軟件架構(gòu) 如圖 33所示,音視頻實(shí)時(shí)監(jiān)控系統(tǒng)的受監(jiān)控端軟件主要包括用戶界面、音視頻采集模塊、音視頻編碼器、流媒體傳輸模塊、網(wǎng)絡(luò)地址映射模塊和設(shè)備驅(qū)動(dòng)層等幾部分組成。其中用戶界面用于設(shè)定設(shè)備工作狀態(tài)、服務(wù)器信息等,負(fù)責(zé)受監(jiān)控端的人機(jī)交互;音視頻采集模塊通過間接調(diào)用設(shè)備驅(qū)動(dòng)層功能,采集音視頻信息;音視頻編碼器負(fù)責(zé)將采集到的原始音視頻信息編碼成為適合通過網(wǎng)絡(luò)進(jìn)行實(shí)時(shí)傳輸?shù)母袷?;網(wǎng)絡(luò)傳輸?shù)墓δ苡闪髅襟w傳輸模塊實(shí)現(xiàn);在流媒體傳輸?shù)倪^程中,如需解決內(nèi)網(wǎng)網(wǎng)絡(luò)地址映射的問題,則交由網(wǎng)絡(luò)地址映射模塊來解決。 ? 受控端操作系統(tǒng) 受監(jiān)控端采用 Google 公司主持開發(fā)的 Android 操作系統(tǒng),具體版本為 ,API Level 16,代號(hào)“ Jelly Bean”,該系統(tǒng)具有資源占用小、運(yùn)行效率高、多媒體支持程度高、節(jié)能穩(wěn)定等特點(diǎn),適合本監(jiān)控系統(tǒng)應(yīng)用。 考慮到移植的方便性,可以直接選擇上文中提到的 TQ210 Android 開發(fā)板套件廠商提供的發(fā)行版本,以降低實(shí)現(xiàn)的復(fù)雜度。 ? 受監(jiān)控端音視頻編碼器 Android 系統(tǒng)支持錄制音頻和視頻, MediaRecorder 對(duì)象可將其按照一定的編碼格式和存儲(chǔ)格式保存到文件 ,如 3GPP 文件、 M4A 文件 、 MP4 文件等 。然而Android 只能將音視頻保存為文件,錄制完成后再回放,不支持輸出原始媒體流,故無法直接將采集的到媒體實(shí)時(shí)傳輸出去。 為了解決這一問題,可以直接從 MediaRecorder 中采集音頻波形數(shù)據(jù)和視頻幀數(shù)據(jù),然后使用第三方編解碼庫對(duì)其進(jìn)行編碼。本監(jiān)控系統(tǒng)使用的是當(dāng)前被廣泛使用的、公認(rèn)最高效的編解碼庫, FFmpeg[12]。本文會(huì)在后續(xù)的章節(jié)詳細(xì)講解如何將其移植到 Android 平臺(tái)中并進(jìn)行調(diào)用。 ? 受監(jiān)控端媒體傳輸組件 流媒體的傳輸采用 RTP/RTCP 協(xié)議。 Android 的 API 中雖然有 相關(guān)的 API,北京郵電大學(xué)軟件工程碩士論文 17 但是僅僅是一組簡單的接口,還很不完善。本文選用的 RTP 應(yīng)用程序 API 是jlibrtp[13],它由純 Java 語言實(shí)現(xiàn),方便進(jìn)行移植,且接口簡單,使用靈活,支持自定義 timestamp 和 mark 標(biāo)志。 ? 受監(jiān)控端 UPnP 組件 當(dāng)受監(jiān)控端設(shè)備通過有線網(wǎng)絡(luò)或 WIFI網(wǎng)絡(luò)接入的時(shí)候,包括某些 3G網(wǎng)絡(luò)接入的情況,設(shè)備往往是處于局域網(wǎng)中的。這種受監(jiān)控端處于局域網(wǎng),而流媒體服務(wù)器處于互聯(lián)網(wǎng)環(huán)境的情況,就要求局域網(wǎng)的路由器或防火墻設(shè)備支持 VoIP 通信,或者支持 UPnP。為了保障在各種情況下都能夠正常通信,在受監(jiān) 控端總是需要實(shí)現(xiàn) UPnP 功能的。 UPnP 全稱為“通用即插即用” [14],它是由 UPnP Forum 推廣的一套網(wǎng)絡(luò)協(xié)議,其目標(biāo)是使家庭網(wǎng)絡(luò)和辦公網(wǎng)絡(luò)中的設(shè)備與設(shè)備之間能夠無縫對(duì)接。 UPnP 當(dāng)前被廣泛應(yīng)用于網(wǎng)絡(luò)設(shè)備的發(fā)現(xiàn)和動(dòng)態(tài)路由和端口映射控制方面。通過使用這一技術(shù),應(yīng)用程序可以請(qǐng)求路由器或防火墻設(shè)備臨時(shí)(或永久)的建立一個(gè)網(wǎng)絡(luò)地址轉(zhuǎn)換( NAT, Network Address Translation) [15],使得處于互聯(lián)網(wǎng)上的設(shè)備可以連接到局域網(wǎng)中的設(shè)備上。 本文所設(shè)計(jì)的監(jiān)控系統(tǒng),選用 Cling[16],它 是一款用 Java 語言編寫的 UPnP協(xié)議開源實(shí)現(xiàn),原生支持通用 Java 語言和 Android 系統(tǒng),其目標(biāo)就是嚴(yán)格遵守國際規(guī)范,完整的、簡潔的、廣泛的實(shí)現(xiàn) UPnP API。它靈活易用、代碼小巧、移植簡單,特別適用于本系統(tǒng)的應(yīng)用場景。 ? 流媒體服務(wù)器軟件架構(gòu) 圖 34 流媒體服務(wù)器軟件架構(gòu) 如圖 34所示,流媒體服務(wù)器軟件架構(gòu)主要由流媒體接收模塊、流媒體會(huì)話模塊、編解碼模塊、持久化模塊、流媒體發(fā)送模塊和資源會(huì)話池等部分構(gòu)成。其中流媒體接收模塊負(fù)責(zé)接收來自于受監(jiān)控端軟件的實(shí)時(shí)媒體流;接收到的媒體信息需要通過編解碼模 塊進(jìn)行處理,以方便用于后續(xù)的各項(xiàng)功能;持久化模塊可以將解碼后的媒體信息存儲(chǔ)至流媒體服務(wù)器的本地硬盤,也可以將本地硬盤中存儲(chǔ)的歷史媒體信息讀取出來;客戶端軟件通過與流媒體服務(wù)器中的媒體會(huì)話模塊進(jìn)北京郵電大學(xué)軟件工程碩士論文 18 行通信,來申請(qǐng)媒體信息資源,媒體會(huì)話模塊就可以驅(qū)動(dòng)流媒體發(fā)送模塊將前文中提到的來自于實(shí)時(shí)媒體流的、或者來自于服務(wù)器本地文件的媒體信息發(fā)送到流媒體客戶端播放器軟件,從而實(shí)現(xiàn)監(jiān)控和回放的功能。 ? 流媒體服務(wù)器操作系統(tǒng) 考慮到流媒體服務(wù)器的安全性、可靠性、性能、成本等方面因素,決定選用Linux 作為其操作系統(tǒng)。 目前 Linux 擁有眾多支持廠商及其發(fā)行版本,每個(gè)版本都有其特點(diǎn)和優(yōu)勢。今年來,一種開放的、以易用性為核心目標(biāo)的 Linux 發(fā)行版本逐步占領(lǐng)了很大部分市場,它就是 Ubuntu Linux。它是由南非著名企業(yè)家 Mark Shuttleworth 發(fā)起創(chuàng)辦的公司基于 Debian Linux 研發(fā)而成的,具有安全、可靠、易于維護(hù)、操作簡單等特點(diǎn)。 本系統(tǒng)選定的版本為 Ubuntu LTS Server, 64bit 版。 ? 流媒體服務(wù)器多媒體應(yīng)用框架 流媒體服務(wù)器端主要需進(jìn)行三個(gè)方面的工作:其一,接收來自于受監(jiān)控端的音視頻媒體并進(jìn) 行解碼;其二,對(duì)監(jiān)控媒體進(jìn)行封裝并存儲(chǔ)為文件,以備日后調(diào)取播放;其三,將監(jiān)控媒體以 RTSP 服務(wù)的形式提供給主監(jiān)控端,供用戶對(duì)監(jiān)控節(jié)點(diǎn)進(jìn)行實(shí)時(shí)監(jiān)控。 為了實(shí)現(xiàn)上述功能,涉及到的技術(shù)包括 RTP/RTCP 流媒體傳輸、音視頻編解碼、音視頻媒體序列化(以文件的形式持久化至磁盤)、 RTSP 協(xié)議實(shí)現(xiàn)等。要應(yīng)用這些技術(shù),綜合考慮可行性、實(shí)現(xiàn)難度、效果和性能、成本等方面因素,最好選擇成熟的應(yīng)用程序框架和保準(zhǔn)的國際規(guī)范與協(xié)議實(shí)現(xiàn)。 通過多方面對(duì)比,認(rèn)為采用 Java 作為開發(fā)語言,以 JMF( Java Media Framework API) [17]作為流媒體應(yīng)用框架是最好的選擇。首先, Java語言具有安全、穩(wěn)定、開發(fā)效率高、可移植性強(qiáng)的特點(diǎn),且 Java 語言被全球眾多知名公司和組織所支持,擁有大量的應(yīng)用程序框架和第三方功能組件,適應(yīng)各種應(yīng)用場景;其次, JMF 是原 Sun Microsystem 公司開發(fā)的一套 JavaSE 增強(qiáng)應(yīng)用框架,支持音視頻媒體的采集、回放、編解碼、傳輸?shù)葞缀跛辛髅襟w技術(shù),同時(shí)支持標(biāo)準(zhǔn)的 RTP/RTCP 協(xié)議,以及眾多國際標(biāo)準(zhǔn)的音視頻編碼格式和文件(容器)格式,為 Java 多媒體開發(fā)提供了完整的解決方案。 如圖 35所示 , JMF 在處理媒體的時(shí)候,采用的是一種“輸入 處理 輸出”這樣的模型。它將媒體信息定義為 DataSource(數(shù)據(jù)源),作為輸入或輸出的對(duì)象, Processor(處理器)則負(fù)責(zé)對(duì)數(shù)據(jù)源進(jìn)行編碼、解碼、增加音效、附加視頻信息、調(diào)整音視頻屬性等操作。數(shù)據(jù)源的來源,既可以是利用 MediaLocator對(duì)象捕捉來自麥克風(fēng)和攝像頭的信息,也可以是其讀取來自多媒體文件的信息,北京郵電大學(xué)軟件工程碩士論文 19 還有可能是來自于網(wǎng)絡(luò)的數(shù)據(jù),通過 SessionManager 對(duì)象進(jìn)行處理后得到的。通過 Processor 處理過的數(shù)據(jù)源,可以通過 Player 對(duì)象進(jìn) 行播放,使之在音箱和顯示器上表現(xiàn)出來,也可以通過 SessionManager 對(duì)象以 RTP 協(xié)議的形式傳輸出去,還可以通過 DataSink 對(duì)象,將媒體信息存儲(chǔ)到多媒體文件中。 圖 35 JMF 媒體處理模型 此外,在 Processor 工作過程中,為了能夠處理不同的媒體格式,尤其是需要在多種媒體格式之間進(jìn)行編解碼操作的時(shí)候,需要用到的一種組件叫做 Codec(編解碼器)。它是一個(gè)多媒體轉(zhuǎn)碼的抽象接口,定義了一組用于編解碼操作的方法。在 JMF 中,原 Sun 公司和 IBM公司已經(jīng)分別提供了若干種常用媒體格式的編解碼器。如 果這些解碼器仍然不能滿足用戶需求,應(yīng)用程序開發(fā)人員可以自行實(shí)現(xiàn)符合要求的編解碼器,并通過 JMF 注冊工具,將該編解碼器注冊到 JMF 中,這樣, Processor 就可以調(diào)用自定義的編解碼器進(jìn)行媒體處理工作了。 從這樣一個(gè)架構(gòu)來看, JMF 確實(shí)是一個(gè)具有完善的功能體系和完整實(shí)現(xiàn)的多媒體應(yīng)用程序框架,適合本監(jiān)控系統(tǒng)的應(yīng)用。 ? 流媒體服務(wù)器網(wǎng)絡(luò)通信框架 北京郵電大學(xué)軟件工程碩士論文 20 考慮到流媒體服務(wù)器是監(jiān)控系統(tǒng)的核心部件,所有流媒體信息、會(huì)話控制信息均需要通過流媒體服務(wù)器進(jìn)行處理,因此保持流媒體服務(wù)器網(wǎng)絡(luò)通信過程的高效性便成了一項(xiàng)特別需要注意的問題。 在 Java 編程語言中,有一項(xiàng) nio[18]技術(shù),可以通過非阻塞的方式實(shí)現(xiàn)包括網(wǎng)絡(luò)通信在內(nèi)的 IO(輸入輸出)問題,利用這一技術(shù),可以極大的提高應(yīng)用程序網(wǎng)絡(luò)通信效率。然而,使用 nio 接口進(jìn)行應(yīng)用程序開發(fā),由于其通信過程是異步的,也就是說數(shù)據(jù)的收發(fā)過程是隨機(jī)發(fā)生的,使得程序編寫難以保持清晰的結(jié)構(gòu)化思路,容易對(duì)經(jīng)驗(yàn)不足的開發(fā)者造成不少麻煩。 為此,有人創(chuàng)建了一個(gè)名為 ty[19]的開源軟件項(xiàng)目,專門作為 Java nio接口的一個(gè)應(yīng)用程序框架,方便人們開發(fā)基于 nio 技術(shù)的應(yīng)用程序。簡單而言,ty 是一個(gè)異步的 、基于事件驅(qū)動(dòng)的網(wǎng)絡(luò)應(yīng)用程序框架,用以幫助實(shí)現(xiàn)可維護(hù)的高性能服務(wù)器和客戶端軟件。 Netty 不僅對(duì) nio 接口的通信過程進(jìn)行了封裝,還通過分層的方式,對(duì) FTP、 SMTP、 HTTP 和 RTSP 等通信協(xié)議進(jìn)行了封裝,使得開發(fā)者們能夠及其方便的編寫基于這些協(xié)議的應(yīng)用程序。 本章小結(jié) 在本章中,對(duì)音視頻實(shí)時(shí)監(jiān)控系統(tǒng)做了系統(tǒng)化的需求分析,其中包括應(yīng)用場景、網(wǎng)絡(luò)環(huán)境、性能要求、兼容性、擴(kuò)展性等方面。該系統(tǒng)的實(shí)際設(shè)計(jì)方案與具體技術(shù)實(shí)踐,以及最終的應(yīng)用驗(yàn)證,均以此為參考。 此外,根據(jù)需求分析的內(nèi)容,本章還對(duì)文章所討論的音 視頻實(shí)時(shí)監(jiān)控系統(tǒng)進(jìn)行了架構(gòu)設(shè)計(jì),討論的網(wǎng)絡(luò)架構(gòu)、網(wǎng)絡(luò)接入方式、設(shè)備選型、軟件架構(gòu)等方面問題,為系統(tǒng)的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)提供系統(tǒng)化的框架結(jié)構(gòu)。 北京郵電大學(xué)軟件工程碩士論文 21 第四章 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 在本章中,將對(duì)監(jiān)控系統(tǒng)運(yùn)用的應(yīng)用程序框架進(jìn)行詳細(xì)的介紹,分析其工作原理,以及如何運(yùn)用于本系統(tǒng)的開發(fā)過程。系統(tǒng)中關(guān)鍵的設(shè)計(jì)思想、核心代碼將會(huì)進(jìn)行描述和解析。 受監(jiān)控端 受監(jiān)控端,也就是 Android 設(shè)備端。這一部分的主要任務(wù)就是采集音視頻數(shù)據(jù)、音視頻編碼,并將媒體流傳輸?shù)搅髅襟w服務(wù)器端。受監(jiān)控端所設(shè)計(jì)的功能模塊主要有如下幾點(diǎn): FFmpeg 移植 在 Android 設(shè)備端,為了能夠?qū)σ粢曨l信息進(jìn)行編碼,必須要有相應(yīng)的編解碼器。而 Android 系統(tǒng)并沒有向應(yīng)用程序?qū)又苯颖┞毒幋a解碼器,其內(nèi)置的opencore 是經(jīng)過定制改造的,且根據(jù)不同的設(shè)備提供商、操作系統(tǒng)發(fā)行版本而存在較大差異。為了解決這一問題,就不得不向系統(tǒng)中移植第三方的編解碼器,以完成音視頻編碼的工作。 向 Android 移植 FFmpeg,應(yīng)在 Linux 系統(tǒng)環(huán)境下進(jìn)行,本監(jiān)控系統(tǒng)實(shí)際開發(fā)使用的是 Ubuntu LTS,安裝 gcc、 automake 等相關(guān)開發(fā)工具包。除此之 外,還應(yīng)該裝有 Android SDK、 eclipse 及其 Android 開發(fā)插件 —— ADT。 移植的詳細(xì)步驟如下: ? 下載并配置 Android NDK Android NDK[20]是一組工具集,它允許 Android 程序開發(fā)人員使用 native代碼(如 C/C++代碼)編寫某些功能。本文中使用的 NDK 版本是 r8c,將下載好的 NDK 壓縮文件解壓至 /opt 目錄,并將如下路徑添加到 PATH環(huán)境變量中: /opt/androidndkr8c ? 下載并修改、編譯 FFmpeg 源碼 FFmpeg 是一個(gè)非營利性開源軟件組織的名 稱,同時(shí)也是這個(gè)組織開發(fā)的一個(gè)開源軟件項(xiàng)目。 FFmpeg 軟件實(shí)際上是一個(gè)可移植的多媒體應(yīng)用軟件庫,提供了一套完整的媒體錄制、編碼轉(zhuǎn)換和傳輸?shù)姆桨浮1疚乃浦驳?FFmpeg 的版本號(hào)為 ,可以從其官方網(wǎng)站上直接下載。 將下載好的文件解壓縮為如下文件夾: 北京郵電大學(xué)軟件工程碩士論文 22 ~/android/ffmpeg/jni/ffmpeg 然后建立如下文本文件: ~/android/ffmpeg/jni/ 其內(nèi)容為: include $(allsubdirmakefiles) 建立文本文件: ~/android/ffmpeg/jni/ffmpeg/ 內(nèi)容 如下: LOCAL_PATH := $(call mydir) include $(CLEAR_VARS)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1