李 峰
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
基于動態(tài)域名解析的門鈴響應(yīng)監(jiān)控系統(tǒng)的設(shè)計
李 峰
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
實現(xiàn)用手機端播放家庭門口攝像頭所采集的視頻從而查看當(dāng)前來訪客人的功能。門鈴和安裝在門口的攝像頭共同連接于ARM控制器。如果門鈴被按下,并在一段時間內(nèi)門沒有打開,則啟動攝像頭,采集攝像頭視頻,進(jìn)行編碼并緩存。用戶在任何地方都可以通過手機來連接ARM控制器,并用手機上的流媒體視頻播放器來實時播放緩存的視頻,以查看來訪者的身份。
ARM;DDNS;IP;智能手機;門鈴
隨著移動互聯(lián)網(wǎng)的發(fā)展,智能手機的功能越來越強大,其更快的處理速度、更大的內(nèi)存、豐富的軟件使得手機不僅僅用于打電話、發(fā)短信等基本的應(yīng)用,很多以前需要在計算機上的完成的工作都能在智能手機端完成。WiFi的廣泛覆蓋以及4G網(wǎng)絡(luò)的普及,為手機上網(wǎng)看視頻提供了網(wǎng)絡(luò)速度方面的支持[1]。再加上流媒體視頻傳輸技術(shù)的發(fā)展以及其在智能手機上的普及應(yīng)用,使得用手機來接收流媒體視頻成為可能[2]。在當(dāng)今的互聯(lián)網(wǎng)時代,ADSL的應(yīng)用十分廣泛,大部分家庭都是ADSL上網(wǎng),但是ADSL的動態(tài)地址池分配IP的方式使得主機的IP具有不確定性,給域名解析帶來了很大的麻煩。動態(tài)域名解析系統(tǒng)則很好地解決了這個問題。
1.1 系統(tǒng)總體方案設(shè)計
基于動態(tài)域名解析的門鈴響應(yīng)監(jiān)控系統(tǒng)由智能手機、動態(tài)域名解析服務(wù)器(DDNS)以及ARM控制器三部分組成。這三部分都能通過無線接入網(wǎng)連接到Internet[3]。智能手機為本方案的視頻播放端,屬于用戶端,它能播放來自Internet的流媒體視頻。動態(tài)域名解析服務(wù)器能將一個固定的域名和動態(tài)的IP綁定,并周期性地更新,使用戶方便地只用一個域名就能訪問家庭的主機,解決客服家庭IP動態(tài)變化的難題。ARM控制器是部署在用戶家里的,是中心控制器,其功能主要為:對門鈴的觸發(fā)進(jìn)行響應(yīng);采集攝像頭的視頻,編碼并緩存;打開監(jiān)聽端口,等待播放請求;與播放端建立實時傳輸協(xié)議[4]。
1.2 系統(tǒng)實現(xiàn)方法
基于動態(tài)域名解析的門鈴響應(yīng)監(jiān)控系統(tǒng)中,ARM控制器收到門鈴的啟動請求后,啟動攝像頭,采集攝像頭視頻,進(jìn)行編碼并緩存,等待播放請求。用戶在任何地方都可以通過手機來連接ARM控制器,并用手機上的流媒體視頻播放器來實時播放緩存的視頻,以查看來訪者。其實現(xiàn)方案如圖1所示,具體過程如下。
(1)通過動態(tài)域名解析軟件將ARM控制器的IP地址和域名綁定;
(2)ARM控制器采集攝像頭拍下的實時視頻,進(jìn)行編碼,轉(zhuǎn)換成流媒體文件,并寫入緩存,打開監(jiān)聽端口,等待播放請求;
(3)用戶手機通過域名訪問家里的ARM控制器,向其發(fā)送播放請求;
(4)ARM控制器收到播放請求后,讀取緩存中的數(shù)據(jù),與用戶手機的播放器建立實時流傳輸協(xié)議會話,開始傳輸數(shù)據(jù);
圖1 系統(tǒng)總體方案設(shè)計圖
(5)用戶手機上的播放器收到流媒體文件后,解碼并播放。
步驟(1)中動態(tài)域名解析軟件將動態(tài)變化的IP地址和固定的域名綁定,只要通過一個固定的域名就能連接到家庭的ARM控制器。步驟(2)中ARM控制器連接著攝像頭,能將攝像頭的視頻數(shù)據(jù)進(jìn)行編碼,使其轉(zhuǎn)換成適合在網(wǎng)絡(luò)上傳播的流媒體文件,并緩存下來,當(dāng)緩存數(shù)據(jù)大小超過預(yù)先設(shè)定的緩存文件大小時,會從文件開始寫入,覆蓋舊的數(shù)據(jù)。同時,ARM控制器打開監(jiān)聽端口,等待播放請求。步驟(3)和步驟(4)中不管用戶身在何處,只要手機能連入Internet,就能和家里ARM控制器連接。用戶手機上的流媒體視頻播放器通過輸入域名和ARM控制器建立連接,雙方建立實時流傳輸協(xié)議會話,ARM控制器從緩存中讀取數(shù)據(jù)發(fā)送給手機端,手機端接收數(shù)據(jù)。步驟(5)中用戶的手機端收到視頻數(shù)據(jù)之后,流媒體視頻播放器對其進(jìn)行解碼,并播放。
DDNS是一種把互聯(lián)網(wǎng)域名指向可變IP地址的系統(tǒng)。動態(tài)域名解析軟件運行在ARM控制器上,隨ARM控制器的啟動而啟動,這樣就能實時更新域名綁定的IP地址。圖2描繪了本系統(tǒng)的信令交互過程。當(dāng)ARM控制器接收到門鈴的請求后,便打開攝像頭,采集攝像頭的視頻數(shù)據(jù),對其進(jìn)行編碼,使其轉(zhuǎn)換成適合在網(wǎng)絡(luò)上傳播的流媒體文件,并緩存在緩存文件中,當(dāng)緩存數(shù)據(jù)大小超過預(yù)先設(shè)定的緩存文件大小時,會從文件頭開始寫入,覆蓋舊的數(shù)據(jù)。同時,ARM控制器打開監(jiān)聽端口,向用戶的智能手機發(fā)送提醒,等待播放請求。此時用戶收到提醒后,便通過智能手機的播放器輸入域名,向ARM控制器發(fā)起會話請求。DDNS通過查找域名對應(yīng)的IP地址,將請求轉(zhuǎn)向ARM控制器端。ARM控制器的監(jiān)聽端口收到請求后便和智能手機建立連接,雙方建立實時流傳輸協(xié)議(RTSP)會話,并采用用戶數(shù)據(jù)報協(xié)議(UDP)傳輸視頻數(shù)據(jù),ARM控制器從緩存中讀取數(shù)據(jù)發(fā)送給手機端。手機端接收到數(shù)據(jù)后,進(jìn)行解碼并播放。
1.3 主要技術(shù)難點分析
根據(jù)上述的功能要求和總體方案設(shè)計,本系統(tǒng)實現(xiàn)的技術(shù)難點主要如下。
(1) 要突破傳統(tǒng)的桌面端的視頻監(jiān)控,基于智能手機的發(fā)展,將視頻監(jiān)控在移動端實現(xiàn)[5]。
(2) 由于當(dāng)今家庭都是ADSL撥號入網(wǎng),IP地址動態(tài)變化導(dǎo)致手機遠(yuǎn)程連接困難。
(3) 保證視頻傳輸?shù)膶崟r性、清晰度,實現(xiàn)視頻的流媒體服務(wù),使其能在手機端播放。
圖2 系統(tǒng)信令交互過程圖
2.1 動態(tài)域名解析
花生殼是網(wǎng)域科技公司推出的動態(tài)域名解析客戶端工具,它為用戶提供了動態(tài)域名解析服務(wù),支持包括ISDN、ADSL等常見的網(wǎng)絡(luò)線路[6],目前被廣泛應(yīng)用于視頻監(jiān)控、網(wǎng)站建設(shè)、遠(yuǎn)程桌面等服務(wù)[7]?;ㄉ鷼さ募夹g(shù)原理圖如圖3所示。其使用方法如下:
(1)進(jìn)入花生殼官網(wǎng),進(jìn)行域名注冊。
(2)下載客戶端軟件,選擇嵌入式客戶端,根據(jù)本文的軟件開發(fā)環(huán)境Ubuntu12.04,選擇相對應(yīng)的客戶端進(jìn)行下載。
(3)將客戶端安裝包拷貝到Linux系統(tǒng)下,進(jìn)行解壓安裝。安裝過程如下:
①下載好所需要的安裝包,由于本系統(tǒng)使用UBUNTU12.04操作系統(tǒng),因此要選擇對應(yīng)的版本進(jìn)行下載。
②Linux下的安裝:
dpkg-iphddns_2.0.6_i386.deb
③安裝成功后,在終端輸入:phddns。
④出現(xiàn)如下一系列的提示問題:
圖3 花生殼技術(shù)原理圖
(a)Enterserveraddress(pressENTERusephddns60.oray.net)
這是提示用戶輸入花生殼服務(wù)器的域名,如果網(wǎng)站上沒有更新域名的公告說明,這一步直接回車即可,會使用默認(rèn)的phddns60.oray.net域名。
(b)EnteryourOrayaccount
這是提示用戶輸入在花生殼官網(wǎng)注冊的用戶名,需根據(jù)實際情況輸入。
(c)Password
這是提示用戶輸入在花生殼官網(wǎng)注冊的用戶名所對應(yīng)的密碼,需根據(jù)實際情況輸入。
(d)Networkinterface(s)
[eth0] = [IP:192.168.33.195]
[lo] = [IP:127.0.0.1]
Chooseone(defaulteth0):
這是要配置用戶這臺服務(wù)器的網(wǎng)絡(luò)參數(shù),花生殼(公網(wǎng)版)軟件會自動檢查,并輸出用戶的網(wǎng)絡(luò)情況。eth0部分可能和上面的不一樣,是用戶的實際網(wǎng)絡(luò)設(shè)置。
如果用戶有兩塊網(wǎng)卡,eth0 和eth1 ,而用戶希望用eth1來綁定花生殼,在這里輸入eth1 ,然后回車。如果用戶只有一塊網(wǎng)卡,或者用戶希望使用eth0來綁定花生殼,在這里直接回車即可。
(e)Logtouse(default/var/log/phddns.log)
這是提示用戶輸入花生殼(公網(wǎng)版)軟件日志的保存位置,需使用絕對路徑指定日志文件名。如果直接回車,會使用/var/log/phddns.log來保存日志。
(f)Savetoconfigurationfile(/etc/phlinux.conf)?(yes/no/other)
這是提示用戶輸入上述配置的保存文件名。
如果輸入yes或直接回車,將會使用/etc/phlinux.conf作為配置的保存文件名。
如果輸入other,將會提示用戶自行指定文件名,需使用絕對路徑來指定這個配置文件名。
如果輸入no,不對上述配置進(jìn)行保存,下次重新使用花生殼(公網(wǎng)版)時,需要手動指定配置文件或再次通過交互模式進(jìn)行設(shè)置。
步驟(f)執(zhí)行完畢后,屏幕上會依次出現(xiàn):
defOnStatusChangedok
DomainsRegistered
UserType
這就表示花生殼(公網(wǎng)版)軟件注冊并運行成功。
通過在/etc/rc.local添加
/usr/bin/phddns-c/etc/phlinux.conf-d
可實現(xiàn)開機自動運行。
2.2 流媒體服務(wù)器的搭建
流媒體又稱為流式媒體,特點是邊傳邊播,即視頻源端在傳輸視頻的同時,客戶端一邊接收一邊播放視頻。這種傳輸方式符合本系統(tǒng)門鈴監(jiān)控的要求,即家庭內(nèi)的物聯(lián)網(wǎng)網(wǎng)關(guān)采集視頻,發(fā)送視頻,用戶手機端連接上控制器后一邊接收視頻,一邊播放視頻。所以本系統(tǒng)需要將攝像頭采集到的視頻轉(zhuǎn)換成流媒體視頻。FFmpeg+FFserver是一套用于錄制、轉(zhuǎn)換音頻和視頻,并將音頻和視頻進(jìn)行流化的解決方案。它是開源的,向所有開發(fā)者免費提供。FFmpeg+FFserver是基于Linux開發(fā)的,正好符合本系統(tǒng)的開發(fā)環(huán)境。下面將詳細(xì)介紹利用FFmpeg+FFserver在Tiny6410開發(fā)板上搭建流媒體服務(wù)器。
開發(fā)系統(tǒng):Ubuntu12.04;交叉編譯環(huán)境:gcc4.5.1;開發(fā)板:友善之臂Tiny6410。
(1)搭建交叉編譯環(huán)境所需要的軟件:
arm-linux-gcc-4.5.1-v6-vfp-20101103.tar.gz
首先安裝g++、更新軟件源sudoapt-getinstallg++;然后解壓tarzxvfarm-linux-gcc-4.5.1-v6-vfp-20101103.tar.gz,本文解壓的目錄是/opt/FriendlyARM/toolschain/4.5.1;把bin加到環(huán)境變量;打開文件:sudogedit/root/.bashrc;最后一行加上:exportPATH=/opt/FriendlyARM/toolschain/4.5.1/bin:”$PATH”,重新打開終端生效,驗證arm-linux-gcc-v。
這樣,交叉編譯環(huán)境就搭建完成了。
(2)安裝編譯FFmpeg
①從網(wǎng)上下載需要安裝包,last_x264、lame-3.99.5、faac-1.28、xvidcore-1.3.2以及ffmpeg-1.0。下載之后,分別解壓上面四個文件。
tarjxvflast_x264.tar.bz2
tarzxvflame-3.99.5.tar..gz
tarjxvffaac-1.28xvidcore-1.3.2.tar.bz2
tarjxvfffmpeg-1.0
②解壓完成之后,在last_x264的解壓目錄下找到x264.snapshot-20121007-2245,進(jìn)入該目錄,執(zhí)行語句./configure--disable-asm,然后修改相關(guān)參數(shù):
ARCH=arm
CC=arm-linux-gcc
CFLAGS=-Wshadow-O3 -ffast-math-Wall-I. -std=gnu99 -fomit-frame-pointer-fno-tree-vectorize
LD=arm-linux-gcc-o
LDFLAGS= -lm-lpthread
AR=arm-linux-arrc
RANLIB=arm-linux-ranlib
其他參數(shù)不用修改。
然后執(zhí)行make,再執(zhí)行makeinstall。
③在lame-3.99.5的解壓目錄下找到lame-3.99.5,進(jìn)入該目錄,執(zhí)行
./configure--enable-shared--prefix=/usr
make
makeinstall
在faac-1.28的解壓目錄下找到faac-1.28,進(jìn)入該目錄,執(zhí)行
./bootstrap
./configure--prefix=/usr
make
makeinstall
在xvidcore-1.3.2的解壓目錄下找到xvidcore-1.3.2,進(jìn)入該目錄下的generic目錄,執(zhí)行
./configure--prefix=/usr
make
makeinstall
進(jìn)入ffmpeg-1.0目錄,最好先執(zhí)行./configure--help>ffmpeg_help.txt生成幫助文檔ffmpeg_help.txt。然后執(zhí)行
./configure--cross-prefix=arm-linux---enable-cross-compile--target-os=linux--cc=arm-linux-gcc--arch=arm--prefix=/usr/local/ffmpeg
make
再進(jìn)行相關(guān)的配置,執(zhí)行
./configure--cross-prefix=arm-linux---enable-cross-compile--target-os=linux--cc=arm-linux-gcc--arch=arm--prefix=/usr/local/ffmpeg--enable-shared--disable-static
make
makeinstall
完成后,F(xiàn)Fmpeg和FFserver就安裝成功了。接下來還要根據(jù)本系統(tǒng)的要求進(jìn)行相關(guān)視頻參數(shù)的配置。
④在FFmpeg的安裝目錄下,找到ffserver.conf文件,進(jìn)行配置。
#基本信息設(shè)置
Port8090
BindAddress0.0.0.0
MaxHTTPConnections2000
MaxClients1000
MaxBandwidth1000
CustomLog-
NoDaemon
#媒體流文件設(shè)置
File/tmp/feed1.ffm
FileMaxSize2M
ACLallow127.0.0.1
#壓縮為asf格式
Feedfeed1.ffm
Formatasf
VideoFrameRate15
VideoSize352x240
VideoBitRate256
VideoBufferSize40
VideoGopSize30
StartSendOnKey
NoAudio
#rm格式視頻
Feedfeed1.ffm
Formatrm
VideoSize640x480
AudioBitRate32
VideoBitRate128
VideoFrameRate25
VideoGopSize25
NoAudio
#可以查看ffserver的啟動狀態(tài)
Formatstatus
ACLallowlocalhost
保存后退出。
⑤將FFmpeg移植到ARM開發(fā)板上。上面工作完成后,要將安裝好的FFmpeg移植到Tiny6410開發(fā)板上,將安裝目錄下的庫文件包拷貝到開發(fā)板的lib目錄下,這些庫文件包有:libavcodec.so.54、libvdevice.so.54、libavfilter.so.3、libavformat.so.54、libavutil.so.51、libswresample.so.0、libswscale.so.2。再將/usr/local/下的ffmpeg目錄考到ARM開發(fā)板里。
這些步驟完成后,實現(xiàn)了在Tiny6410板子上搭建流媒體服務(wù)器。
2.3 移動端的視頻監(jiān)控
上述兩個技術(shù)難點解決之后,在移動端實現(xiàn)視頻監(jiān)控這個問題也將迎刃而解。隨著智能手機的發(fā)展,其功能已經(jīng)越來越強大,Android和iOS兩大智能手機操作系統(tǒng)也是愈發(fā)成熟,手機軟件發(fā)展非常迅速。目前APP市場上免費提供流媒體視頻文件播放的軟件也很多,本系統(tǒng)在設(shè)計時選擇了VLCStrFree這款手機軟件,操作系統(tǒng)為iOS。VLCStrFree是VideoLAN計劃的多媒體播放器在手機端的實現(xiàn)。它支持眾多音頻與視頻解碼器及文件格式,并且支持各類流式協(xié)議。VLC是一款自由、開源的跨平臺多媒體播放器及框架。通過以上介紹,成功地解決了本系統(tǒng)要實現(xiàn)的三個技術(shù)難點。
隨著計算機通信技術(shù)的快速發(fā)展、各類計算機處理能力的增強以及攝像設(shè)備成本的下降,視頻監(jiān)控系統(tǒng)越來越成為研究的熱點。視頻監(jiān)控正在從以前的模擬監(jiān)控轉(zhuǎn)變?yōu)閿?shù)字監(jiān)控,從現(xiàn)場監(jiān)控轉(zhuǎn)變?yōu)檫h(yuǎn)程監(jiān)控,從有人值守監(jiān)控轉(zhuǎn)度為無人值守監(jiān)控。然而,大部分傳統(tǒng)監(jiān)控系統(tǒng)都是基于PC的視頻監(jiān)控,系統(tǒng)功能較強,但是功耗高,傳輸距離明顯受限,還需要有人管理,所以實用性受限?;趧討B(tài)域名解析的門鈴響應(yīng)監(jiān)控系統(tǒng)是一種實用的、遠(yuǎn)程的、低功耗的手機端視頻監(jiān)控系統(tǒng),解決了ADSL的動態(tài)地址池分配IP的方式使得主機的IP具有不確定性的問題,具有延時低、接入速度快、簡單易用的特點。
[1]GUNGORVC,LUB,HANCKEGP.Opportunitiesandchallengesofwirelesssensornetworksinsmartgrid[J].IEEETransactionsonIndustrialElectronics, 2010, 57(10):3557-3564.
[2] 鐘玉琢. 流媒體和視頻服務(wù)器[M]. 北京:清華大學(xué)出版社, 2003.
[3]SAHOOS,MISHRAP,SATPATHYRN.Secureroutinginwirelesssensornetworks[J].InternationalJournalofComputerScienceIssues, 2012, 1(3):645-655.
[4] 馬川, 劉志鏡. 視頻實時傳輸?shù)腞TP實現(xiàn)[J]. 現(xiàn)代電子技術(shù), 2004, 27(20):41-43.
[5] 西剎子. 安防天下: 智能網(wǎng)絡(luò)視頻監(jiān)控技術(shù)詳解與實踐[M]. 北京:清華大學(xué)出版社, 2010.
[6] 劉權(quán), 陳蜀宇.Linux下基于DDNS的動態(tài)IPSecVPN的研究[J]. 計算機系統(tǒng)應(yīng)用, 2009, 18(4):135-139.
[7] 胡世敏. 基于S3C6410的視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J]. 現(xiàn)代電子技術(shù), 2011, 34(20):63-66.
Intelligent detection system of distiller’s yeast temperature and humidity
LiFeng
(CollegeofTelecommunications&InformationEngineering,NanjingUniversityofPostsandTelecommunications,Nanjing210003,China)
Thepurposeofthispaperistoimplementthefunctionofthevideocollectedbycameraswhichthemobilephonecanplayatthegateofthefamily,forviewingthecurrentvisitingofguests.ThedoorbellandcamerasinstalledbythedoorareconnectedtogethertheARMcontroller.Ifthedoorbellispressed,andthedoorisnotopenedforawhile,thecamerasarestarted,capturingcameravideoandcodingandcaching.UserscanconnecttotheARMcontrollerthroughthephoneanywhere,withstreamingvideoplayeronyourphonetobroadcastthereal-timevideocachedforcheckingtheidentityofvisitors.
ARM;DDNS;IP;smartphone;thedoorbell
TP
ADOI: 10.19358/j.issn.1674- 7720.2016.22.026
李峰. 基于動態(tài)域名解析的門鈴響應(yīng)監(jiān)控系統(tǒng)的設(shè)計[J].微型機與應(yīng)用,2016,35(22):98-101,104.
2016-07-28)
李峰(1989-),男,碩士,主要研究方向:無線移動通信。