Feature Request: Grab just one image from webcam
Description
using a
http://camera:server/?mode=single
could return just one jpeg image from camera
for grab images, with wget it could return last image from camera for crond for example.
--
RobertoSpadim - 05 May 2005
Follow up
I don't see why this feature is usefull , you already can get an image using a simple php/python/perl script that grabs an image from the jpeg stream.
You an use the one of the related projects :
--
AngelCarpintero - 06 May 2005
if i use php i need a tcp port to web server...and many isp in brazil just support some ports
so making grab just one image could help
and it's just some changes on webcam.c send the first image and disconnect
--
RobertoSpadim - 08 May 2005
No. Check out related project
MjpegProxyGrab.
The Grab part is what you need.
It will deliver one frame grabbed from the webcam port of Motion and output it to standard out.
And by using this on your webserver the client get the picture as normal jpeg on port 80 from any of your cameras.
--
KennethLavrsen - 08 May 2005
but i have just port 80 open for connection
this can check if mode=single:
add in webcam.c
in function webcam_add_client
char c[15];
int ret;
//?mode=single
ret=0;
read(new->socket,&c,5);
if (strncasecmp(c,"GET /",5)==0){
read(new->socket,&c,12);
if (strncasecmp(c,"?mode=single",12)==0)
ret=1;
}
--
RobertoSpadim - 09 May 2005
if i use motion and web server i need two tcp ports.... did see the problem?
i have just port 80 open for connections
--
RobertoSpadim - 14 May 2005
You have Motion and Apache running on the same machine I assume?
The related project
MjpegProxyGrab running as a nph- cgi script on an Apache server does exactly what you need. It serves a single image from any of your camera threads on port 80.
That is exactly what I wrote that little tool for. Only one program can bind to a server port. Two Motion threads cannot bind to port 80. The nph-mjgrab program is initiated by Apache which is bound to port 80. It starts the nph- cgi program which then grabs a single image from the mjpeg stream. This jpeg is sent by Apache directly to the client browser as a request from port 80.
The PHP solutions that people make are maybe more simple but since the image sent to the browser has to be an image tag in a HTML page this will invoke the PHP interpreter in Apache. I believe the C programs are the fastest way which demand the least resources. And it is very easy to compile and setup. It is very basic C with no strange libraries or anything.
Give it a try. Go to
MjpegProxyGrab. Download the mjpeg-proxygrab-1.2.tar.gz and follow the instructions. I use both nph-mjprox and nph-mjgrab on my own web server serving also my mjpeg streams on port 80 and it works great.
--
KennethLavrsen - 14 May 2005
This is essentially a duplicate of the already accepted
FeatureRequest2005x05x02x170207 so I am putting it in accepted but the implementation will most likely be as I suggested in the other request
FeatureRequest2005x05x02x170207.
--
KennethLavrsen - 05 Jul 2005