李 峰
(南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
基于動態域名解析的門鈴響應監控系統的設計
李 峰
(南京郵電大學 通信與信息工程學院,江蘇 南京 210003)
實現用手機端播放家庭門口攝像頭所采集的視頻從而查看當前來訪客人的功能。門鈴和安裝在門口的攝像頭共同連接于ARM控制器。如果門鈴被按下,并在一段時間內門沒有打開,則啟動攝像頭,采集攝像頭視頻,進行編碼并緩存。用戶在任何地方都可以通過手機來連接ARM控制器,并用手機上的流媒體視頻播放器來實時播放緩存的視頻,以查看來訪者的身份。
ARM;DDNS;IP;智能手機;門鈴
隨著移動互聯網的發展,智能手機的功能越來越強大,其更快的處理速度、更大的內存、豐富的軟件使得手機不僅僅用于打電話、發短信等基本的應用,很多以前需要在計算機上的完成的工作都能在智能手機端完成。WiFi的廣泛覆蓋以及4G網絡的普及,為手機上網看視頻提供了網絡速度方面的支持[1]。再加上流媒體視頻傳輸技術的發展以及其在智能手機上的普及應用,使得用手機來接收流媒體視頻成為可能[2]。在當今的互聯網時代,ADSL的應用十分廣泛,大部分家庭都是ADSL上網,但是ADSL的動態地址池分配IP的方式使得主機的IP具有不確定性,給域名解析帶來了很大的麻煩。動態域名解析系統則很好地解決了這個問題。
1.1 系統總體方案設計
基于動態域名解析的門鈴響應監控系統由智能手機、動態域名解析服務器(DDNS)以及ARM控制器三部分組成。這三部分都能通過無線接入網連接到Internet[3]。智能手機為本方案的視頻播放端,屬于用戶端,它能播放來自Internet的流媒體視頻。動態域名解析服務器能將一個固定的域名和動態的IP綁定,并周期性地更新,使用戶方便地只用一個域名就能訪問家庭的主機,解決客服家庭IP動態變化的難題。ARM控制器是部署在用戶家里的,是中心控制器,其功能主要為:對門鈴的觸發進行響應;采集攝像頭的視頻,編碼并緩存;打開監聽端口,等待播放請求;與播放端建立實時傳輸協議[4]。
1.2 系統實現方法
基于動態域名解析的門鈴響應監控系統中,ARM控制器收到門鈴的啟動請求后,啟動攝像頭,采集攝像頭視頻,進行編碼并緩存,等待播放請求。用戶在任何地方都可以通過手機來連接ARM控制器,并用手機上的流媒體視頻播放器來實時播放緩存的視頻,以查看來訪者。其實現方案如圖1所示,具體過程如下。
(1)通過動態域名解析軟件將ARM控制器的IP地址和域名綁定;
(2)ARM控制器采集攝像頭拍下的實時視頻,進行編碼,轉換成流媒體文件,并寫入緩存,打開監聽端口,等待播放請求;
(3)用戶手機通過域名訪問家里的ARM控制器,向其發送播放請求;
(4)ARM控制器收到播放請求后,讀取緩存中的數據,與用戶手機的播放器建立實時流傳輸協議會話,開始傳輸數據;

圖1 系統總體方案設計圖
(5)用戶手機上的播放器收到流媒體文件后,解碼并播放。
步驟(1)中動態域名解析軟件將動態變化的IP地址和固定的域名綁定,只要通過一個固定的域名就能連接到家庭的ARM控制器。步驟(2)中ARM控制器連接著攝像頭,能將攝像頭的視頻數據進行編碼,使其轉換成適合在網絡上傳播的流媒體文件,并緩存下來,當緩存數據大小超過預先設定的緩存文件大小時,會從文件開始寫入,覆蓋舊的數據。同時,ARM控制器打開監聽端口,等待播放請求。步驟(3)和步驟(4)中不管用戶身在何處,只要手機能連入Internet,就能和家里ARM控制器連接。用戶手機上的流媒體視頻播放器通過輸入域名和ARM控制器建立連接,雙方建立實時流傳輸協議會話,ARM控制器從緩存中讀取數據發送給手機端,手機端接收數據。步驟(5)中用戶的手機端收到視頻數據之后,流媒體視頻播放器對其進行解碼,并播放。
DDNS是一種把互聯網域名指向可變IP地址的系統。動態域名解析軟件運行在ARM控制器上,隨ARM控制器的啟動而啟動,這樣就能實時更新域名綁定的IP地址。圖2描繪了本系統的信令交互過程。當ARM控制器接收到門鈴的請求后,便打開攝像頭,采集攝像頭的視頻數據,對其進行編碼,使其轉換成適合在網絡上傳播的流媒體文件,并緩存在緩存文件中,當緩存數據大小超過預先設定的緩存文件大小時,會從文件頭開始寫入,覆蓋舊的數據。同時,ARM控制器打開監聽端口,向用戶的智能手機發送提醒,等待播放請求。此時用戶收到提醒后,便通過智能手機的播放器輸入域名,向ARM控制器發起會話請求。DDNS通過查找域名對應的IP地址,將請求轉向ARM控制器端。ARM控制器的監聽端口收到請求后便和智能手機建立連接,雙方建立實時流傳輸協議(RTSP)會話,并采用用戶數據報協議(UDP)傳輸視頻數據,ARM控制器從緩存中讀取數據發送給手機端。手機端接收到數據后,進行解碼并播放。
1.3 主要技術難點分析
根據上述的功能要求和總體方案設計,本系統實現的技術難點主要如下。
(1) 要突破傳統的桌面端的視頻監控,基于智能手機的發展,將視頻監控在移動端實現[5]。
(2) 由于當今家庭都是ADSL撥號入網,IP地址動態變化導致手機遠程連接困難。
(3) 保證視頻傳輸的實時性、清晰度,實現視頻的流媒體服務,使其能在手機端播放。

圖2 系統信令交互過程圖
2.1 動態域名解析
花生殼是網域科技公司推出的動態域名解析客戶端工具,它為用戶提供了動態域名解析服務,支持包括ISDN、ADSL等常見的網絡線路[6],目前被廣泛應用于視頻監控、網站建設、遠程桌面等服務[7]。花生殼的技術原理圖如圖3所示。其使用方法如下:
(1)進入花生殼官網,進行域名注冊。
(2)下載客戶端軟件,選擇嵌入式客戶端,根據本文的軟件開發環境Ubuntu12.04,選擇相對應的客戶端進行下載。
(3)將客戶端安裝包拷貝到Linux系統下,進行解壓安裝。安裝過程如下:
①下載好所需要的安裝包,由于本系統使用UBUNTU12.04操作系統,因此要選擇對應的版本進行下載。
②Linux下的安裝:
dpkg-iphddns_2.0.6_i386.deb
③安裝成功后,在終端輸入:phddns。
④出現如下一系列的提示問題:

圖3 花生殼技術原理圖
(a)Enterserveraddress(pressENTERusephddns60.oray.net)
這是提示用戶輸入花生殼服務器的域名,如果網站上沒有更新域名的公告說明,這一步直接回車即可,會使用默認的phddns60.oray.net域名。
(b)EnteryourOrayaccount
這是提示用戶輸入在花生殼官網注冊的用戶名,需根據實際情況輸入。
(c)Password
這是提示用戶輸入在花生殼官網注冊的用戶名所對應的密碼,需根據實際情況輸入。
(d)Networkinterface(s)
[eth0] = [IP:192.168.33.195]
[lo] = [IP:127.0.0.1]
Chooseone(defaulteth0):
這是要配置用戶這臺服務器的網絡參數,花生殼(公網版)軟件會自動檢查,并輸出用戶的網絡情況。eth0部分可能和上面的不一樣,是用戶的實際網絡設置。
如果用戶有兩塊網卡,eth0 和eth1 ,而用戶希望用eth1來綁定花生殼,在這里輸入eth1 ,然后回車。如果用戶只有一塊網卡,或者用戶希望使用eth0來綁定花生殼,在這里直接回車即可。
(e)Logtouse(default/var/log/phddns.log)
這是提示用戶輸入花生殼(公網版)軟件日志的保存位置,需使用絕對路徑指定日志文件名。如果直接回車,會使用/var/log/phddns.log來保存日志。
(f)Savetoconfigurationfile(/etc/phlinux.conf)?(yes/no/other)
這是提示用戶輸入上述配置的保存文件名。
如果輸入yes或直接回車,將會使用/etc/phlinux.conf作為配置的保存文件名。
如果輸入other,將會提示用戶自行指定文件名,需使用絕對路徑來指定這個配置文件名。
如果輸入no,不對上述配置進行保存,下次重新使用花生殼(公網版)時,需要手動指定配置文件或再次通過交互模式進行設置。
步驟(f)執行完畢后,屏幕上會依次出現:
defOnStatusChangedok
DomainsRegistered
UserType
這就表示花生殼(公網版)軟件注冊并運行成功。
通過在/etc/rc.local添加
/usr/bin/phddns-c/etc/phlinux.conf-d
可實現開機自動運行。
2.2 流媒體服務器的搭建
流媒體又稱為流式媒體,特點是邊傳邊播,即視頻源端在傳輸視頻的同時,客戶端一邊接收一邊播放視頻。這種傳輸方式符合本系統門鈴監控的要求,即家庭內的物聯網網關采集視頻,發送視頻,用戶手機端連接上控制器后一邊接收視頻,一邊播放視頻。所以本系統需要將攝像頭采集到的視頻轉換成流媒體視頻。FFmpeg+FFserver是一套用于錄制、轉換音頻和視頻,并將音頻和視頻進行流化的解決方案。它是開源的,向所有開發者免費提供。FFmpeg+FFserver是基于Linux開發的,正好符合本系統的開發環境。下面將詳細介紹利用FFmpeg+FFserver在Tiny6410開發板上搭建流媒體服務器。
開發系統:Ubuntu12.04;交叉編譯環境:gcc4.5.1;開發板:友善之臂Tiny6410。
(1)搭建交叉編譯環境所需要的軟件:
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加到環境變量;打開文件:sudogedit/root/.bashrc;最后一行加上:exportPATH=/opt/FriendlyARM/toolschain/4.5.1/bin:”$PATH”,重新打開終端生效,驗證arm-linux-gcc-v。
這樣,交叉編譯環境就搭建完成了。
(2)安裝編譯FFmpeg
①從網上下載需要安裝包,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,進入該目錄,執行語句./configure--disable-asm,然后修改相關參數:
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
其他參數不用修改。
然后執行make,再執行makeinstall。
③在lame-3.99.5的解壓目錄下找到lame-3.99.5,進入該目錄,執行
./configure--enable-shared--prefix=/usr
make
makeinstall
在faac-1.28的解壓目錄下找到faac-1.28,進入該目錄,執行
./bootstrap
./configure--prefix=/usr
make
makeinstall
在xvidcore-1.3.2的解壓目錄下找到xvidcore-1.3.2,進入該目錄下的generic目錄,執行
./configure--prefix=/usr
make
makeinstall
進入ffmpeg-1.0目錄,最好先執行./configure--help>ffmpeg_help.txt生成幫助文檔ffmpeg_help.txt。然后執行
./configure--cross-prefix=arm-linux---enable-cross-compile--target-os=linux--cc=arm-linux-gcc--arch=arm--prefix=/usr/local/ffmpeg
make
再進行相關的配置,執行
./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
完成后,FFmpeg和FFserver就安裝成功了。接下來還要根據本系統的要求進行相關視頻參數的配置。
④在FFmpeg的安裝目錄下,找到ffserver.conf文件,進行配置。
#基本信息設置
Port8090
BindAddress0.0.0.0
MaxHTTPConnections2000
MaxClients1000
MaxBandwidth1000
CustomLog-
NoDaemon
#媒體流文件設置
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的啟動狀態
Formatstatus
ACLallowlocalhost
保存后退出。
⑤將FFmpeg移植到ARM開發板上。上面工作完成后,要將安裝好的FFmpeg移植到Tiny6410開發板上,將安裝目錄下的庫文件包拷貝到開發板的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開發板里。
這些步驟完成后,實現了在Tiny6410板子上搭建流媒體服務器。
2.3 移動端的視頻監控
上述兩個技術難點解決之后,在移動端實現視頻監控這個問題也將迎刃而解。隨著智能手機的發展,其功能已經越來越強大,Android和iOS兩大智能手機操作系統也是愈發成熟,手機軟件發展非常迅速。目前APP市場上免費提供流媒體視頻文件播放的軟件也很多,本系統在設計時選擇了VLCStrFree這款手機軟件,操作系統為iOS。VLCStrFree是VideoLAN計劃的多媒體播放器在手機端的實現。它支持眾多音頻與視頻解碼器及文件格式,并且支持各類流式協議。VLC是一款自由、開源的跨平臺多媒體播放器及框架。通過以上介紹,成功地解決了本系統要實現的三個技術難點。
隨著計算機通信技術的快速發展、各類計算機處理能力的增強以及攝像設備成本的下降,視頻監控系統越來越成為研究的熱點。視頻監控正在從以前的模擬監控轉變為數字監控,從現場監控轉變為遠程監控,從有人值守監控轉度為無人值守監控。然而,大部分傳統監控系統都是基于PC的視頻監控,系統功能較強,但是功耗高,傳輸距離明顯受限,還需要有人管理,所以實用性受限。基于動態域名解析的門鈴響應監控系統是一種實用的、遠程的、低功耗的手機端視頻監控系統,解決了ADSL的動態地址池分配IP的方式使得主機的IP具有不確定性的問題,具有延時低、接入速度快、簡單易用的特點。
[1]GUNGORVC,LUB,HANCKEGP.Opportunitiesandchallengesofwirelesssensornetworksinsmartgrid[J].IEEETransactionsonIndustrialElectronics, 2010, 57(10):3557-3564.
[2] 鐘玉琢. 流媒體和視頻服務器[M]. 北京:清華大學出版社, 2003.
[3]SAHOOS,MISHRAP,SATPATHYRN.Secureroutinginwirelesssensornetworks[J].InternationalJournalofComputerScienceIssues, 2012, 1(3):645-655.
[4] 馬川, 劉志鏡. 視頻實時傳輸的RTP實現[J]. 現代電子技術, 2004, 27(20):41-43.
[5] 西剎子. 安防天下: 智能網絡視頻監控技術詳解與實踐[M]. 北京:清華大學出版社, 2010.
[6] 劉權, 陳蜀宇.Linux下基于DDNS的動態IPSecVPN的研究[J]. 計算機系統應用, 2009, 18(4):135-139.
[7] 胡世敏. 基于S3C6410的視頻監控系統的設計與實現[J]. 現代電子技術, 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
李峰. 基于動態域名解析的門鈴響應監控系統的設計[J].微型機與應用,2016,35(22):98-101,104.
2016-07-28)
李峰(1989-),男,碩士,主要研究方向:無線移動通信。