基于ARM11的無線視頻監(jiān)控系統(tǒng)
4.1.1 WI-FI 無線網絡搭建過程
本文引用地址:http://www.ex-cimer.com/article/273139.htm(1)加載WI-FI 模塊。通過insmod 命令加載,這里需要加載2 個文件helper_sd.bin、sd8686.bin,這2 個文件可以從Marvel 官方網站下載。
(2)搜索WI-FI 網絡。先用ifconfig eth1 up 命令把WI-FI 網絡接口卡打開,然后用iwlist eth1 scanning命令搜索WIFI 網絡。
(3)設置eth1 的ip 地址和子網掩碼。
(4)設置ESSID.通過iwconfig eth1 essid 402命令實現(xiàn)的,ESSID 用來區(qū)分不同的網絡。
(5)設置密碼。通過iwconfig eth1 key s:your_key命令實現(xiàn)的,其中your_key 就是登陸密碼。
4.1.2 基于RTP 協(xié)議的視頻數(shù)據傳輸
RTP 是實時傳送協(xié)議( Real-time TransportProtocol)的縮寫,代表一個網絡傳輸?shù)膮f(xié)議,為音頻、視頻上傳中的常用協(xié)議[5].RTCP 和RTP 一起提供流量控制和擁塞控制服務,它們能以有效反饋和最小開銷使傳輸效率最佳化,因而特別適合傳送實時的數(shù)據,所以采用該協(xié)議傳輸視頻數(shù)據。
本系統(tǒng)采用開源代碼Jrtplib 提供的RTP 協(xié)議棧,由于Jrtplib 對RFC3550 的實現(xiàn)進行了封裝,使得傳輸視頻數(shù)據更加簡單。由于本系統(tǒng)的網絡最大有效載荷為1500 字節(jié),因此設置RTP 包大小的上限為1400 字節(jié),如果發(fā)送的數(shù)據大于1400 字節(jié),則采用拆包的方法再發(fā)送,具體傳輸過程如圖4 和圖5 所示。
圖4 發(fā)送端流程框圖。
圖5 接收端流程框圖。
發(fā)送端主要過程如下:
(1)創(chuàng)建RTP 會話并設置目標地址。調用Create方法得到RTP 會話實例,然后調用AddDestination 方法設置目標IP 以及目標端口號。
(2)獲得數(shù)據,調用Get_Data()函數(shù)得到。
(3)發(fā)送數(shù)據,通過SendPacket()方法實現(xiàn)。
接收端主要過程如下:
(1)創(chuàng)建RTP 會話。調用Create 方法來創(chuàng)建一個會話實例,并且在創(chuàng)建會話的同時設置端口號,要與發(fā)送端的端口號保持一致。
(2)接受RTP 數(shù)據。調用RTPSession 類的PollData()方法接收數(shù)據。
(3)保存RTP 數(shù)據報。通過創(chuàng)建了一個指針數(shù)組,里面存放的是RTP 數(shù)據報的指針,只要將剛接收到RTP 數(shù)據報的指針賦給這個指針數(shù)組即可,這樣可以節(jié)省數(shù)據拷貝的時間。
(4)判斷是否接收完成,如果沒有,則跳轉到第b 步,否則接收端程序退出。
linux相關文章:linux教程
攝像頭相關文章:攝像頭原理
評論