• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Linux與Android系統(tǒng)有線同屏技術(shù)的實(shí)現(xiàn)研究

    2019-09-10 07:22:44羅玉萍王振皆王瑩
    現(xiàn)代信息科技 2019年15期
    關(guān)鍵詞:視頻流

    羅玉萍 王振皆 王瑩

    摘? 要:在物聯(lián)網(wǎng)與消費(fèi)電子急速發(fā)展的過程中,越來越多的同屏器出現(xiàn)在我們的視野中。本文研究的是基于Linux系統(tǒng)的同屏器是如何通過USB數(shù)據(jù)線獲取Android系統(tǒng)的視頻流,從而實(shí)現(xiàn)同步播放的功能,并對其中涉及到的screenrecord截屏技術(shù)、ADB技術(shù)、libusb技術(shù)、alsa聲卡技術(shù)、AOA技術(shù)進(jìn)行探究。

    關(guān)鍵詞:消費(fèi)電子;同屏器;視頻流

    中圖分類號:TP316? ? ? 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2019)15-0015-03

    Research on the Implementation of Wired and Same Screen Technology in

    Linux and Android Systems

    LUO Yuping,WANG Zhenjie,WANG Ying

    (Guangzhou Hangxin Aviation Technology Co.,Ltd.,Guangzhou? 510663,China)

    Abstract:In the rapid development of IoT and consumer electronics,more and more simultaneous screen appear in our field of vision. This paper studies how the simultaneous screen based on Linux system obtains the video stream of Android system through USB data cable,so as to realize the function of synchronous playback,and explores the screenrecord screenshot technology,ADB technology,libusb technology,alsa sound card technology and AOA technology involved in it.

    Keywords:consumer electronics;simultaneous screen;video stream

    0? 引? 言

    近年來,隨著智能手機(jī)的爆炸式增長,無線同屏技術(shù)也緊跟其后。目前基本上所有新版的Android手機(jī)系統(tǒng)都自有DLNA、Miracast同屏協(xié)議,蘋果手機(jī)自有AirPlay協(xié)議。作為一項(xiàng)新一代的無線同屏技術(shù),無疑對Wi-Fi的帶寬和穩(wěn)定性都有極大的要求,并且其成本較高,于是在市場的推動下,USB有線同屏技術(shù)應(yīng)運(yùn)而生,從而解決了無線同屏過程中存在的弊端。由于成本較低,操作簡單,后續(xù)發(fā)展過程中有線同屏器也廣受消費(fèi)者的青睞。

    1? 基于Linux系統(tǒng)的有線同屏器介紹

    1.1? USB有線同屏器的概念

    同屏器就是把手機(jī)、平板和電腦上的圖片、視頻、音樂等推送到顯示屏(電視機(jī)、投影儀等)上播放,實(shí)現(xiàn)小屏到大屏的一個過程。簡單來說,同屏器就是手機(jī)、平板端投影到大屏幕的轉(zhuǎn)換設(shè)備,相當(dāng)于一塊“放大鏡”,無論在家庭、教育、會議上應(yīng)用都是非常廣泛的。在家里,只需要一根數(shù)據(jù)線,就可以將手機(jī)的內(nèi)容分享到電視上,家人一起觀看,其樂融融;在課堂上,老師可以將課件推送到大屏幕上,實(shí)現(xiàn)課件的分享,有效地提高上課效率;在會議上也一樣,甚至可以投成多分屏,實(shí)現(xiàn)多個內(nèi)容同時分享,簡單方便。

    1.2? USB有線同屏器的實(shí)現(xiàn)框架

    USB同屏操作簡單,即插即用,成本低、幾乎實(shí)現(xiàn)零延時。USB有線同屏器實(shí)現(xiàn)同屏過程需以下設(shè)備:Android設(shè)備、USB設(shè)備、Linux設(shè)備(同屏器)、顯示設(shè)備。Android設(shè)備與Linux設(shè)備通過USB數(shù)據(jù)線連接,最后輸送到顯示設(shè)備顯示,如圖1所示。其中,Android與Linux設(shè)備之間要解決視頻流問題需要解決五大技術(shù)問題:screenrecord技術(shù)、ADB技術(shù)、libusb技術(shù)、alsa聲卡驅(qū)動技術(shù)、AOA技術(shù)。

    對于大部分開發(fā)者來說,之前都有屬于自己的一套比較成熟的代碼框架,然后再在其基礎(chǔ)上添加所需模塊,這樣開發(fā)速度會極大地縮短。像這個同屏器,如果前期設(shè)備已經(jīng)帶有成熟USB開發(fā)模塊,其他模塊的添加和測試就會相對容易。

    2? USB有線同屏器核心技術(shù)

    2.1? screenrecord截屏技術(shù)

    screenrecord是Android系統(tǒng)的一個shell命令,如何能讓screenrecord在Linux系統(tǒng)上運(yùn)行,是首先必須要解決的問題。這就需要在Ubuntu下對Android源碼進(jìn)行修改、編譯及運(yùn)行。這個工作量也不小,首先是要修改環(huán)境變量,編譯工具鏈,讓這個源碼能正常通過。其實(shí)說到底,就是為了能夠在Linux環(huán)境下使用screenrecord程序,以至達(dá)到錄屏的效果。screenrecord可能會遇到有些設(shè)備可能無法直接錄制,原因是分辨率太高,如果遇到此類問題,請試著指定較低的分辨率。雖然Android是開源的,但是對于Android系統(tǒng)不同品牌商都會對其定制一些內(nèi)容,不是所有的都通用,這個就需要開發(fā)者去手動修改獲取手機(jī)的分辨率。另外一個比較突出的問題就是錄制視頻的時候聲音不會被錄下來,這就是后面講到的必須要用alsa-lib庫將Android聲音做傳輸。

    2.2? ADB技術(shù)

    ADB的全稱是Android Debug Bridge,簡單地來說,它是Android SDK中的一個工具。使用ADB可以直接操作管理Android模擬器或者真實(shí)的Andriod設(shè)備。ADB的主要功能有:(1)在Android設(shè)備上運(yùn)行Shell(命令行);(2)管理模擬器或設(shè)備的端口映射;(3)在計算機(jī)和設(shè)備之間上傳和下載文件;(4)將電腦上的本地apk軟件安裝至Android模擬器或設(shè)備上。

    ADB在同屏器上的運(yùn)行原理是同屏器端的adb server與手機(jī)端的守護(hù)進(jìn)程adbd建立連接,然后同屏器端的adb client通過adb server轉(zhuǎn)發(fā)命令,ADB接收命令后解析運(yùn)行。

    ADB是一個C/S架構(gòu)的應(yīng)用程序,由三部分組成:(1)運(yùn)行在同屏器端的adb client;(2)運(yùn)行在同屏器端的adb server;(3)運(yùn)行在設(shè)備端的常駐進(jìn)程adb demon。

    對于開發(fā)者來說,一旦完成ADB程序在Linux的移植,就可以用命令去和手機(jī)端建立連接,監(jiān)聽手機(jī)端的數(shù)據(jù)。這個步驟就基本完成了。

    2.3? libusb技術(shù)

    libusb設(shè)計了一系列的外部API為應(yīng)用程序所調(diào)用,通過這些API應(yīng)用程序可以直接操作硬件。從libusb的源代碼可以看出,這些API調(diào)用了內(nèi)核的底層接口,和kernel driver中所用到的函數(shù)所實(shí)現(xiàn)的功能差不多,只是libusb更加接近USB規(guī)范,使得libusb的使用也比開發(fā)內(nèi)核驅(qū)動相對容易的多。總的來說,使用libusb開發(fā)庫可以很方便的與USB通信。在使用這個庫之前需要做幾件事情:(1)libusb的安裝。在ubuntu中使用sudo apt-get isntall libusb*可以快速的安裝,無論什么方法,最后能安裝成功就行;(2)確定供應(yīng)商ID和產(chǎn)品ID,通過這兩個ID可以確定我們的USB設(shè)備使用lsusb命令查看,然后使用libusb-v查看具體信息,這兩個ID經(jīng)常要用到;(3)確定傳輸方式、輸入端點(diǎn)、輸出端點(diǎn)。

    2.4? alsa聲卡驅(qū)動技術(shù)

    alsa是Linux下的一個聲卡驅(qū)動,它是一個完全開放源代碼的音頻驅(qū)動程序集,除了像OSS那樣提供了一組內(nèi)核驅(qū)動程序模塊之外,alsa還專門為簡化應(yīng)用程序的編寫提供了相應(yīng)的函數(shù)庫,與OSS提供的基于ioctl的原始編程接口相比,alsa函數(shù)庫使用起來要更加方便一些。

    alsa的主要特性包括:高效地支持從消費(fèi)類入門級聲卡到專業(yè)級音頻設(shè)備所有類型的音頻接口,完全模塊化的設(shè)計,支持對稱多處理(SMP)和線程安全,對OSS的向后兼容,以及提供了用戶空間的alsa-lib庫來簡化應(yīng)用程序的開發(fā)。

    對于一個應(yīng)用程序開發(fā)者,或者嵌入式應(yīng)用開發(fā)者來說,接觸到主要是alsa-lib編譯出來的庫libasound。alsa在移植過程中難點(diǎn)是要結(jié)合自身設(shè)備的USB Audio Driver去修改,一旦完成,將會事半功倍。

    2.5? AOA技術(shù)

    在同屏器中Android與USB的通信方式是基于AOA協(xié)議實(shí)現(xiàn)的,這種方式也稱為配件模式。此模式下,與Android終端通信的另一端設(shè)備稱為Android配件。在USB通信中,Android終端充當(dāng)USB從機(jī),Android配件(即同屏器)充當(dāng)USB主機(jī)。

    在同屏器中運(yùn)用到AOA協(xié)議的其一功能:音頻是否支持從配件輸出,即從Android設(shè)備輸出到同屏器。所以開發(fā)者只需要根據(jù)協(xié)議內(nèi)容去判斷Android手機(jī)的聲音是否支持從同屏器輸出即可。

    3? 解決同步技術(shù)策略

    3.1? 同屏過程解決卡頓丟幀對策

    當(dāng)我們按著框架流程走的時候,我們會發(fā)現(xiàn)總會存在這樣或者那樣的問題,而這個同屏器在實(shí)現(xiàn)過程中,比較常見的問題是視頻卡頓。而導(dǎo)致視頻卡頓的原因大致有以下三種:(1)軟件編碼和壓縮算法不先進(jìn);(2)硬件性能不夠,導(dǎo)致無法快速處理數(shù)據(jù)流;(3)數(shù)據(jù)傳輸環(huán)境影響。

    解決方案:(1)現(xiàn)在基本上都是用H.264協(xié)議進(jìn)行編解碼,使用H.264協(xié)議對編解碼算法要求相對較高,對視頻的損傷也較大。如果要追求流暢度,則勢必要犧牲畫質(zhì)的清晰度,提高壓縮比,從而導(dǎo)致傳輸數(shù)據(jù)量增大,引起卡頓。所以開發(fā)者必須清楚的計算,把清晰度保持在合理范圍,而且也能保證流暢度;(2)硬件性能不夠這個是硬性條件,一般在前期規(guī)劃的時候就已經(jīng)研究好了,出現(xiàn)這種情況的機(jī)會相對較小。其實(shí)硬件條件就是性能和成本之間的衡量;(3)數(shù)據(jù)傳輸環(huán)境的影響是最大的,也是比較主觀的一方面。因使用的USB 2.0傳輸協(xié)議,傳輸速率基本上已經(jīng)極高了,性能也穩(wěn)定。對不同開發(fā)者來說,如何調(diào)整視頻流的質(zhì)量和速率,這是體現(xiàn)技術(shù)能力的關(guān)鍵一步,只有協(xié)調(diào)好才能達(dá)到最佳效果。

    3.2? 同屏過程縮短latency對策

    同屏最佳效果就是要達(dá)到手機(jī)屏幕和輸出的大屏幕實(shí)現(xiàn)零延時,這樣消費(fèi)者無論是觀看影片或者是玩游戲,都能有最佳的體驗(yàn)。在所有硬件條件都滿足的情況下,可嘗試改善latency的方法有以下幾種:(1)在不超限的情況下,提高CPU或者DDR的頻率,即提高CPU處理能力;(2)試著降低分辨率,即減少要處理的數(shù)據(jù)量;(3)加大視頻流的傳輸速率,縮短延時,比如設(shè)置的默認(rèn)是3M/s,可以提高至6M/s試試。

    當(dāng)然,不是所有的方法都是一蹴而就的,而是需要開發(fā)者不斷去嘗試,找到一個最佳值。latency為500ms,當(dāng)你在玩游戲的時候就會發(fā)現(xiàn)有些不同步了,一旦降到5ms,基本上無任何阻礙的感覺,順暢無比。

    4? 結(jié)? 論

    本文是對基于Linux系統(tǒng)的USB有線同屏技術(shù)在Android設(shè)備運(yùn)用的講述,包括其功能展示,實(shí)現(xiàn)原理,流程框圖,模塊的組成,知識點(diǎn)的整合,重點(diǎn)難點(diǎn)及解決方法。雖然同屏器涉及到的技術(shù)點(diǎn)不是特別多,但是真正做到穩(wěn)定性好、性能強(qiáng)大很難。同屏器目前的市場很大,很多項(xiàng)目管理者都是急匆匆的完成其功能,并沒有對其進(jìn)行深一步的優(yōu)化,所以出現(xiàn)的問題也很多。希望管理者在部署、規(guī)劃項(xiàng)目時,能多關(guān)注細(xì)節(jié)問題,從用戶的角度出發(fā),解決存在的問題,使用戶的體驗(yàn)更好。

    參考文獻(xiàn):

    [1] 邊海龍,賈少華.USB 2.0設(shè)備的設(shè)計與開發(fā) [M].北京:人民郵電出版社,2004.

    [2] 工業(yè)和信息化部人才交流中心,恩智浦(中國)管理有限公司.微控制器USB的信號和協(xié)議實(shí)現(xiàn) [M].北京:電子工業(yè)出版社,2018.

    [3] 張大偉.深入理解Android 卷Ⅲ [M].北京:機(jī)械工業(yè)出版社,2015.

    作者簡介:羅玉萍(1988.06-),女,漢族,廣東湛江人,嵌入式軟件工程師,工學(xué)學(xué)士,研究方向:信息工程。

    猜你喜歡
    視頻流
    邊緣實(shí)時視頻流分析系統(tǒng)配置動態(tài)調(diào)整算法研究
    車載360高清環(huán)視系統(tǒng)故障分析模型
    時代汽車(2022年11期)2022-06-24 15:16:43
    基于視頻流傳輸中的擁塞控制研究
    疫情防控期間高校在線教學(xué)直播平臺建設(shè)研究*
    Gaming@Edge:基于邊緣節(jié)點(diǎn)的低延遲云游戲系統(tǒng)
    視頻流中的人臉識別系統(tǒng)應(yīng)用開發(fā)
    基于OpenCV人臉檢測技術(shù)的研究及實(shí)現(xiàn)
    基于人臉區(qū)域特征相關(guān)性的視頻流人臉識別研究
    美國視頻流市場首現(xiàn)飽和征兆
    基于視頻流的智能交通節(jié)點(diǎn)
    新媒體研究(2014年6期)2014-06-18 15:34:09
    易门县| 清远市| 门源| 涞源县| 赤城县| 嘉禾县| 昌宁县| 南充市| 石泉县| 舒兰市| 屏南县| 杭州市| 沙湾县| 墨玉县| 玉树县| 西吉县| 湟中县| 灵武市| 吉木萨尔县| 肇州县| 射阳县| 宁海县| 曲周县| 金昌市| 惠东县| 青岛市| 吴桥县| 贵溪市| 固安县| 泉州市| 成安县| 枣庄市| 肥乡县| 肇州县| 湖南省| 五原县| 会泽县| 兴和县| 宁乡县| 五家渠市| 闵行区|