Welcome to the Eagle Eye Networks API. This API makes it simple to add video into your existing app, connect and manage security cameras, and add annotations to existing video. There are plenty of other uses but we'll focus on these for the sake of brevity.
Example 1: Get Access to Devices
The real fun of the Eagle Eye Networks API comes from getting images and video. You will need a user that has been given access to a camera connected to our platform. This can be a user with a camera shared from another account, a user with a test camera provided by Eagle Eye, or it can be a user on your own system you have purchased.
You can get a list of devices you have access to here: Get list of Cameras.
Example 2: Get a Preview Image
For every camera connect, we generate a lower resolution preview image every second (by default, can be changed). This preview image is to provide a low-bandwidth way to casually view cameras. In addition to the preview images, we generate a thumbnail image that is a special preview image that best represents the motion.
Each day, the camera should produce 86,400 preview images (60 x 60 x 24). There will also be 1 thumbnail image per motion event.
You can use the preview images to generate timelapses (examples here and here).
We recomend that you display the thumbnail of an event as a target for the user to click on when they are playing video. This gives the best representation of what will be shown in the video.
You can get a get images from a camera by using the API endpoint documented here: Get Image.
Example 3: Play Live and Recorded Video
The core functionality of any VMS has to be playing video. The Eagle Eye API makes it easy. In fact, it treats live and recorded video as essentially the same API call. Recorded video has a start and end timestamp, while live video uses the 'stream_' keyword as a start and offset for the ending.
Bandwidth priority and usage are automatically managed when requesting video. Most of the time, recorded video will already have been uploaded to the cloud. If not, it will be prioritzed as an "on-demand" upload and be send immediately. Live video is always streamed "on-demand".
Live video and recorded video are send as h.264 video in a FLV container. The FLV container always for easy wrapping the h.264 video from the RTSP stream without transcoding. Recorded video can also be requested as MP4. The requested video will be uploaded to the cloud, transcoded, and then delivered. Requesting video as an MP4 does add latency and is not recommend for applications where the user is waiting to see video.
You can get a get video from a camera by using the API endpoint documented here: Get Video.
Example 4: Get List of Images and Videos
We provide the ability to get a list of images (preview and/or thumbnails) and videos. Using the exact timestamps provided is the fatest way to retrieve assets. Although it is possible to slice into a video clip, using the exact start time is the more efficient.
It is very common to get a list of thumbnail images and a list of videos. The thumbnails allow the user to see the major object in motion while the video can be loaded. We recommend this patern when displaying lists of recorded video.
You can get a get a list of videos from a camera by using the API endpoint documented here: Get List of Videos.
You can get a get a list of images from a camera by using the API endpoint documented here: Get List of Images.
What else can we do with this?
Hopefully these examples help you get start using the Eagle Eye Networks API. There are lots of great apps and services that could benefit from having video.
I hope you found this helpful. If you have any questions please feel free to reach out to us at firstname.lastname@example.org