1. An interface kernel comprising: a video capture module that receives images from one or more video sources, a video recording module that records images to one or more storage devices, a video playback module that plays back images from the one or more storage devices, an event notification module that provides one or more notifications to an external notification system based on a detection of an event based on one or more of the images, a management module that uses a predefined set of rule-based inferences to control one or more of the modules of the kernel, independently of commands received by the application program interface from the application program; and a rule generator that provides an interface to a user to define rules for the predefined set of rule-based inferences; and an application program interface that is independent of rule generator interface and that accepts commands from an application program to control each of the video capture, video recording, video playback, event notification, and management modules, and the rule generator wherein at least some of the video capture module, the video recording module, the video playback module and the event notification module have different communication standards at the video application level and the application program interface of the interface kernel provides a single, unified interface for users interfacing with the video capture module, the video recording module, the video playback module, the event notification module, the management module and the rule generator and where the control options of the application program interface are defined to be independent of specific commands required by the particular recording device to effect these options, thereby relieving a developer of the application program from the task of designing, testing, and verifying each interface to the recording devices, and from the task of integrating compression algorithms with each recording function.