李瑞峰,冀龍濤
(哈爾濱工業(yè)大學(xué) 機(jī)器人技術(shù)與系統(tǒng)國(guó)家重點(diǎn)實(shí)驗(yàn)室,黑龍江 哈爾濱150080)
家用型智能服務(wù)機(jī)器人集成了視覺(jué)、溫濕度和煙霧等傳感器,能夠監(jiān)測(cè)家庭環(huán)境的數(shù)據(jù)。隨著3G網(wǎng)絡(luò)的建設(shè)和智能手機(jī)性能的提升,利用智能手機(jī)對(duì)家用機(jī)器人進(jìn)行遠(yuǎn)程控制,可以隨時(shí)隨地了解家中的狀況,極大地方便了人們的生活。Android系統(tǒng)以其開(kāi)源、可移植等良好的特性受到了普遍歡迎。在利用Android手機(jī)進(jìn)行遠(yuǎn)程控制尤其視頻監(jiān)控方面,國(guó)內(nèi)外進(jìn)行了相關(guān)研究。
文獻(xiàn)[1,2]設(shè)計(jì)的基于Android手機(jī)的遠(yuǎn)程監(jiān)控系統(tǒng)傳送的是連續(xù)圖像而不是視頻流,對(duì)網(wǎng)絡(luò)帶寬要求高。文獻(xiàn)[3,4]在Android平臺(tái)下實(shí)現(xiàn)了本地視頻文件的播放。文獻(xiàn)[5]采用嵌入式Linux系統(tǒng)采集實(shí)時(shí)視頻,移植FFMPEG開(kāi)源編解碼器在Android上實(shí)現(xiàn)了H.264的解碼,但缺少對(duì)前端攝像頭云臺(tái)的控制。文獻(xiàn)[6]針對(duì)專(zhuān)業(yè)監(jiān)控?cái)z像頭開(kāi)發(fā)了實(shí)時(shí)視頻監(jiān)控軟件,可解碼MJPEG、MPEG-4和H.264編碼。文獻(xiàn)[7]將基于Android的移動(dòng)流媒體實(shí)時(shí)傳輸系統(tǒng)分為采集端、服務(wù)器和播放端,視頻流經(jīng)過(guò)兩次網(wǎng)絡(luò)傳輸,延遲較大。文獻(xiàn)[8]采用Android手機(jī)作為視頻采集端,LIVE555作為流媒體服務(wù)器,PC作為播放端,在WIFI下實(shí)現(xiàn)了實(shí)時(shí)視頻監(jiān)控。
本文旨在建立一個(gè)利用Android手機(jī)通過(guò)3G網(wǎng)絡(luò)遠(yuǎn)程控制家用機(jī)器人的完整系統(tǒng),包括遠(yuǎn)程視頻監(jiān)控、遠(yuǎn)程運(yùn)動(dòng)控制和傳感器信息的顯示。
家用機(jī)器人由機(jī)器人本體、控制板 (下位機(jī))和平板電腦 (服務(wù)器)組成,如圖1所示。平板電腦和控制板安裝在機(jī)器人本體上。平板電腦安裝Windows XP系統(tǒng),通過(guò)USB接口連接攝像頭、3G上網(wǎng)卡和USB轉(zhuǎn)RS232串口數(shù)據(jù)線。其中,3G上網(wǎng)卡插入中國(guó)電信UIM卡撥號(hào)接入Internet,攝像頭用于采集視頻,USB轉(zhuǎn)RS232串口線用來(lái)實(shí)現(xiàn)平板電腦和控制板之間的通信??刂瓢暹B接溫濕度、煙霧等傳感器,采集周?chē)沫h(huán)境信息,并且通過(guò)脈寬調(diào)速(PWM)方式驅(qū)動(dòng)直流電機(jī)運(yùn)動(dòng)。Android手機(jī)打開(kāi)3G數(shù)據(jù)連接后接入Internet,從而和平板電腦利用IP地址通信。
圖1 系統(tǒng)硬件構(gòu)成
系統(tǒng)采用客戶(hù)端/服務(wù)器 (C/S)結(jié)構(gòu),服務(wù)器處于一直運(yùn)行狀態(tài),等待客戶(hù)端訪問(wèn)。中國(guó)電信3G撥號(hào)后得到公網(wǎng)IP,但每次撥號(hào)獲取的IP地址是動(dòng)態(tài)的,客戶(hù)端連接服務(wù)器前需獲知對(duì)方IP地址,造成極大的不便??梢酝ㄟ^(guò)向花生殼、金萬(wàn)維等域名解析服務(wù)商注冊(cè),獲得一個(gè)免費(fèi)域名,并綁定到服務(wù)器的IP地址上,Android手機(jī)通過(guò)域名對(duì)平板電腦進(jìn)行訪問(wèn)。
整個(gè)遠(yuǎn)程控制系統(tǒng)由服務(wù)器、客戶(hù)端和下位機(jī)組成,各部分具體功能如下:
服務(wù)器:采集攝像頭視頻,進(jìn)行編碼和流化,同客戶(hù)端和下位機(jī)通信。
客戶(hù)端:顯示實(shí)時(shí)視頻和下位機(jī)傳感器信息,并發(fā)送運(yùn)動(dòng)指令控制機(jī)器人運(yùn)動(dòng)。
下位機(jī):實(shí)現(xiàn)路徑規(guī)劃、自主避障等功能,接收服務(wù)器發(fā)送的運(yùn)動(dòng)控制指令,并向服務(wù)器發(fā)送溫濕度等傳感器數(shù)據(jù)。
在本系統(tǒng)中,服務(wù)器和客戶(hù)端傳遞的數(shù)據(jù)有3種,視頻流、運(yùn)動(dòng)控制指令和傳感器信息。其中視頻由于數(shù)據(jù)量大成為重點(diǎn)研究對(duì)象。流媒體是指在網(wǎng)絡(luò)中使用流式傳輸技術(shù)的連續(xù)時(shí)基媒體,不必等到整個(gè)文件下載完畢,僅需把起始幾秒的數(shù)據(jù)下載到本地緩存中就可以開(kāi)始播放[6],適合用于實(shí)時(shí)視頻監(jiān)控。
實(shí)現(xiàn)流式傳輸,需要合適的傳輸協(xié)議,在傳輸層主要涉及TCP和UDP協(xié)議,在應(yīng)用層主要涉及RTP、RTCP和RTSP協(xié)議。TCP協(xié)議是面向連接的協(xié)議,可靠性高,但確認(rèn)和重傳機(jī)制使得傳輸延時(shí)大。UDP協(xié)議是無(wú)連接的協(xié)議,消耗資源少,適合傳輸大量數(shù)據(jù)。RTP協(xié)議定義了RTP報(bào)文和RTCP報(bào)文,用于傳輸音視頻等實(shí)時(shí)數(shù)據(jù)。RTSP協(xié)議[9]作為實(shí)時(shí)流媒體傳輸中的控制協(xié)議,負(fù)責(zé)控制實(shí)時(shí)數(shù)據(jù)包的發(fā)送。本系統(tǒng)將采用TCP協(xié)議傳輸運(yùn)動(dòng)控制指令和傳感器數(shù)據(jù),采用RTP/UDP協(xié)議傳輸視頻數(shù)據(jù)。流媒體技術(shù)涉及的協(xié)議的層次結(jié)構(gòu)如圖2所示。
圖2 流媒體協(xié)議棧
流媒體在傳輸前必須經(jīng)過(guò)編碼,以減少數(shù)據(jù)量,增強(qiáng)實(shí)時(shí)性。目前應(yīng)用較多的視頻編碼算法是H.263、MPEG-4和H.264/AVC[10]。本文設(shè)計(jì)的家用機(jī)器人遠(yuǎn)程控制系統(tǒng),視頻的采集和編碼在安裝Windows XP系統(tǒng)的平板電腦進(jìn)行,視頻的解碼和顯示在Android手機(jī)上進(jìn)行。由于Android手機(jī)硬件性能的差異,視頻解碼能力不同,因此系統(tǒng)將采用H.263、MPEG-4和H.264/AVC這3種編碼方案,根據(jù)實(shí)際情況進(jìn)行調(diào)整以提高程序的通用性。
VLC media player是一款自由開(kāi)源的跨平臺(tái)多媒體播放器及框架,最初作為VideoLAN的客戶(hù)端,后來(lái)合并了VideoLAN服務(wù)器的功能,可播放大多數(shù)多媒體文件,以及各種流媒體協(xié)議,可以在包括 Windows、Linux、Mac OS X、Unix、Android在內(nèi)的多種平臺(tái)上運(yùn)行[11]。VLC作為流媒體服務(wù)器時(shí),可以流化攝像頭采集的實(shí)時(shí)視頻和存儲(chǔ)介質(zhì)上的視頻文件,并轉(zhuǎn)碼成多種視頻格式,然后輸出HTTP、RTSP、RTP、UDP等多種視頻流到Internet上[12]。LibVLC是VLC多媒體框架的核心引擎和接口庫(kù),開(kāi)發(fā)者可以利用LibVLC創(chuàng)建各種多媒體程序,實(shí)現(xiàn)音視頻的獲取、編碼、流化等功能。LibVLC是一個(gè)C函數(shù)庫(kù),可以和多種編程語(yǔ)言混合編程,比如C++、Python、Java等[13]。
由于Android手機(jī)硬件性能的差異,支持硬件解碼的視頻編碼種類(lèi)不同,為了保證程序的通用性,需要編寫(xiě)解碼程序?qū)崿F(xiàn)視頻流的軟件解碼。Android是利用Java作為編程語(yǔ)言設(shè)計(jì)程序的,而視頻解碼一般都是用高效率的C語(yǔ)言編寫(xiě)的,因此需要使用Android系統(tǒng)的Java本地接口(JNI)技術(shù)在Java中調(diào)用C/C++程序,實(shí)現(xiàn)視頻流的接收、解碼和顯示。
系統(tǒng)工作流程如圖3所示。平板電腦通過(guò)3G上網(wǎng)卡撥號(hào)連接Internet,打開(kāi)域名解析軟件,將域名指向IP地址,然后打開(kāi)服務(wù)器程序,設(shè)定視頻幀率、分辨率及串口端口、波特率等參數(shù),開(kāi)啟遠(yuǎn)程控制服務(wù),等待Android手機(jī)客戶(hù)端的訪問(wèn)??蛻?hù)端程序打開(kāi)后,輸入服務(wù)器的IP地址或者花生殼等域名解析軟件預(yù)先綁定的域名,然后登陸連接到服務(wù)器,獲取服務(wù)器拍攝的實(shí)時(shí)視頻和下位機(jī)發(fā)送的溫濕度等傳感信息顯示在手機(jī)屏幕上,并且通過(guò)按鈕發(fā)送指令遠(yuǎn)程控制機(jī)器人運(yùn)動(dòng)??蛻?hù)端下線后,服務(wù)器關(guān)閉本次連接,重新建立一個(gè)新的連接等待客戶(hù)端的下一次訪問(wèn)。
圖3 系統(tǒng)工作流程
服務(wù)器使用VS2010的MFC編寫(xiě)基于對(duì)話框的程序界面。在MFC中使用VLC的libVLC接口時(shí),首先在Video-LAN官網(wǎng)http://www.videolan.org/上下載 Windows版本的VLC軟件安裝,然后在安裝目錄下產(chǎn)生libvlc.dll、libvlccore.dll動(dòng)態(tài)鏈接庫(kù)文件以及sdk和plugins文件夾。sdk\include和sdk\lib下分別包含了程序編譯時(shí)需要的頭文件和庫(kù)文件。在工程屬性中,需要設(shè)置這兩個(gè)目錄。在對(duì)話框工程的頭文件中需要聲明#inlucde<vlc\vlc.h>,在源程序中需要聲明#pargma comment(lib,"libvlc.lib")和#pargma comment(lib,"libvlccore.lib"),然后可以在程序中調(diào)用libVLC提供的函數(shù)接口實(shí)現(xiàn)所需功能。
對(duì)攝像頭采集的視頻進(jìn)行編碼和流化,首先創(chuàng)建libVLC實(shí)例,然后設(shè)定數(shù)據(jù)源為攝像頭,并從數(shù)據(jù)源創(chuàng)建媒體描述器,繼而設(shè)定轉(zhuǎn)碼參數(shù),從媒體描述器創(chuàng)建媒體播放器,最后啟動(dòng)播放器。在開(kāi)啟流媒體服務(wù)前,可以通過(guò)MFC程序界面自主選擇視頻編碼和幀率??紤]到轉(zhuǎn)碼速率,默認(rèn)對(duì)視頻采用算法復(fù)雜度較低的H.263編碼,設(shè)定幀率為5幀每秒,參數(shù)可以根據(jù)Android手機(jī)的硬件性能和3G網(wǎng)絡(luò)狀況自行更改。由于視頻傳輸?shù)臄?shù)據(jù)量較大,為了保證視頻畫(huà)面的流暢性,采用RTSP/RTP/UDP協(xié)議實(shí)現(xiàn)視頻流的傳輸。利用LibVLC建立流媒體服務(wù)器的過(guò)程如圖4所示。
圖4 建立流媒體服務(wù)器流程
服務(wù)器和客戶(hù)端采用基于TCP協(xié)議的Socket進(jìn)行通信,傳輸運(yùn)動(dòng)控制指令和傳感器信息。服務(wù)器采用C++語(yǔ)言開(kāi)發(fā),客戶(hù)端采用Java語(yǔ)言開(kāi)發(fā),雖然二者實(shí)現(xiàn)Socket通信的API函數(shù)不同,但底層實(shí)現(xiàn)是一樣的。在MFC中新建一個(gè)類(lèi)CMySocket繼承自CSocket類(lèi),利用CSocket類(lèi)封裝的API函數(shù)實(shí)現(xiàn)Socket通信。為該類(lèi)增加一個(gè)指針成員變量,指向?qū)υ捒蝾?lèi),并覆寫(xiě)CSokcet類(lèi)的OnAccept()和OnReceive()函數(shù),將實(shí)現(xiàn)代碼轉(zhuǎn)到對(duì)話框類(lèi)中。對(duì)話框類(lèi)中需添加兩個(gè)CMySocket變量,分別用于監(jiān)聽(tīng)客戶(hù)端連接和收發(fā)數(shù)據(jù)。
服務(wù)器和下位機(jī)之間采用RS232串口通信,在MFC中利用MSComm控件實(shí)現(xiàn)。為了提高程序的靈活性,將端口號(hào)、波特率、數(shù)據(jù)位、停止位、奇偶校驗(yàn)屬性放置在MFC界面中以下拉列表的形式供用戶(hù)選擇,進(jìn)行串口參數(shù)的設(shè)置,其余屬性則在程序中使用預(yù)先設(shè)置的默認(rèn)值。首先進(jìn)行初始化,選擇端口,設(shè)定輸入輸出緩沖區(qū)大小、數(shù)據(jù)讀取方式、觸發(fā)串口事件的緩沖區(qū)字符閾值、設(shè)定波特率和幀格式,然后進(jìn)行通信。為了對(duì)機(jī)器人進(jìn)行運(yùn)動(dòng)控制和傳感器數(shù)據(jù)的采集,服務(wù)端、客戶(hù)端和下位機(jī)需要約定運(yùn)動(dòng)控制指令對(duì)應(yīng)的字符以及傳感器信息的發(fā)送格式。
客戶(hù)端使用Eclipse集成開(kāi)發(fā)環(huán)境和Java語(yǔ)言編寫(xiě),用戶(hù)界面使用XML進(jìn)行布局。Android SDK自帶的Video-View控件本身具有訪問(wèn)RTSP視頻流的功能,但不同的手機(jī)支持的音視頻編碼不同,并且經(jīng)過(guò)測(cè)試,視頻監(jiān)控延遲較大,實(shí)時(shí)性不理想。VLC播放器的Android版本針對(duì)不同的ARM指令集 (ARMv5、ARMv6、ARMv7)進(jìn)行了優(yōu)化,提升了流媒體播放速度。因此,本系統(tǒng)采用VLC開(kāi)源框架實(shí)現(xiàn)RTSP視頻流的接收、解碼和播放。
為了將VLC的流媒體播放功能移植到自己的Android程序中,需要在Linux系統(tǒng)下對(duì)VLC的源代碼進(jìn)行編譯,得到so庫(kù),編譯過(guò)程詳見(jiàn)參考文獻(xiàn)[14]。編譯成功后,在工作目錄下將生成vlc-android的工程。將工程中的assets、jni和libs三個(gè)文件夾以及src.org.video.vlc文件夾下相應(yīng)的Java文件復(fù)制到自己的工程中,然后利用Android的JNI技術(shù)調(diào)用VLC提供的函數(shù)實(shí)現(xiàn)視頻流的解碼和播放。流媒體播放流程如圖5所示。
圖5 流媒體播放流程
客戶(hù)端包含服務(wù)器登陸和遠(yuǎn)程控制兩個(gè)界面,如圖6所示。在登陸界面文本框中輸入服務(wù)器IP地址或預(yù)先在域名解析服務(wù)商注冊(cè)的域名,點(diǎn)擊登陸跳按鈕轉(zhuǎn)至控制界面。從上到下依次為視頻監(jiān)控區(qū)、傳感器信息顯示區(qū)和運(yùn)動(dòng)控制區(qū)。在為運(yùn)動(dòng)控制按鈕增加事件監(jiān)聽(tīng)器時(shí),需要根據(jù)點(diǎn)擊手機(jī)屏幕的事件進(jìn)行判斷,如果是按下事件,則發(fā)送相應(yīng)的運(yùn)動(dòng)控制指令,如果是抬起事件,則發(fā)送停止指令,以此控制機(jī)器人的運(yùn)動(dòng)。
系統(tǒng)在登陸界面成功連接服務(wù)器時(shí)會(huì)建立一個(gè)Socket,然后跳轉(zhuǎn)到控制界面,為了在控制界面中使用Socket,需要將該Socket設(shè)置為全局變量。視頻顯示放在主線程中運(yùn)行,傳感器數(shù)據(jù)接收需要新建子線程運(yùn)行。由于更新UI等操作只能在主線程中進(jìn)行,因此主線程和子線程之間的數(shù)據(jù)傳遞需要使用Handler機(jī)制。在子線程中接收數(shù)據(jù),并將數(shù)據(jù)封裝成消息,發(fā)送給主線程,主線程中收到消息后,進(jìn)行UI的更新操作。
圖6 客戶(hù)端界面
為了保證服務(wù)器程序運(yùn)行時(shí),客戶(hù)端總能連接到服務(wù)器,必須保證客戶(hù)端在每次退出后,需要發(fā)送一個(gè)結(jié)束指令給服務(wù)器,告知客戶(hù)端已下線。服務(wù)器接收到結(jié)束指令后,關(guān)閉當(dāng)前套接字,并重新打開(kāi)一個(gè)套接字開(kāi)始重新監(jiān)聽(tīng),等待客戶(hù)端的下一次連接。
下位機(jī)控制板主控芯片為ATmega128,通過(guò)RS232串口和上位機(jī)通訊,通過(guò)PWM驅(qū)動(dòng)12V直流電機(jī),通過(guò)DHT11溫濕度傳感器采集環(huán)境溫濕度數(shù)據(jù),如圖7所示。
圖7 下位機(jī)控制板
下位機(jī)程序使用ICCAVR軟件和C語(yǔ)言編寫(xiě),僅實(shí)現(xiàn)傳感器采集、串口通信和運(yùn)動(dòng)控制功能,路徑規(guī)劃、自主避障等功能不在本文研究范圍內(nèi)。運(yùn)動(dòng)指令的接收和處理操作放到串口中斷中進(jìn)行,當(dāng)串口接收到數(shù)據(jù)后,觸發(fā)中斷,在中斷函數(shù)中判斷運(yùn)動(dòng)控制指令,控制兩個(gè)電機(jī)正反轉(zhuǎn),實(shí)現(xiàn)前進(jìn)、后退、左轉(zhuǎn)和右轉(zhuǎn)動(dòng)作。傳感器數(shù)據(jù)的采集放到定時(shí)中斷中,每隔5s采集一次數(shù)據(jù),發(fā)送給上位機(jī),然后轉(zhuǎn)發(fā)到Android手機(jī)上。
分別在WIFI和3G網(wǎng)絡(luò)下對(duì)系統(tǒng)進(jìn)行了測(cè)試。為了便于調(diào)試,使用帶有兩個(gè)驅(qū)動(dòng)輪和一個(gè)萬(wàn)向輪的簡(jiǎn)易小車(chē)代替機(jī)器人 (不影響最終效果),如圖8所示。平板電腦和Android手機(jī)均采用中國(guó)電信的3G網(wǎng)絡(luò),接入Internet后得到外網(wǎng)IP。測(cè)試使用的Android手機(jī)型號(hào)為三星I699(GALAXY Trend),搭載 Android2.3.6系統(tǒng),CPU 頻率1024MHz,ARMv7指令集,測(cè)試效果見(jiàn)圖9。
圖8 系統(tǒng)實(shí)物
圖9 系統(tǒng)測(cè)試效果
分別在 WIFI和3G網(wǎng)絡(luò)下,針對(duì)H.263和H.264兩種視頻編碼格式以及QCIF (176×144)和CIF(352×288)兩種分辨率,對(duì)數(shù)據(jù)延遲情況進(jìn)行了測(cè)試,其中視頻幀率設(shè)定為5幀/秒,測(cè)試結(jié)果見(jiàn)表1。
從實(shí)驗(yàn)結(jié)果來(lái)看,無(wú)論是WIFI還是3G下,運(yùn)動(dòng)控制指令和傳感器信息延遲時(shí)間都非常短。在WIFI下,H.264比H.263編碼延遲時(shí)間長(zhǎng)很多,這與手機(jī)處理器的性能有關(guān)。H.264編碼節(jié)省了帶寬,但解碼對(duì)硬件性能要求比較高。在3G下,使用H.263編碼可以實(shí)現(xiàn)視頻流暢傳輸,使用H.264格式,在176*144分辨率下可以傳輸,但在352*288分辨率下,由于帶寬和處理器性能的限制,無(wú)法流暢傳輸和解碼顯示。
表1 不同網(wǎng)絡(luò)下數(shù)據(jù)傳輸延遲情況
本文利用開(kāi)源VLC框架實(shí)現(xiàn)了基于3G網(wǎng)絡(luò)的從Windows平板電腦到Android手機(jī)的實(shí)時(shí)視頻流傳輸。同移植FFMPEG解碼庫(kù)相比,采用VLC框架相對(duì)簡(jiǎn)便,開(kāi)發(fā)周期短,易于擴(kuò)展,并且VLC提供的函數(shù)接口可以在多種平臺(tái)上使用。利用基于TCP協(xié)議的Socket實(shí)現(xiàn)了服務(wù)器與客戶(hù)端之間的通信。利用RS232串口實(shí)現(xiàn)了服務(wù)器同下位機(jī)的通信。該系統(tǒng)省去了一般的遠(yuǎn)程控制系統(tǒng)中轉(zhuǎn)發(fā)服務(wù)器的環(huán)節(jié),實(shí)現(xiàn)了端到端的直接傳輸,增強(qiáng)了實(shí)時(shí)性,適合用于家用機(jī)器人的遠(yuǎn)程控制。
[1]XIONG Guanghui.Design and realization of remote video surveillance base on android phone[D].Chengdu:University of E-lectronic Science and Technology of China,2012 (in Chinese).[熊光輝.基于Android平臺(tái)手機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.]
[2]Kumar S.Development and research implementation of remote object monitoring through video streaming based on android mobile[J].International Journal of Internet Computing,2011(2):61-65.
[3]LI Gang.Designing and implementation of streaming media player client of smart phone based on android platform[D].Nanjing:Nanjing University of Posts and Telecommunications,2012(in Chinese).[李剛.基于Android平臺(tái)的智能手機(jī)流媒體播放器的研究及實(shí)現(xiàn)[D].南京:南京郵電大學(xué),2012.]
[4]WANG Hongxia.Design and implementation of real-time moni-toring client based on Android and H.264[D].Harbin:Harbin Institute of Technology,2011 (in Chinese).[王紅霞.基于Android和H.264的實(shí)時(shí)監(jiān)控客戶(hù)端的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2011.]
[5]GAO Yu.Research of intelligent medical monitoring system based on ARM and Android platform[D].Taiyuan:Taiyuan University of Technology,2012 (in Chinese).[高 宇.基 于ARM和Android平臺(tái)的智能醫(yī)療監(jiān)控系統(tǒng)的研究[D].太原:太原理工大學(xué),2012.]
[6]WU Jing.Application software design for webcam monitor system in android mobile platform[D].Shanghai:Shanghai Jiaotong University,2012 (in Chinese).[吳晶.Android手機(jī)端遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué)軟件學(xué)院,2012.]
[7]YANG Guangping.Design and implementation of mobile streaming media real-time transmission system base on Android[D].Xi'an:Xi'an Jiaotong University,2012 (in Chinese).[楊光平.基于Android的移動(dòng)流媒體實(shí)時(shí)傳輸系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012.]
[8]Vun N,Ooi Y H.Implementation of an Android phone based video streamer[C]//Green Computing and Communications IEEE/ACM Int'l Conference on & Int'l Conference on Cyber,Physical and Social Computing,2010:912-915.
[9]DENG Rui.Research and implementation of video surveillance based on Android[D].Xi'an:Xidian University,2011 (in Chinese).[鄧蕊.基于Android的視頻監(jiān)控的研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2012.]
[10]CHANG Zhipei.Design and implementation of video monitoring system based on Android smart phone[D].Dalian:Dalian Maritime University,2011 (in Chinese).[常志沛.基于Android的智能手機(jī)視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].大連:大連海事大學(xué),2011.]
[11]VideoLAN.VideoLAN-VLC:Official site-free multimedia solutions for all OS![EB/OL].[2013-04-02].http://www.videolan.org.
[12]Kurze A,Knauf R.A scalable open source framework for live media production and distribution[C]//14th ITG Conference on Electronic Media Technology,2011:1-4.
[13]VideoLAN.LibVLC-VideoLAN Wiki[EB/OL].[2013-04-02].http://wiki.videolan.org/Libvlc.
[14]VideoLAN.AndroidCompile-VideoLAN Wiki[EB/OL].[2013-04-02].http://wiki.videolan.org/AndroidCompile.