国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種實(shí)現(xiàn)機(jī)會(huì)網(wǎng)絡(luò)中移動(dòng)終端屏幕共享的方法

2019-06-20 06:07王巧莉張振宇劉慧吳曉紅
現(xiàn)代電子技術(shù) 2019年10期
關(guān)鍵詞:移動(dòng)終端

王巧莉 張振宇 劉慧 吳曉紅

摘 ?要: 針對傳統(tǒng)的屏幕共享環(huán)境已不能滿足人們的需求等問題,文中利用機(jī)會(huì)網(wǎng)絡(luò)可以在間歇式連通環(huán)境下實(shí)現(xiàn)節(jié)點(diǎn)通信的特性,設(shè)計(jì)并實(shí)現(xiàn)了一種基于機(jī)會(huì)網(wǎng)絡(luò)的屏幕共享軟件。該軟件在機(jī)會(huì)網(wǎng)絡(luò)的場景下,基于Spring?boot框架,使用FFmpeg視頻音頻轉(zhuǎn)換器和Node.js跨平臺(tái)等技術(shù)實(shí)現(xiàn)移動(dòng)終端設(shè)備在網(wǎng)絡(luò)間歇性連通狀態(tài)下的設(shè)備搜索、配對、屏幕共享等功能。運(yùn)行結(jié)果表明,在所設(shè)定的通信范圍內(nèi)的情況下,該軟件能實(shí)現(xiàn)基本的數(shù)據(jù)共享,性能比較穩(wěn)定。

關(guān)鍵詞: 機(jī)會(huì)網(wǎng)絡(luò); 屏幕共享; 移動(dòng)終端; 間歇式連通; 設(shè)備搜索; 通信范圍

中圖分類號(hào): TN915?34; TP393 ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2019)10?0019?04

Method of implementing mobile terminal screen sharing in opportunistic networks

WANG Qiaoli1, ZHANG Zhenyu1,2, LIU Hui2, WU Xiaohong2

(1. College of Information Science and Engineering, Xinjiang University, Urumqi 830046, China;

2. College of Software, Xinjiang University, Urumqi 830008, China)

Abstract: In allusion to the problem that the traditional screen sharing environment cannot meet people′s needs, a screen sharing software based on opportunistic networks is designed and implemented by using the opportunistic network′s feature that node communication can be realized in the intermittent connection environment. With the software, the searching, matching and screen sharing functions of mobile terminal devices in the network intermittent connection state are realized in the opportunistic network scenario on the basis of the spring?boot framework by using the FFmpeg video?audio converter and Node.js cross?platform technology. The operation results show that the software can realize basic data sharing, and has a relatively?stable performance in the situation of preset communication range.

Keywords: opportunistic network; screen sharing; mobile terminal; intermittent connection; device searching; communication range

在容忍延遲網(wǎng)絡(luò)與無線自組網(wǎng)的研究推動(dòng)下,機(jī)會(huì)網(wǎng)絡(luò)的概念逐漸形成且具有重要的意義[1] 。機(jī)會(huì)網(wǎng)絡(luò)中的節(jié)點(diǎn)不需要有明確的鏈路,通過節(jié)點(diǎn)移動(dòng)性帶來的機(jī)會(huì)聯(lián)系,以“存儲(chǔ)?攜帶?轉(zhuǎn)發(fā)”的方式轉(zhuǎn)發(fā)消息[2]。機(jī)會(huì)網(wǎng)絡(luò)具有更加靈活的組網(wǎng)方式,能夠滿足挑戰(zhàn)環(huán)境下的通信需求,因此在野生動(dòng)物追蹤網(wǎng)絡(luò)[3]、車載網(wǎng)絡(luò)[4]等場景下得到了更好的應(yīng)用。節(jié)點(diǎn)在不同的應(yīng)用場景中移動(dòng)特性各異,因此在設(shè)計(jì)相應(yīng)的數(shù)據(jù)轉(zhuǎn)發(fā)機(jī)制時(shí)必須要符合節(jié)點(diǎn)的實(shí)際移動(dòng)情況。

近年來,利用移動(dòng)終端進(jìn)行數(shù)據(jù)采集和終端之間的內(nèi)容共享已成為用戶最迫切的需求,這樣的背景為機(jī)會(huì)網(wǎng)絡(luò)的應(yīng)用提供了更加廣闊的平臺(tái)[5]。在位置識(shí)別應(yīng)用中,只使用一部手機(jī)會(huì)對噪音比較敏感而且必須隨時(shí)隨地手持設(shè)備。因此文獻(xiàn)[6]中提出SensOrchestra位置識(shí)別協(xié)作感知框架,通過與周圍的手機(jī)形成自組網(wǎng),協(xié)同感知周圍的聲音及圖像等信息,提高了位置識(shí)別的準(zhǔn)確度,也不需要一直手持設(shè)備。在文獻(xiàn)[7]中提出一種媒體服務(wù)框架CoCam,在許多大型的活動(dòng)中(現(xiàn)場演唱會(huì)、體育賽事等),坐在距離較遠(yuǎn)或角度較偏位置的用戶常常會(huì)有較差的視覺體驗(yàn),而CoCam框架使設(shè)備之間形成自組織網(wǎng)絡(luò)同時(shí)利用手機(jī)自帶的拍照或攝像功能,為現(xiàn)場的用戶分發(fā)和共享圖片及視頻內(nèi)容,使用戶能夠得到更好的現(xiàn)場體驗(yàn)。屏幕共享提供了這樣一種環(huán)境,它允許遠(yuǎn)程客戶機(jī)在容錯(cuò)時(shí)間內(nèi)重現(xiàn)屏幕顯示內(nèi)容,從而為遠(yuǎn)程用戶提供虛擬共享接口[8?9]。隨著移動(dòng)設(shè)備的快速發(fā)展,人們的期望也越來越高。針對以上要求,本文利用機(jī)會(huì)網(wǎng)絡(luò),不需要網(wǎng)絡(luò)的完全連通性,適合于移動(dòng)自組網(wǎng)網(wǎng)絡(luò)的實(shí)際需求,設(shè)計(jì)并實(shí)現(xiàn)了一種基于屏幕的數(shù)據(jù)共享軟件。該軟件通過Spring?boot框架、FFmpeg視頻音頻轉(zhuǎn)換器、Node.js跨平臺(tái)等技術(shù)實(shí)現(xiàn)了移動(dòng)終端設(shè)備在網(wǎng)絡(luò)間歇性連通狀態(tài)下的設(shè)備搜索、配對、屏幕共享等功能。運(yùn)行結(jié)果表明,借助機(jī)會(huì)網(wǎng)絡(luò)環(huán)境設(shè)定一定的通信范圍的情況下,該軟件能實(shí)現(xiàn)基本的屏幕數(shù)據(jù)共享,并且性能相對穩(wěn)定。

1 ?屏幕共享核心技術(shù)實(shí)現(xiàn)

1.1 ?機(jī)會(huì)網(wǎng)絡(luò)環(huán)境搭建

人類移動(dòng)設(shè)備在機(jī)會(huì)網(wǎng)絡(luò)中的活動(dòng)呈現(xiàn)出地理社區(qū)的特征。有些節(jié)點(diǎn)的活動(dòng)范圍有限,僅限于有限的地理區(qū)域;有些節(jié)點(diǎn)有較大的活動(dòng)范圍,出現(xiàn)在不同的地理區(qū)域。根據(jù)人類移動(dòng)設(shè)備機(jī)會(huì)網(wǎng)絡(luò)中社會(huì)節(jié)點(diǎn)的移動(dòng)特性,給出以下網(wǎng)絡(luò)環(huán)境假設(shè):

1) 在給定范圍內(nèi)加入的移動(dòng)終端設(shè)備都可以不設(shè)限的搜索到;

2) 在給定范圍內(nèi)加入的移動(dòng)終端設(shè)備都主動(dòng)進(jìn)行屏幕的共享;

3) 任何移動(dòng)終端的離開都不影響整個(gè)環(huán)境中的其他設(shè)備;

4) 設(shè)定一個(gè)主動(dòng)搜索終端,假設(shè)為中繼終端。

1.2 ?Spring?boot框架

自2002年發(fā)布Spring[10]框架以來,它已經(jīng)成為企業(yè)應(yīng)用和開發(fā)領(lǐng)域中一個(gè)非常流行的基礎(chǔ)框架。許多企業(yè)應(yīng)用Spring框架開發(fā)和設(shè)計(jì)軟件以滿足特定的需求。Spring框架包含數(shù)十個(gè)不同的子項(xiàng)目,涵蓋不同方面的應(yīng)用開發(fā)。Spring框架包含了大量的子項(xiàng)目,這些子項(xiàng)目都有各自的優(yōu)點(diǎn)和缺點(diǎn)。其優(yōu)點(diǎn)是開發(fā)人員使用方便,缺點(diǎn)是存在很多使用問題。例如,每個(gè)子項(xiàng)目都有一定的學(xué)習(xí)曲線,開發(fā)人員需要知道這些子項(xiàng)目和組件的細(xì)節(jié),并知道如何將這些子項(xiàng)目變成一個(gè)完整的解決方案,但沒有關(guān)于如何使用這些組件的知道,也沒有提供相關(guān)的最佳實(shí)踐。不僅如此,對于使用Spring框架的新手開發(fā)人員來說,他們不知道如何更好地使用這些組件。Spring框架的另一個(gè)常見問題是,快速創(chuàng)建一個(gè)能夠運(yùn)行出來的應(yīng)用是非常麻煩的。Spring?boot是一個(gè)基于Spring框架的新子項(xiàng)目,它開發(fā)于2013年,并在2014年4月發(fā)布1.0.0版本。Spring?boot相對Spring具有很多優(yōu)點(diǎn)。例如,它可以自動(dòng)配置Spring的各種組件,并且不依賴代碼生成和XML配置文件;它為常見場景提供了建議的組件配置,大大提高了使用Spring框架時(shí)的開發(fā)效率。本文使用的Spring?boot框架主要是由于它的以下特性:

1) 能夠創(chuàng)建一個(gè)可以獨(dú)立運(yùn)行的Spring應(yīng)用程序;

2) 直接嵌入Tomcat或Jetty服務(wù)器,不需要部署WAR文件;

3) 提供推薦的基礎(chǔ)POM文件簡化Apache Maven配置;

4) 盡可能地根據(jù)項(xiàng)目依賴來自動(dòng)配置Spring框架;

5) 提供可以直接用于生產(chǎn)環(huán)境的功能,如性能指標(biāo)、應(yīng)用信息及健康檢查;

6) 無代碼生成,也沒有XML配置文件。

1.3 ?FFmpeg技術(shù)實(shí)現(xiàn)

FFmpeg[12?13]是一個(gè)快速的視頻音頻轉(zhuǎn)換器,它可以捕獲現(xiàn)場音頻/視頻源,包括任何采樣率、尺寸調(diào)整之間的視頻,并能提供各種高質(zhì)量的濾鏡系統(tǒng)。FFmpeg能夠從任意數(shù)量形式的輸入文件中進(jìn)行讀?。ㄈ缙胀ㄎ募⒐艿?、網(wǎng)絡(luò)流、設(shè)備來源等),通過設(shè)置輸入文件選項(xiàng)的標(biāo)志?i進(jìn)行標(biāo)記,并寫入到任意數(shù)量/形式的輸出文件中,在命令行中若字符串不能被解釋為任何一種選項(xiàng),則將其作為一個(gè)輸出文件。原則上,每個(gè)輸入或輸出文件都可以包含不同數(shù)量的數(shù)據(jù)流。特定文檔中數(shù)據(jù)的數(shù)量和類型,這些都是由特定選擇定義的容器格式?jīng)Q定,從輸入文件溜向輸出文件可以是自動(dòng)進(jìn)行的,也可以基于?map選項(xiàng)來指定。

1.4 ?Node.js跨平臺(tái)實(shí)現(xiàn)

Node.js[14]采用Google V8運(yùn)行,使用事件驅(qū)動(dòng)、非阻塞、異步輸入/輸出等技術(shù)來提高工作性能,可以優(yōu)化傳輸量和規(guī)范。Node.js大部分基本模塊都是用JavaScript編寫, JavaScript作為瀏覽器程序設(shè)計(jì)語言使之可以運(yùn)行在用戶的瀏覽器上。Node.js的事件驅(qū)動(dòng)和異步編程是為網(wǎng)絡(luò)服務(wù)編程而設(shè)計(jì)的,除此以外Node.js的非阻塞模式輸入/輸出處理能夠在低系統(tǒng)資源消耗下呈現(xiàn)出高性能與出眾的負(fù)載能力,非常適用于輸入/輸出資源的中間層服務(wù)[15]。在數(shù)據(jù)密集型分布式部署環(huán)境下,可以為實(shí)時(shí)應(yīng)用系統(tǒng)的實(shí)現(xiàn)提供解決方案。服務(wù)器端的處理可以降低網(wǎng)絡(luò)流量。

1.5 ?系統(tǒng)實(shí)現(xiàn)框架和流程

機(jī)會(huì)網(wǎng)絡(luò)環(huán)境下的屏幕共享軟件的具體實(shí)現(xiàn)步驟如下:

1) 設(shè)定一定的通信范圍,初步設(shè)定為在同一個(gè)IP通信段,當(dāng)移動(dòng)終端設(shè)備攜帶數(shù)據(jù)進(jìn)入設(shè)定的通信段時(shí),中繼終端將進(jìn)行間歇性的搜索操作;

2) 中繼終端設(shè)備將搜索到的其他設(shè)備對IP地址進(jìn)行排序;

3) 進(jìn)行屏幕共享的匹配操作;

4) 當(dāng)匹配完成則進(jìn)行屏幕的共享,中繼設(shè)備總要間歇性的進(jìn)行搜索,更新緩存中的IP地址。

整個(gè)平臺(tái)運(yùn)行需要服務(wù)器、手機(jī)客戶端A和手機(jī)客戶端B。A,B手機(jī)通過WiFi連接服務(wù)器之后開始共享屏幕以及接收并顯示共享者共享的內(nèi)容。整個(gè)過程是通過視頻流數(shù)據(jù)發(fā)送形式實(shí)時(shí)實(shí)現(xiàn)的,屏幕共享系統(tǒng)的總體設(shè)計(jì)框架如圖1所示。

圖1 ?屏幕共享系統(tǒng)總體設(shè)計(jì)框架

屏幕共享的獲取首先需要?jiǎng)?chuàng)建Virtual Display,只需通過Media Projection Manager獲取Media Projection,然后通過Media Projection創(chuàng)建Virtual Display獲取當(dāng)前屏幕的視頻流,如圖2所示。

圖2 ?屏幕共享屏幕獲取原理

基于FFmpeg的推流器來實(shí)現(xiàn)視頻幀數(shù)據(jù)的推流流程,推流器的作用是將本地的視頻數(shù)據(jù)推送至服務(wù)器,視頻幀數(shù)據(jù)通過RMTP協(xié)議以直播流的形式推送出去,如圖3所示。

圖3 ?屏幕共享數(shù)據(jù)流獲取原理

2 ?系統(tǒng)運(yùn)行

2.1 ?機(jī)會(huì)網(wǎng)絡(luò)環(huán)境參數(shù)設(shè)置

本文通過機(jī)會(huì)網(wǎng)絡(luò)中數(shù)據(jù)的“存儲(chǔ)?攜帶?轉(zhuǎn)發(fā)”模式對加入的移動(dòng)設(shè)備進(jìn)行屏幕的共享操作,由于機(jī)會(huì)網(wǎng)絡(luò)是利用短距離無線通信技術(shù)(如藍(lán)牙、WiFi等)實(shí)現(xiàn)數(shù)據(jù)交互,因此需要設(shè)置一定的限制參數(shù),如表1所示。

表1 ?參數(shù)設(shè)置

2.2 ?運(yùn)行結(jié)果分析

實(shí)現(xiàn)機(jī)會(huì)網(wǎng)絡(luò)環(huán)境下的屏幕共享功能需要服務(wù)器端模塊和客戶端模塊協(xié)同工作。在Android系統(tǒng)中,每個(gè)模塊都來自不同層次的分布,用戶接口模塊、屏幕信息獲取模塊、顯示模塊、服務(wù)器處理線程、客戶端處理線程都是位于應(yīng)用程序框架層的;編碼模塊和解碼模塊屬于底層的運(yùn)行時(shí)庫。服務(wù)器端和客戶端都圍繞用戶接口模塊完成各自的功能,具體的運(yùn)行結(jié)果見圖4~圖8。

圖4 ?屏幕共享啟動(dòng)程序

圖5 ?移動(dòng)終端搜索功能

圖6 ?移動(dòng)終端配對成功

通過運(yùn)行結(jié)果顯示,當(dāng)中繼設(shè)備間歇性地搜索完成后,選擇需要的移動(dòng)終端進(jìn)行配對并實(shí)現(xiàn)最終的屏幕共享,完成數(shù)據(jù)的共享操作,其中對中繼設(shè)備的間歇性搜索可以降低整個(gè)網(wǎng)絡(luò)的開銷。

圖7 ?屏幕共享顯示成功

圖8 ?移動(dòng)終端顯示結(jié)束

3 ?結(jié) ?語

本文通過在機(jī)會(huì)網(wǎng)絡(luò)環(huán)境下,設(shè)定一定的通信范圍,通過Spring?boot框架、FFmpeg視頻音頻轉(zhuǎn)換器、Node.js跨平臺(tái)等技術(shù)實(shí)現(xiàn)一種基于屏幕的數(shù)據(jù)共享軟件。該軟件在機(jī)會(huì)網(wǎng)絡(luò)的場景中,實(shí)現(xiàn)網(wǎng)絡(luò)間歇性連通狀態(tài)下的設(shè)備搜索、配對、屏幕共享等功能。運(yùn)行結(jié)果表明,該軟件能實(shí)現(xiàn)基本的屏幕共享功能,并且性能相對穩(wěn)定。在下一步的研究中,將考慮完全不借助于網(wǎng)絡(luò)連接僅僅通過手機(jī)的ID號(hào)進(jìn)行屏幕的共享。

參考文獻(xiàn)

[1] XIONG Y P, SUN L M, NIU J W, et al. Opportunistic networks [J]. Journal of software, 2009, 20(1): 124?137.

[2] FALL K. A delay?tolerant network architecture for challenged internets [C]// Proceedings of the Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications. Karlsruhe: ACM, 2003: 27?34.

[3] EHSAN S, BRUGGER M, BRADFORD K, et al. Sufficient node density conditions on delay?tolerant sensor networks for wildlife tracking and monitoring [C]// Proceedings of the IEEE Global Telecommunications Conference. Kathmandu: IEEE, 2011: 1?6.

[4] ACER U G, GIACCONE P, HAY D, et al. Timely data delivery in a realistic bus network [J]. IEEE transactions on vehicular technology, 2012, 61(3): 1251?1265.

[5] 馬華東,袁培燕,趙東.移動(dòng)機(jī)會(huì)網(wǎng)絡(luò)路由問題研究進(jìn)展[J].軟件學(xué)報(bào),2015,26(3):600?616.

MA Huadong, YUAN Peiyan, ZHAO Dong. Research progress on routing problem in mobile opportunistic networks [J]. Journal of software, 2015, 26(3): 600?616.

[6] CHENG H T, SUN F T, BUTHPITIYA S, et al. SensOrchestra: collaborative sensing for symbolic location recognition [C]// Proceedings of International Conference on Mobile Computing, Applications, and Services. Berlin: Springer, 2010: 195?210.

[7] TOLEDANO E, SAWADA D, LIPPMAN A, et al. CoCam: a collaborative content sharing framework based on opportunistic P2P networking [C]// Proceedings of IEEE 10th Consumer Communications and Networking Conference. Las Vegas: IEEE, 2013: 158?163.

[8] GUO Dai, YAN Jian, WANG Wenjiang. Design and implementation of new screen sharing system [J]. Application research of computers, 2007, 24(6): 299?301.

[9] SHEN H, LU Y, WU F, et al. Low?cost real?time screen sharing to multiple clients [C]// Proceedings of IEEE International Conference on Multimedia and Expo. Suntec: IEEE, 2010: 980?985.

[10] 計(jì)文柯.Spring技術(shù)內(nèi)幕:深入解析Spring架構(gòu)與設(shè)計(jì)原理[M].北京:機(jī)械工業(yè)出版社,2012.

JI Wenke. Spring technology insider: in?depth analysis of Spring architecture and design principles [M]. Beijing: China Machine Press, 2012.

[11] WOODS D. Spring?Boot [EB/OL]. [2014?05?12]. https://infoq.cn/article/microframeworks1?spring?boot.

[12] AL-KHWARIZMI. FFmpeg 4.1 [EB/OL]. [2018?11?06]. http://ffmpeg.org/.

[13] SURHONE L M, TENNOE M T, HENSSONOW S F, et al. Ffmpeg [M]. [S.l.: s.n.], 2010.

[14] George Ornbo. Node.js入門經(jīng)典[M].傅強(qiáng),宗斌,譯.北京:人民郵電出版社,2013.

ORNBO G. Introductory classic of Node.js [M]. FU Qiang, ZONG Bin, translation. Beijing: Posts & Telecom Press, 2013.

[15] 樸靈.深入淺出Node.js[M].北京:人民郵電出版社,2013.

PU Ling. Easy to understand Node.js [M]. Beijing: Posts & Telecom Press, 2013.

猜你喜歡
移動(dòng)終端
基于移動(dòng)互聯(lián)網(wǎng)開發(fā)人才培養(yǎng)模式的探索
移動(dòng)互聯(lián)網(wǎng)時(shí)代高校營銷專業(yè)教學(xué)面臨的機(jī)遇與挑戰(zhàn)
基于移動(dòng)終端平臺(tái)的編輯學(xué)習(xí)和交流方法
國內(nèi)移動(dòng)數(shù)字出版發(fā)展現(xiàn)狀及對策研究
基于移動(dòng)終端的高校移動(dòng)學(xué)習(xí)體系構(gòu)建研究
移動(dòng)終端云計(jì)算應(yīng)用分析
手機(jī)APP在學(xué)生信息化管理中的應(yīng)用探索
中職學(xué)校學(xué)生管理系統(tǒng)手機(jī)運(yùn)用平臺(tái)的研究
政府辦公區(qū)域無線網(wǎng)絡(luò)覆蓋的設(shè)計(jì)
基于移動(dòng)終端的換物平臺(tái)設(shè)計(jì)與應(yīng)用研究
定南县| 三江| 湖北省| 东兰县| 金湖县| 县级市| 淄博市| 万荣县| 东平县| 同仁县| 无极县| 新昌县| 连城县| 龙门县| 格尔木市| 通州区| 涿鹿县| 伊宁县| 两当县| 行唐县| 邮箱| 嘉峪关市| 从化市| 三明市| 呼和浩特市| 阿城市| 星座| 梁平县| 调兵山市| 苗栗县| 廉江市| 竹北市| 平度市| 绥德县| 东光县| 嘉鱼县| 佛坪县| 右玉县| 阿拉善盟| 景东| 宜良县|