Issue
The client needs a system in a remote location to monitor a construction project. By remote, there were some logistical reasons why executives couldn’t visit the sites without taking multiple days out of their schedule. Also, components at the site could be stolen, and monitoring could aid in the recovery and security of data. Internet access was limited, Starlink didn’t exist, and a radio-based internet connection was utilized. Cameras were placed at a range from the main network
Solution
Internet speed wouldn’t allow real-time video to transmit, so we settled on taking a series of stills and using maximal compression on top of the already efficient JPEG encoding system. Stills would be packaged up and transmitted to a web server on the AWS cloud system and navigable by a custom website. Client was pleased and the cameras provided insight and accountability to the project.
Technical Details
Hardware
While our team didn’t install or pick the camera and network. We did build the eventual dedicated server. Project hardware consisted of the following:
- 10MP Arecont cameras
- UniFi Nanostation bridges
- Solar panel/inverter with battery at each camera
- Initially on Windows Server
- MicroITX server
Software
SnapService: We build custom software to take full-res images from the cameras at specific intervals – 15 minutes typically, but it was adjustable. This was initially built as a Windows service with C#, but later rebuilt as a Java service running on Linux.
Packager: Built custom data files that are 7-zipped with metadata and image data about each image, packaged and stored into a folder every two hours.
Unpackager: Java software to unpack the data, move the JPG into the proper folder structure on the website, and insert metadata about the image into a MySQL database. Source files are removed after a successful process by an ack file sent back to the snapservice system.
Website: A PHP-based web interface that allowed authenticated users to view cameras at specific dates and times. Eventually added the ability to export files as a time-lapse video for review.
Sync System: Used a third-party utility to sync package folders to the S3 bucket.

