作者mosquito520 ( )
看板Programming
标题Re: [请益] 快速更新图片(影像监控)
时间Fri Mar 28 17:48:44 2008
※ 引述《archon (三脚猫的把戏)》之铭言:
: http://76.16.160.118:8080/
: http://83.160.162.175:8080/
: 这些是用 webcamxp 架出来的监控台,的确 fps 是没那麽好,
: 这个跟网路可能有点关系,我自己在区网里测试的话,
: 就跟即时影像没什麽差别...
: webcamxp 是套装软体,应该是类似一个 httpd server,
: 输出的确是以 jpg 的方式一张一张传到 client 的,
: 因此,我们将这样的方式列入考量。
webcamxp是个套装软体没错,
但是他不只提供http broadcast的方式,
他同时也提供了串流的方式,
我自己试了一下...
影像来源是我自己的电视卡...
在本机上测试大约在3.5fps左右,
我看了一下他的html code,
他的http broadcast是透过javascript不断的更新图片来实现影像的,
function LoadImage()
{
document.images.webcam.src = "cam_"+camnum+".jpg?uniq="+Math.random();
}
function DoIt()
{
errorimg=0;
window.setTimeout("LoadImage();", 25);
}
<img src="loading.jpg" id="webcam" name="webcam" onload="DoIt()"
onerror="ErrorImage()" onmousedown="PTZMouseDown(event)"
简单的说,送出影像的request+随机的数字,
server端收到request就丢给你最新的图片,
当图片载入完之後会执行onload这个event,
接着就是等25ms然後重新去载入图片,
如果完全理想的话可以到40fps,
但是这几乎是不可能。
如果你打算用这样的架构去弄的话,
那一样可以参考上面的方式,
client端透过javascript死命的送request,
server端这边关掉cache跟anti DOS的机制,
然後随便用个语言来处理这些http request,
如果希望效能再更好一点的话,用C直接实现http server的功能效能应该会更好,
﹝这个可以参考maple itoc的bhttpd.c﹞
反正server只要负责把最新的图片吐回去给client就好:)
: : 如果你只是单纯要弄个即时影像出来,
: : 我会建议Windows + Windows media encoder弄串流,
: : 或是linux + vlc player弄串流,
: : 网路环境不错的话,要弄到10几个fps不难...:)
: : 或许你可以再描述清楚一点你的需求:)
: 其实,这件工作也是从上头丢下来的,
: 希望是可以用快速抓 jpg 的方式来达到即时影像的效果,
: 考量到以後应用的平台上,「也许」会遇到只支援 jpg decoder 的环境,
: 这样的考量究竟合不合理,说来忏愧,我真的是没什麽头绪... QwQ
: 未来,影像输入并不是接在电脑上,也许先假设成是一个机器人,
: 上头有简单的处理器再加一颗 webcam 这样子...
: 希望可以透过区域网路,让 client 端的使用者看到 webcam 的画面,
: 而使用的方式,就是将 webcam 截取的画面存成 jpg,
: 一张一张传回来这样子...
: 不知道这样的描述有没有哪里还不足呢?
--
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
国 立 联 合 大 学
(理工/电资/管理/技术/客家)院所 招生中
National United University
───────────────────────────────────
首页
http://www.nuu.edu.tw BBS telnet://uun.twbbs.org
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.145.202
1F:推 archon:黑龙江边裸身跪谢... <(_ _)> 140.112.42.81 03/28 19:23
2F:推 deepkh:不知道 Client 加上 AJAX 会不会比较快 219.81.195.19 03/30 12:32
3F:→ deepkh:这样 Client 就省去读 JPG 以外的HTML 219.81.195.19 03/30 12:33
4F:→ deepkh:但我不确定 AJAX 是否可以读文字以外的物件 219.81.195.19 03/30 12:34
5F:→ mosquito520:使用ajax的话要透过xmlhttprequest220.133.145.202 03/30 12:49
6F:→ mosquito520:去送出http request,应该差不多?220.133.145.202 03/30 12:49
7F:推 deepkh:哈 抱歉 看您的 JavaScript 似乎是一样 219.80.132.118 03/30 18:44