Skip to content

Potential Features

bp2008 edited this page Mar 7, 2022 · 24 revisions

Potential Features

This page contains lists of features that I am considering or have considered implementing in UI3. This is mostly for my own notes, and should not be taken as a promise about anything.

Planned Features

"Planned Features" are those which I intend to implement some day.

Possible Features

"Possible Features" are those which I may implement eventually, or not. I have no immediate plans to do any of these things.

  • Multiple-server support (making the UI able to connect to other Blue Iris instances like UI2 can).
    • Not likely because it would force backwards compatibility and be a burden for ongoing maintenance.
    • I don't think most people would ever use it.
  • Yes/No dialogs could perhaps respond to 'y' and 'n' and escape keys, and simple confirmation dialogs could respond to enter / escape.
    • Possible interference with hotkeys.
  • Implement a new "Clips" tab that replaces the old "Alerts" and "Clips" tabs
    • Again, this is just brainstorming. I may never implement this.
    • It probably would not contain a live-view frame. Probably not even a small one.
    • The left bar would be gone or replaced with different functionality.
    • Status response.data.alerts number shown as superscript after "Clips" tab title.
    • Utilize alertlist response.data[x].newalerts somehow to indicate which cameras have new alerts.
    • Full page layout with vertical scrolling.
    • Large thumbnails.
    • Group by Camera
    • Group by Day or by Day and Hour.
    • Cameras and/or Days in collapsible sections.
    • Group [Alerts] by Clip. e.g. Show one tile per clip, click the clip tile and see the alerts contained within, if any.
    • Mouse-over preview animations where appropriate.
      • This would be made reasonably efficient by not having a full video stream open at the same time.
    • When playing a clip, the video player would overlay, taking over most or all of the space but without clearing the UI state.
    • UI state should persist when new data is loaded. It has to be designed with this in mind.
    • Such a clip-management UI would require different optimizations than the original clip/alert lists.
    • NOTE FROM UI3 SOURCE - Moved to wiki on 2022-03-07 - Advanced canvas-based clip list viewer. It should use the entire video playback area (maybe hide the left bar too), be zoomable, and very responsive. Navigate by keyboard or click-and-drag with inertia. Clips arranged like a timeline, with thumbnails moving across the screen horizontally (left = older, right = newer) with dotted vertical lines every minute/hour etc. Each camera its own row.

Finished Features

These features, once in a list above, have been completed.

  • Timeline control. Simplified format at first. Maybe show the current day, the last 24 hours, or the currently loaded time range. Selecting a time will scroll the clip list (and begin playback of the most appropriate clip?)
    • Added complexity and screen-space usage, not necessarily useful without multi-clip simultaneous playback because the clip list is already a sort of timeline.
  • Allow an open clip to remain open even if the clip list no longer contains the clip.
    • I don't think this would be very useful, but after building this, it would become easier to generate URLs that open a specific clip.
  • Have a way to generate a UI3 link that points at a specific clip.
  • Single-click in the clip player does play/pause. Double-click enters fullscreen mode. Single-click action only occurs after double-click timer expires unfulfilled. See YouTube player behavior.
  • Dialogs that can use keyboard input should suppress other UI3 hotkeys.
  • Deletion failure for single clips could be handled better.
  • Add URL parameters for loading a camera, group, or fullscreen mode.
    • Fullscreen mode couldn't be triggered by URL parameter, as browsers require user input to trigger the change.
  • Make PTZ presets work better on touchscreens. Including the text box to set preset description on a phone. (android)
  • Implement JSON "users" command as a status panel like the Log panel.
  • Test large dialogs on phones.
  • Fix bug where incorrect stream length info is shown for clips in H.264 mode until the first frame is downloaded.
  • Implement "Copy image URL" with https://clipboardjs.com/
  • Preserve seek position and play/pause state when changing between player modules (N/A for live video).
  • UI Settings dialog.
    • Button to forget saved credentials.
    • Checkbox for: Long press to open context menus (enabling this should disable longpress to set preset, which is available in the context menu anyway). Affects few devices, e.g. samsung smart TV remote control
    • Idle Timeout (minutes). Enabled by default, overridable in local overrides script.
    • Option to force a particular UI scale/size.
    • Hotkey configuration
  • Clicking the speaker icon should toggle volume between 0 and its last otherwise-set position.
  • Throttle rapid clip changes to prevent heavy Blue Iris server load.
  • Throttle rapid camera changes to prevent heavy Blue Iris server load.
  • Play audio for recordings when H.264 streaming is enabled.
    • Add a volume control to the playback controls bar.
  • Solve problem where having webcasting disabled for all groups makes the UI behave like you only have one camera.
  • Show the playback controls in a limited fashion while live viewing.
    • Move the audio volume and Streaming Quality controls to it.
  • Admin login prompt could pass along a callback method, to refresh panels like the server log, server configuration, full camera list, camera properties without the user having to repeat the action that caused the login prompt.
  • H.264 playback pipeline made to honor frame timestamps for rendering.
  • Alert playback should behave like it does in other Blue Iris apps, where Alerts are basically just a bookmark into a clip.
  • Hide UI elements that can't ever be used by the current user.
    • Requires support from Blue Iris, indicating which specific permissions are available to the session.
  • Add a "help" button to the main menu. This would load (in a new tab) a help page that documents various UI3 features.
  • Server-side ptz preset thumbnails that get shared with all users.
    • Requires server-side ptz preset thumbnails before I can even start.
  • Mouseover of clip thumbnail causing it to animate a preview of the clip, as seen in UI2.
    • This requires better support from Blue Iris which will probably never happen. UI2's implementation is very inefficient with server CPU time.

Canceled Features

These features are some that I have considered but decided against.

  • Get rid of the Live View tab and integrate its unique features elsewhere.
    • If I implement the playback controls bar for live view, I can move audio volume and Streaming Quality controls to there.
      • Great for UI consistency -- not having controls in different places on different tabs.
    • The Current Group dropdown already exists on other tabs, albeit with a different label.
      • This being the only way to change groups or view a cycle stream is not the most intuitive thing I've ever come up with.
    • Profile Status and Schedule status could go in the playback controls bar. Not friendly to horizontal scaling.
    • The PTZ controls, Profile Status, and Schedule status could go in a second vertical bar.
      • Huge waste of screen space I think.
    • The PTZ controls, Profile Status, and Schedule status could go in a thick horizontal bottom bar.
      • Huge waste of screen space I think.
    • The Schedule/Profile status could be condensed to small readouts, and the controls moved to the System Configuration dialog
      • Or to a Profile/Schedule dialog.
      • Or to separate Profile and Schedule dialogs.
    • PTZ controls could appear in a minimizable dialog box only when a PTZ camera is selected.
      • Minimize to an icon in the playback controls bar or top bar.
        • Icon should be extremely visible when PTZ controls are available. Bright/colorful, maybe glowing. Dim and low contrast when not available.
    • If I achieve this, and have everything "on one tab" like UI2 has always been, then what? Is it better this way? Do I add things to the top bar now that there is no Live View tab? It already gets really tight on a portrait phone display.
      • One benefit is you don't have to worry about which tab you are on anymore. Tabs only control which list you see.
      • Another benefit: UI consistency. Each function has its place, no duplication of functionality.
      • Downside: Changing cameras would always load a clip/alert list, which is more overhead.
      • Downside: More clutter.
      • Downside: UI layout sucks if you don't have recording access.
        • Speaking of which, a user account without recording access shouldn't have Alerts or Clips tabs, so what will they have? A Live view tab? I thought I just hypothetically removed that.
          • Remove entire concept of tab-based layout, and just treat Alerts/Clips as buttons.
  • Reduce wasted bandwidth by limiting the jpeg refresh rate when the camera's reported frame rate is lower than what we are actually capable of streaming.
    • This is not a common scenario, even on a LAN where bandwidth is abundant. It is particularly unimportant now that Jpeg isn't the only viable streaming option.
  • An alternate layout that automatically loads when the UI has significantly more height than width (e.g. portrait view)
    • This sounds like a lot of work.
  • An alternate layout that eliminates the tabs along the top and instead merges their functionality into one screen like UI2.
    • This sounds like a lot of work.
Clone this wiki locally