VideoServer is an HTTP server dedicated to video. It can send images captured from a camera in real-time or read from a pre-recorded file. It can also relay any other núcleo image source. Three network protocols ca be used to send the images to the client: standard HTTP for a single image, Netscape's HTTP-based server-push mechanism, or a custom (núcleo) UDP-based protocol.
Image services are described by queries such as:
/PROTOCOL/video[?QUERY]
/PROTOCOL/movie/PATH[?QUERY]
/PROTOCOL/relay?src=ENCODED_URI
where PROTOCOL can be grab, push or nudp (nudp is supposed to be used by núcleo applications only, while any HTTP client can request grab or push services).
Any resource requested by a client that does not match one of the forms specified above is treated as the path to a document to be served:
/PATH
This sample configuration file will give you an idea of how videoServer can be customized.
For each request it receives, videoServer runs the notifier program, writing this information on its standard input:
COMMAND ARG\n
http-user: HTTP-USER\n
http-host: HTTP-HOST\n
http-referer: HTTP-REFERER\n
http-user-agent: HTTP-USER-AGENT\n
image-rate: IMAGE-RATE\n
image-size: IMAGE-SIZE\n
image-blur: IMAGE-BLUR\n
image-quality: IMAGE-QUALITY\n
\n
The notifier program is expected to reply with something like:
COMMAND ARG\n
image-rate: IMAGE-RATE\n
image-size: IMAGE-SIZE\n
image-blur: IMAGE-BLUR\n
image-quality: IMAGE-QUALITY\n
\n
In both cases, COMMAND is one of ERROR, GRAB, PUSH, NUDP, SENDFILE or REDIRECT.
See this sample Python notifier for some examples of what the notifier can do.