Instil was hired by Tyco to develop victor Go, a mobile application used to control remote CCTV cameras and stream live footage over the internet. Go is the companion app for Tyco's market leading victor product - a range of hardware and software components used to manage access control and surveillance devices across wide-area deployments.
Prior to Go, the core victor application server shipped with a browser-based solution to control and monitor multiple, simultaneous high-definition CCTV cameras. Designed purely for the desktop, the browser solution is able to rely upon the increased screen real estate and processing power afforded by the desktop to enable its rich functionality.
The challenge was therefore to replicate this experience onto a mobile device whilst maintaining the functional richness and streaming capabilities of the desktop, including the ability to stream up to 9 high-definition CCTV camera feeds concurrently, without killing the device's battery.
At the core of the Instil solution is Surge that has been designed and tested to reliably and efficiently stream video content over RTP/RTSP. The actual Android and iOS clients were developed using Xamarin, a highly productive, cross-platform development framework that essentially compiles C# into native code.
By combining these technologies we were able to:
- Reduce the overall development effort (and cost) by reusing low-level protocol and application logic across Android and iOS.
- Maximise video decoding efficiency by handing decoding over to the underlying hardware.
- Simplify the code base by using one language for the app development (C#) and one language for handling the low-level streaming logic (C++).
As with all our projects, the development team employed the usual slew of developer tools, including Calabash for automated testing, Jenkins for continuous integration, and a device farm for testing functionality and performance across a range of devices.
For more information on our experiences with Xamarin, please see this blog post.
Key Facts about Surge
- Instil developed Surge in response to a client's need to develop a mobile application capable of streaming up-to 9 concurrent high-resolution CCTV feeds. Designed from the ground up to run on mobile devices, Surge offers unparalleled streaming performance on resource constrained mobile devices. In addition, by offering simple APIs, Surge eliminates the need for users to understand complex streaming protocols, encodings and transports.
- The library has tried and tested bindings for Xamarin - which offer H264 (hardware decoded) and MJPEG support.
- Surge has been built to be highly efficient at handling streaming data, and is focused on environments for handling multiple concurrent streams.
- The premise of the library is to simplify the RTSP / RTP protocols and maximise performance
- Surge offers friending licensing options to suit user needs