Receive Geotagged Streams From Your Phone

Luxriot EVO mobile application has many new exciting features like push event notifications, edge recording, live streaming using the phone's camera, never mention widgets and Chromecast support. Steady streaming from the phone's camera, together with the in-app edge recording, made the mobile application especially useful for law enforcement, allowing to utilize smartphones as body-worn cameras. Above and beyond, phones running Luxriot EVO Mobile can be used as dashcams for fleet vehicles - trucks, taxis, public transportation - as a simple and cost-effective vehicle tracking solution.

Once streaming from the device camera was introduced, one of the most frequent requests was to add geotags for that video stream. Indeed, we geotag pictures, tweets, posts in social media, so why not make the built-in GPS facilities of your phone useful for security?

By the end of reading this how-to, you will learn the benefits of connecting your smartphone to your EVO server and know how to make the most of it.

How Does It Work?

Geographical metadata - latitude, longitude, and altitude - are retrieved via location services of the mobile device, and attached to the video stream, which is being transmitted to a Luxriot EVO server. Thus, the location is associated with footage, serving as solid proof of where the video was shot.

On the EVO server, the GPS data are displayed with the live video and also saved in the archive if recording is enabled for the target stream. Also, you can create a geo map on your EVO server and enjoy an interactive device label displaying its current position.

Set Up App

Take a smart device running Android 4.4+ or iOS 8.2+ and install Luxriot EVO Mobile app, add your server details and make sure you can connect :) Then, go back to the app settings: there are a couple of things to be adjusted here:

  • enable the app to use device camera (in some Android versions, this may require that you go to app permissions and allow the app to use device camera(s) and microphone),
  • choose video resolution and enable audio, if you want to have the stream with sound,
  • enable GPS coordinates to be sent to the EVO server.

If you are doing this inside an EVO Global system, make sure to add the EVO Global server connection details in the app, even if you are going to register your phone on one of the recording servers. The management server is clever, it will redirect the streams automatically.

Mobile app settings that enable streaming and geolocation

Now that your app is ready to stream, let us apply a bit of configuration on the server side so that it can accept the stream and treat it in the right way.

Set Up Server

Connect to your Luxriot EVO server via Console application and add a new device manually, with its model set to Generic External Source - this is a special type reserved for the mobile app cameras. If you are using an EVO Global system with remote recording servers, you can add the device directly to a recording server, provided that your phone can connect directly to it - either over WiFi or 3G/4G. Save the device and note the generated code: you will be asked to enter it in the app, as described further.

Add mobile app as a device on the recording server

If you want to see a mobile device marker on the map with its real-time location, a geo map will let you have it:

  • create a geo map for your desired location,
  • drop a camera marker onto it: this initial location will be used as default when no GPS coordinates are received from the target device,
  • assign your phone's channel to the marker and enable location tracking,
  • optionally, you can change the marker icon to something you like and also change its color.

Later, in the EVO Monitor application, the marker will move as the streaming device will change its location; if the device does not transmit (is offline) or does not have GPS enabled, the marker will stay on the position you defined when creating the map.

Mobile phone marker on a geo map

The server configuration is now ready, too, but do not close the Console application yet. Get back to the app, connect to the server and tap the Stream Camera option under application settings, then tap the Play button in the bottom right corner, as suggested. You will be asked for a token: enter the code from the device properties in Console (as shown on the snapshot with device configuration above). Be careful with your O's and zeroes when typing! You can go to the device settings and reset the code anytime if it looks too ambiguous.

Start Streaming

After you enter the token, two things will happen: the code in the device settings will change to IMEI, indicating that your device has paired with the server, and the phone will start streaming the video to the server. (Tap the Play button again to stop, tap it twice to retry streaming if something went wrong).

Live streaming screen in the mobile application

Time to connect to the same server from the EVO Monitor application to see the results of your work:

  • incoming live stream from your phone now has GPS coordinates overlaying the video,
  • the geo map has an interactive moving marker, which displays the phone's location accurately and can be also double-clicked to make the target channel pop up.

Live stream and device marker have GPS coordinates

Are GPS Data Recorded, Too?

Geolocation coordinates are saved together with the received live stream if you enable recording for the video stream of the phone's channel. To do that, simply open channel properties in EVO Console and set the main stream recording configuration to the built-in Continuous recording configuration (or any other similar configuration of your own).

Recording settings for the mobile app stream

Thus, when you view the recorded stream in either instant or regular archive playback mode, the overlaying GPS data will be there, just as it is for the live stream.

Now you can go ahead and try this out with all your smart devices - just make sure not to interfere with anyone's privacy!

P.S. Yes, we are © OpenStreetMap contributors :)