Challenge
'victor' is a market-leading suite of hardware and software products developed by American Dynamics (Tyco) and used to manage complex security infrastructure such as surveillance cameras and access-control devices.
In 2016, Tyco hired Instil to develop victor Go, a mobile companion application used to control and stream multiple CCTV camera feeds onto a mobile device.
Project Goals
The aim with victor Go was to provide similar functionality to an existing desktop-only web client. At a bare minimum, it had to support up to 9 concurrent high-definition CCTV camera streams, without any degradation in image quality and without killing the battery stone dead.
Porting the 'victor' web experience to mobile was never going to be a lift and shift - existing RTP/RTSP streaming libraries were found to be highly inefficient on mobile devices, affecting both the number of possible concurrent streams and the battery life. A radical new approach was required - one designed specifically for mobile.
The key goals of victor Go were to:
- Stream recorded and live video with minimal lag time
- View live events on-demand in multiple pane layouts or fixed views
- Control PTZ cameras with intuitive actions standard to smart devices
Approach
The application was built using Xamarin, a highly productive, cross-platform development framework that essentially compiles C# into native code.
The secret sauce behind the app, the trick that enables efficient streaming and decoding of multiple camera feeds, is a bespoke library called Surge - a standalone C++ library that reliably and efficiently streams video content over RTP/RTSP. The library is built on a set of principls borrowed heavily from the world of high performance computing to reduce context switching and increase throughput.
As an aside, Surge is now used heavily in the home automation space, where we work with one of the world's largest home automation companies. It is especially useful in low-power, constrained MCU environments.
Outcomes
- Reduced the overall development effort (and cost) by reusing low-level protocol and application logic across Android and iOS.
- Maximised video decoding efficiency by handing decoding over to the underlying hardware.
- Enabled decoding and streaming of up to 9 camera feeds on both Android and iOS devices.
- Simplified the code base by using one language for the app development (C#) and one language for handling the low-level streaming logic (C++).
Instil’s passion to use their expertise and talent to create a platform that is robust, user friendly and customised to our specific requirements has created an exciting opportunity for our organisation to launch something new and innovative to the marketplace
Anne Gallagher - Director, American Dynamics
More about this client
American Dynamics and Tyco are now part of JCI, is a global company that creates integrated systems for smart cities and communities. We continue to support their innovation ambitions.