Skip to content

warren-bank/Android-RTSP-IPCam-Viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Android app to watch RTSP and RTMP video streams; these formats are typical of inexpensive IP security cams.

Background

  • tinyCam PRO by Tiny Solutions LLC
    • is great
    • is the defacto standard for this kind of app
    • is inexpensive ($4 MSRP, occasionally $1 on sale)
    • cons:
      • none
        • this a personal quirk..
          • I prefer to not add Google account(s) to most of my Android devices
  • IP Cam Viewer by Robert Chou
    • has pretty good reviews
    • is the go-to free option for this kind of app
    • available variations:
      • limited functionality w/ ads
        • Basic
          • uses Google's in-app purchase to upgrade
        • Lite
          • uses an unlock code to upgrade
      • full functionality w/o ads
    • cons:
      • size of APK is over 25MB
      • requires a lot of permissions
      • most buttons/features are crippled
        • open a prompt to purchase pro license
      • basic functionality is (imho) not very impressive
  • there are no (good) open-source options

Goals

  • an extremely light-weight open-source app
    • minimal features
    • minimal UI
  • ability to add video streams
    • data structure:
      • required fields:
        • name
        • low-res video stream URL
      • optional fields:
        • high-res video stream URL
        • is enabled?
    • data import methods:
      • manual entry via dialog
      • import via text file in JSON format
  • display of enabled video streams:
    • list view of low-res video streams
    • grid view of low-res video streams
      • number of columns is configurable
    • full-screen view of a single high-res video stream
      • (TBD) ability to zoom/pan
      • (TBD) ability to record to external SD card

Notes

  • when videos are displayed in list/grid views:
    • Android status bar is visible
    • audio is disabled
    • video playback controls are disabled
  • when a video is displayed in full-screen view:
    • Android status bar is hidden
    • audio is enabled
    • video playback controls are enabled

Usage

  • activity: list of all video streams
    • action bar
      • icon: ic_add_video
        • click to add new video stream
      • overflow menu: Open List
        • display all enabled video streams in a single-column vertical list
      • overflow menu: Open Grid (2 col)
        • display all enabled video streams in a two-column grid
      • overflow menu: Open Grid (N col)
        • display a dialog to allow the user to specify the integer value of N
        • display all enabled video streams in a N-column grid
      • overflow menu: Read File
        • display a file chooser to allow the user to specify the path to a JSON file
        • parse the JSON to obtain an ordered list of new video streams
        • append the new video streams to the list of all video streams
      • overflow menu: Exit
        • exit the application
    • any video stream in the list
      • swipe (left or right) to remove
        • permanently deletes record of the video stream
      • drag (up or down) to change ordered position in list
        • modified order is persistent
      • click (single, short) on the checkbox to toggle: enabled
      • click (single, short) on the name to edit
  • activity: list of all enabled video streams
    • any video stream in the list
      • swipe (left or right) to remove
        • temporarily hides the video stream
        • its record is not altered
        • the video stream will be visible once again when the list is recreated
      • drag (up or down) to change ordered position in list
        • modified order is temporary
        • the order of records is not altered
        • the video stream will appear in its original ordered position once again when the list is recreated
      • click (single, long) to toggle: pause/play
      • click (single or double, short) to open in full-screen view
  • activity: grid of all enabled video streams
    • any video stream in the grid
      • click (single, long) to toggle: pause/play
      • click (single or double, short) to open in full-screen view
  • activity: full-screen view of a single video stream
    • video surface
      • click (single, short) to toggle: display of the video playback controls
        • which are automatically hidden after a brief timeout

Screenshots

MainActivity MainActivity MainActivity MainActivity FilePicker ListActivity GridActivity

GridActivity GridActivity VideoActivity

Final release for minSdkVersion:

  • v02.06.00
    • is the final release that supports API 16 (Android 4.1, Jelly Bean)
      • includes AndroidX Media3 1.2.0
  • v03.01.00
    • is the final release that supports API 19 (Android 4.4, KitKat)
      • includes AndroidX Media3 1.4.1
  • v04.01.00
    • is the final release that supports API 21 (Android 5.0, Lollipop)
      • includes AndroidX Media3 1.8.0
  • v05.00.00
    • is the most recent release that supports API 23 (Android 6.0, Marshmallow)
      • includes AndroidX Media3 1.9.0

Credits

Legal

About

Android app to view RTSP and RTMP IP camera video streams.

Resources

License

Stars

Watchers

Forks