Video Streaming and Mobile Surveillance

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.

Challenge

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.

Approach

At the core of the Instil solution is a bespoke C++ streaming library 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.

Technologies

  • Android
  • iOS
  • Xamarin
  • C#
  • C/C++
  • RTSP/RTP
  • Automation Testing (Calabash / Test Droid)
victor Go App