A few years ago, we at TaraSpan developed our first ever IP camera integrations of some major brands for a Video surveillance solution. You may think that this is a complex task, and indeed it is for many brands. You need a SDK and knowledge of some programming language, and you need to read the documentation, and in most cases one still needs to use vendor provided sample code even before writing the first line of code.
Axis cameras proved to be an exception. You don’t need to be an expert developer to integrate Axis cameras. Calling an API is like typing a link in the browser. For example, to capture current image from the camera you simply call http://cameraip/axis-cgi/jpg/image.cgi . Now isn’t that pretty easy. You can do most of the things via such ‘commands’. Get Audio, get motion events, configure region of interests for motion monitoring, do PTZ, control IO ports.
Now, I agree that all vendors provide such APIs, however where VAPIX shines is in its neatly documented APIs named VAPIX®. It is extremely detailed, but not verbose. This ‘to the point’ documentation is a joy for the developers. A simple google search ‘Axis camera API’. will take you to the freely available documentation. Moreover, you will find the APIs design very intuitive, no surprises. For example, to get the JPEG stream you need to fire http://cameraip/axis-cgi/mjpg/video.cgi and to get the stream at the resolution of 320×240, it is http://cameraip/axis-cgi/mjpg/video.cgi?resolution=320×240.
One of the things that developers normally struggle with is handling ‘model’ specific deviations. Each IP camera model has it’s own set of capabilities and limitations. For example, a model may support only a certain set of resolutions. Here too Axis makes it really easy. Instead of documenting them in the main protocol document, they are documented in model specific ‘Release Notes’ and within a section “Application Developer Information”. Here you get (again) a thorough information about the capabilities, limitations and aberrations.