使用注意,將以下所有程式放置在相同目錄之下即可。
php 主機常駐背景執行 : get.php
1 2 3 4 5 6 7 8 9 10 11 |
<?php while(1){ exec('wget -q -O cam.jpeg "http://camera ip/pda.cgi?user=帳號&password=密碼&page=image&cam=1"'); if ( filesize( 'cam.jpeg' ) > 0 ) { // 將完成圖檔複製到另外的檔案,提供給網頁使用,避免直接讀取讀到未完成檔案 copy( 'cam.jpeg', 'wcam.jpeg' ); } // 等待 0.25 = 一秒 4 fps usleep(250000); } |
在指令模式下將 php 背景常駐執行。
1 |
php get.php & |
使用 php 去讀取圖檔 : v.php
1 2 3 4 5 |
<?php $file_name="wcam.jpeg"; readfile($file_name); // readfile() 之後使用 flush() 將讀到的資料釋出 flush(); |
使用程式讀取圖檔的好處是可以銜接後續的權限控管,目前只是簡單的讀取動作。
關鍵!使用 jQuery 網頁不停的讀取更新圖檔 : v.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<!DOCTYPE html> <html> <head> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <img /> <script> function loadData() { $("img").attr({ 'src': "v.php?" + Math.random() }); setTimeout( "loadData()", 250); }; jQuery(document).ready(function($){ loadData(); }); </script> </body> </html> |
三個檔案準備完成後,在網頁進入 v.html 即可看到由 v.php 讀取的圖檔。當然,v.php 讀取的圖檔是由 get.php 向網路攝影機擷取到的畫面。
關鍵一為如何使用 jQuery 來指定圖檔,讓 jQuery 設定 setTimeout 在 Google Chrome 瀏覽器就可以得到想要結果,畫面不需刷新就可以更新圖片,得到近乎影片播放效果。只是在 IE 以及 Firefox 還是只顯示單張圖檔無法持續更新,因此需要加上關鍵二讓圖檔連結每次都不一樣,這樣 IE & Firefox 才會覺得這是不同檔案,才會抓取圖檔。
以上方法使用 Internet Explorer 8.0 & Google Chrome 18.0 & Mozilla Firefox 3.6.9 測試成功,不需安裝任何軟體。
流量試算
單張 640*480 圖檔約 16,200Bytes ,一秒 4 張 = 64,800Bytes = 518400bit
一支鏡頭就需要 512Kbit 的下載流量有點恐怖,圖片需要進一步壓縮處理,而且在多畫面監看時也不需要原始解析度,
--
3,398 total views, 1 views today