這次主要利用ARM7連接 USB camera,組合成一個IP camera,並利用網頁來監看畫面。
在Spcaview的套件中有三個主要的執行檔,其功能在說明書有介紹
spcaview: 經由sdl傳送影像及聲音
spcaserv: 由TCP server傳送影像流
spcacat: 抓取影像
在這個套件中有包含網頁如何實現動態網頁的java程式,由於對java非常不熟,所以稍微看一下程式碼並做一些修改,所以順便記錄一下修改的過程。
因為我最主要想瞭解網頁中圖像的更新率,所以目標就是多增加一行數字計算fps。
在java applet中程式碼執行的流程為
init() --> start() -->paint() -->stop() -->destroy()
所以trace時就由這個順序開始,
在網頁中show圖形主要是在 public void start(),分析一下重要的部分
connection = new Socket(m_strServer, port); //連上server,預設是127.0.0.1
while(!m_stop)
{
byte [] b = {'O','K',0,0, 0,0,0,0,0,0,0,0,0}; // command
out.write(b); // write control command to server
n = in.read(buffer, 0, HDRLEN); // read header
buffer2[i] = buffer[i+HDRLEN]; // copy picture to buffer2
BufferedImage image = ImageIO.read(new ByteArrayInputStream(buffer2)); //tranform buffer2 to bufferedImage
if(do_overlay) {} // If mouse click,it will show control picture
ImageIcon ii = new ImageIcon(image); // show picture by icon
count++;
if(count==10)
{
endtime = System.currentTimeMillis();
fps=10000/(endtime-starttime);
starttime=endtime;
aaa=0;
}
m_label.setText(Long.toString(fps)); // show fps
m_label.setIcon(ii);
} //while
修改完後,在DOS下compile
C:\>javac JWebcamPlayer.java
C:\>jar cvf JWebcamPlayer.jar *.class
將所有檔案copy到 HTTP server,並把index-sample.html 改成index.html
Target board開機後
1. # Boa &
2. # /usr/spcaserv -d /dev/video0 -s 320x240 -f jpg -g
3. 開啟IE,網址輸入Target board IP
大功告成。每秒有30張以上
以後來把多台的IPcam的影像顯示在同一張網頁上。