Skip to content
/ ojo Public

Ojo is a basic RTSP IP Camera surveillance wall for Android

License

Notifications You must be signed in to change notification settings

penguin86/ojo

Repository files navigation

Ojo Logo

Ojo: the FLOSS RTSP Surveillance camera viewer for Android

Get it on F-Droid

(Always prefer F-Droid build, when possible).

Ojo is a basic IP Camera surveillance wall. IP camera's RTSP streams are added via its url and shown in the classic tile configuration. The number of tiles is automatically choosen based on the number of configured cameras: a single camera goes full screen, adding more cameras the app switches to a grid view: 2x2, 3x3, 4x4 and so on. The maximum number of cameras is determined by the device's capabilities.

The stream decoding and rendering is demanded to VLC's library: without their effort this app wouldn't be possible. This app was specifically developed for F-Droid, as I couldn't find any open source RTSP vievers in the main repository.

The app can be opened deeplinking to url ojo:https://view. To open the app with focus on a specific camera, you can use an intent (it.danieleverducci.ojo.OPEN_CAMERA) to specify which camera you want to view. The extra argument it.danieleverducci.ojo.CAMERA_NAME will open the app with the camera with the name you specified while adding the camera. The extra argument it.danieleverducci.ojo.CAMERA_NUMBER starting at 1 could be used as well, if you have multiple cameras with the same name. See belows example how to use the intent. The flag (-f 268468224) could be useful if you want to switch to an other camera while the app is running.

adb -s <YOUR_DEVICE> shell am start -a it.danieleverducci.ojo.OPEN_CAMERA -f 268468224 --es it.danieleverducci.ojo.CAMERA_NAME <YOUR_CAMERA_NAME>
adb -s <YOUR_DEVICE> shell am start -a it.danieleverducci.ojo.OPEN_CAMERA -f 268468224 --es it.danieleverducci.ojo.CAMERA_NUMBER <YOUR_CAMERA_NUMBER>

Screenshot 1 Screenshot 2 Screenshot 3

Contributors

  • Thanks to brenard for the new grid sizing method
  • Thanks to davquar for the fullscreen compatibility fix on Android 11
  • Thanks to jayfan0 for the first deep link implementation
  • Thanks to free-bots for the selection border on Android TV, intents for direct camera access and leanback support