Supporting Axis IP cameras through VAPIX
I love my Axis IP camera. Feature wise it is very rich, but my favorite feature isn’t one of the external capabilities such as sound, infrared, or PTZ (pan, tilt, zoom). Although it must be said, I am begging Axis to add infrared to their M-10 series. That would be awesome.
My favorite feature is what Axis calls VAPIX. VAPIX is a open API developed by Axis Communications to automate all sorts of tasks with an HTTP-based API. This is by far my absolute favorite thing about setting up my cameras. Granted that the regular camera user probably will never take full advantage of this but for a service like Camcloud this is invaluable.
Camcloud can then automate many aspects of camera setup to help automate how things work for the end user and help get their camera up and running in seconds. Recently VAPIX came in handy for a customer support situation. A user asked me to help them setup their Axis M1011-W on their network. No problem, I’ve done this a number of times and can do this blind folded by now. One of the steps was to setup their motion detection window. To do that with your camera you need Java installed to run the motion detection window from Axis. Well this user said no way. Java is too insecure and it will never see the light of the day on my computer! Well…okay. So now what? VAPIX to the rescue!
Every VAPIX call uses a simple HTTP based request such as:
I’m greatly simplifying so check out the AXIS introduction documentation on VAPIX for the full syntax. So let’s take a simple example. Say I wanted to add a user with “viewer” access to my camera. Simple, type this into your browser (substitute the correct IP):
This will automatically create a new user called camcloud with password “foo” and “viewer” access all without going through the web interface to set it up. Cool, huh? Now back to our example of setting up motion detection.
This basically creates a motion detection window the full size of the camera’s field of view. In other words, I was able to give this user specific VAPIX calls she could paste into her browser, completely automating a custom, remote configuration. Awesome stuff.
The not-so-awesome bit is that Axis has deprecated VAPIX for Event and Action services with the latest 5.40.x firmware. This really sucks. Events with VAPIX still work but I imagine they will take it out soon after. VAPIX is quite simple and I believe they are really taking the simple HTTP based API out of the hands of regular users. They have been replaced in favor of a new API that is a WSDL specification. In my mind it is much more complex. At any rate, for now you have a very simple and easy to use interface with VAPIX.