As of v0.6.3, we have live view! But I have lots of ideas for enhancements/fixes. Rather than open separate issues for each I'll just list them here for now. PRs happily accepted! Design discussions first are often a good idea for larger things. See the contributing guide for more.
[ ] keep multiple cameras in sync and close to live by (ideally) making small adjustments to playback speed and (when necessary) seeking. This would be a fun project for learning about PID controllers.
[ ] timed automatic retries on WebSocket connection drops. (Right now you have to unselect and reselect the camera.)
[ ] similarly, retry WebSocket connection when coming back from sleep on Android/Chrome. It must not be giving a pause event before terminating the connection, so I always open my phone up to an error message.
[ ] on-screen control (and key shortcut for desktop) for fullscreen mode and hiding the navbar. (on mobile, could also select landscape/portrait)
[ ] more flexible layouts. Currently it's fixed to a 16x9 overall layout with a few possible grids within it (1x1; 2x2; 3x3; "main-plus-five" is 3x3 with one camera spanning 2 rows and columns). I think a better approach would be to automatically add a row/column any time doing so wouldn't shrink the existing ones. So then when I look at it on my phone in portrait mode, I could see two cameras at once without shrinking the existing one. And cameras with a very different aspect ratio than 16x9 don't fit into this grid scheme well. I've rotated my front door camera to be 9x16, and there's a lot of dead space in the grid now. I think there are 3x4 doorbell cameras out there also.
[ ] double-tap/double-click on a camera to go to a solo view and back easily
[ ] better memory of cameras and layouts. like an editable selector and/or bookmarkable URLs. [edit: #193 is in progress—thanks!]
[ ] support switching between main and sub streams. Currently it always uses the sub stream. (See also #119.) Manual switching would be relatively easy. I'd like to also support automatic switching based on display size (vs sub stream size) and available bandwidth. That's trickier to get right, especially with multiple streams going. Another concern is that I'm not sure exactly how in sync the times are on the sub and main stream and if it's possible to do any better. (In general, cameras don't use the same pts base for both streams, don't always provide sender reports with ntp timestamps, don't always correctly use the monotonic clock for the RTP timestamps, step the ntp timestamps, etc. It's a huge, messy problem to come up with some heuristic to make the best of this.)
[ ] digital zoom in on a portion of a camera's stream (for 4k cameras especially)
[ ] integrate with playback—long-term, I don't want a separate live view vs scrub bar (#32) area of the UI but one integrated system
[ ] fix/work around weird Android/Chrome behavior where sometimes the whole tab will go black on selecting a stream then appear to be working fine when selecting a tab. I suspect this isn't Moonfire NVR's bug, especially since it hasn't happened when I use remote debugging, but there's probably some possible workaround for it.
[ ] cosmetic improvements. eg in the current design the camera selector shrinking until you tap/hover on a camera's grid square, the layout selector having icons instead of names like "main-plus-five". Nice-looking controls also for the changes suggested above.
As of v0.6.3, we have live view! But I have lots of ideas for enhancements/fixes. Rather than open separate issues for each I'll just list them here for now. PRs happily accepted! Design discussions first are often a good idea for larger things. See the contributing guide for more.