* Do not show the loader during recordings api call
Showing the loader during the recordings API call will rerender the recordings list and rerenders the video player
* Fix defauting to 0 seekSeconds if recordings results are missings
* test refactor process stats
* Update util.py
* bugfix
* black formatting
* add missing processes field to StatsTrackingTypes class
* fix python checks and tests...
* use psutil for calcilate cpu utilization on get_cpu_stats
* black...black...black...
* add cpu average
* calculate statiscts for logger process
* add P-ID for other processes in System.jsx
* Apply suggestions from code review
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* make page beautiful again :)
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Organize event table to be more generalized
* Add appropriate fields to data
* Move tracked object logic to own function
* Add source type to event queue
* rename enum
* Fix types that are used in webUI
* remove redundant
* Formatting
* fix typing
* Rename enum
* Add support for ptz commands via websocket
* Fix startup issues
* Fix bugs
* Set config manually
* Add more commands
* Add presets
* Add zooming
* Fixes
* Set name
* Cleanup
* Add ability to set presets from UI
* Add ability to set preset from UI
* Cleanup for errors
* Ui tweaks
* Add visual design for pan / tilt
* Add pan/tilt support
* Support zooming
* Try to set wsdl
* Fix duplicate logs
* Catch auth errors
* Don't init onvif for disabled cameras
* Fix layout sizing
* Don't comment out
* Fix formatting
* Add ability to control camera with keyboard shortcuts
* Disallow user selection
* Fix mobile pressing
* Remove logs
* Substitute onvif password
* Add ptz controls ot birdseye
* Put wsdl back
* Add padding
* Formatting
* Catch onvif error
* Optimize layout for mobile and web
* Place ptz controls next to birdseye view in large layout
* Fix pt support
* Center text titles
* Update tests
* Update docs
* Write camera docs for PTZ
* Add MQTT docs for PTZ
* Add ptz info docs for http
* Fix test
* Make half width when full screen
* Fix preset panel logic
* Fix parsing
* Update mqtt.md
* Catch preset error
* Add onvif example to docs
* Remove template example from main camera docs
* Create timeline table
* Fix indexes
* Add other fields
* Adjust schema to be less descriptive
* Handle timeline queue from tracked object data
* Setup timeline queue in events
* Add source id for index
* Add other fields
* Fixes
* Formatting
* Store better data
* Add api with filtering
* Setup basic UI for timeline in events
* Cleanups
* Add recordings snapshot url
* Start working on timeline ui
* Add tooltip with info
* Improve icons
* Fix start time with clip
* Move player logic back to clips
* Make box in timeline relative coordinates
* Make region relative
* Get box overlay working
* Remove overlay when playing again
* Add disclaimer when selecting overlay points
* Add docs for new apis
* Fix mobile
* Fix docs
* Change color of bottom center box
* Fix vscode formatting
* Add config fields
* Clean up camera default values
* Set recordings timezone with config if available
* Adjust for timezone config
* Cleanup setting of the timezone
* Don't fail on MSE check iPad
* Fix MSE check for birdseye
* Add docs
* Fix test
* System page: various minor UI tweaks
* Be consistent with capitalisation
* Change detection start epoch to running/idle
* Remove detection start column entirely
* Show jsmpeg when restream is disabled
* Fix debug button status not showing correctly when switching cameras
* Change label to make clear only motion masks are shown
* [API] filter for favorite events
* Added /api/events filter for favorite (retain_indefinitely) events
* New Star button to filter for favorite events on the Events page
* fix python formatting
* keep Events favorite button to right side
* Try using RTSP for restream
* Add ability to get snapshot of birdseye when birdseye restream is enabled
* Write to pipe instead of encoding mpeg1
* Write to cache instead
* Use const for location
* Formatting
* Add hardware encoding for birdseye based on ffmpeg preset
* Provide framerate
* Adjust args
* Fix order
* Delete pipe file if it exists
* Cleanup spacing
* Fix spacing
* Add sub filter for monaco editor
* Don't include files for unused languages
* Move necessary files and cleanup build
* Update sub filter for new location
* Still need to include default editor worker
* Fix error when model already exists
* Show All and Solo selection buttons for MultiSelect.
Similar to previous behavior of viewing events for single camera with 1 click, or All.
* Fix visual bug with MultiSelect when selecting similar named options.
eg. options like frontdoor, frontside, backdoor, etc
* fix key prop for lint
* Change MultiSelect onSolo to onSelectSingle
* cosmetic changes on MultiSelect
* Different look for SelectSingle buttons
* Show All button is aligned with the items below it, no matter the popup size
* MultiSelect ShowAll unfocused by default
* Use prewrap so vainfo output appears normalized
* Move copy button to top so user doesn't need to scroll to copy logs
* Show calculating if no value for stream bandwidth
* Write files in UTC and update folder structure to not conflict
* Add timezone arg for events summary
* Fixes for timezone in calls
* Use timezone for recording and recordings summary endpoints
* Fix sqlite parsing
* Fix sqlite parsing
* Fix recordings summary with timezone
* Fix
* Formatting
* Add pytz
* Fix default timezone
* Add note about times being displayed in localtime
* Improve timezone wording and show actual timezone
* Add alternate endpoint to cover existing usecase to avoid breaking change
* Formatting
* Log all services to RAM
* Gracefully handle shutdown
* Add logs route
* Remove tail
* Return logs for services
* Display log chooser with copy button
* show logs for specific services
* Clean up settings logs
* Add copy functionality to logs
* Add copy functionality to logs
* Fix merge
* Set archive count to 0
Co-authored-by: Felipe Santos <felipecassiors@gmail.com>
* Add raw config endpoint
* Add config editor
* Add code editor
* Add error
* Add ability to copy config
* Only show the save button when code has been edited
* Update errors
* Remove debug config from system page
* Break out config saving steps to pinpoint where error occurred.
* Show correct config errors
* Switch to monaco editor
* Adjust UI colors and behavior
* Get yaml validation working
* Set success color
* Get storage output stats for each camera
* Add storage route
* Add storage route
* Add storage page
* Cleanup
* Add stats and show more storage
* Add tests for mb abbrev util fun
* Rewrite storage logic to use storage maintainer and segment sizes
* Include storage maintainer for http
* Use correct format
* Remove utils
* Fix tests
* Remove total from equation
* Multiply by 100 to get percent
* Add basic storage info
* Fix storage stats
* Fix endpoint and ui
* Fix formatting
* Add ffprobe endpoint
* Get ffprobe for multiple inputs
* Copy ffprobe in output
* Fix bad if statement
* Return full output of ffprobe process
* Return full output of ffprobe process
* Make ffprobe button show dialog with output and option to copy
* Add driver names to consts
* Add driver env var name
* Setup general tracking for GPU stats
* Catch RPi args as well
* Add util to get radeontop results
* Add real amd GPU stats
* Fix missed arg
* pass config
* Use only the values
* Fix vram
* Add nvidia gpu stats
* Use nvidia stats
* Add chart for gpu stats
* Format AMD with space between percent
* Get correct nvidia %
* Start to add support for intel GPU stats
* Block out RPi as util is not currently available
* Formatting
* Fix mypy
* Strip for float conversion
* Strip for float conversion
* Fix percent formatting
* Remove name from gpu map
* Add tests and fix AMD formatting
* Add nvidia gpu stats test
* Formatting
* Add intel_gpu_top for testing
* Formatting
* Handle case where hwaccel is not setup
* Formatting
* Check to remove none
* Don't use set
* Cleanup and fix types
* Handle case where args is list
* Fix mypy
* Cast to str
* Fix type checking
* Return none instead of empty
* Fix organization
* Make keys consistent
* Make gpu match style
* Get support for vainfo
* Add vainfo endpoint
* Set vainfo output in error correctly
* Remove duplicate function
* Fix errors
* Do cpu & gpu work asynchonously
* Fix async
* Fix event loop
* Fix crash
* Fix naming
* Send empty data for gpu if error occurs
* Show error if gpu stats could not be retrieved
* Fix mypy
* Fix test
* Don't use json for vainfo
* Fix cross references
* Strip unicode still
* await vainfo response
* Add gpu deps
* Formatting
* remove comments
* Use empty string
* Add vainfo back in
* Add option for mqtt config
* Setup communication layer
* Have a dispatcher which is responsible for handling and sending messages
* Move mqtt to communication
* Separate ws communications module
* Make ws client conform to communicator
* Cleanup imports
* Migrate to new dispatcher
* Clean up
* Need to set topic prefix
* Remove references to mqtt in dispatcher
* Don't start mqtt until dispatcher is subscribed
* Cleanup
* Shorten package
* Formatting
* Remove unused
* Cleanup
* Rename mqtt to ws on web
* Fix ws mypy
* Fix mypy
* Reformat
* Cleanup if/else chain
* Catch bad set commands
* Move each camera to a separate card and show per process info
* Install top
* Add support for cpu usage stats
* Use cpu usage stats in debug
* Increase number of runs to ensure good results
* Add ffprobe endpoint
* Get ffprobe for multiple inputs
* Copy ffprobe in output
* Add fps to camera metrics
* Fix lint errors
* Update stats config
* Add ffmpeg pid
* Use grid display so more cameras can take less vertical space
* Fix hanging characters
* Only show the current detector
* Fix bad if statement
* Return full output of ffprobe process
* Return full output of ffprobe process
* Don't specify rtsp_transport
* Make ffprobe button show dialog with output and option to copy
* Adjust ffprobe api to take paths directly
* Add docs for ffprobe api
* Adding clip length in s to Events View
* added function returning human readable length
* switched to date-fns functions for formatting
* fixed switched start/end time, changed length to duration
* Pull go2rtc dependency
* Add go2rtc to local services and add to s6
* Add relay controller for go2rtc
* Add restream role
* Add restream role
* Add restream to nginx
* Add camera live source config
* Disable RTMP by default and use restream
* Use go2rtc for camera config
* Fix go2rtc move
* Start restream on frigate start
* Send restream to camera level
* Fix restream
* Make sure jsmpeg works as expected
* Make view rspect live size config
* Tweak player options to fit live view
* Adjust VideoPlayer to accept live option which disables irrelevant controls
* Add multiple options from restream live view
* Add base for webrtc option
* Setup specific restream modules
* Make mp4 the default streaming for now
* Expose 8554 for rtsp relay from go2rtc
* Formatting
* Update docs to suggest new restream method.
* Update docs to reflect restream role
* Update docs to reflect restream role
* Add webrtc player
* Improvements to webRTC
* Support webrtc
* Cleanup
* Adjust rtmp test and add restream test
* Fix tests
* Add restream tests
* Add live view docs and show different options
* Small docs tweak
* Support all stream types
* Update to beta 9 of go2rtc
* Formatting
* Make jsmpeg the default
* Support wss if made from https
* Support wss if made from https
* Use onEffect
* Set url outside onEffect
* Fix passed deps
* Update docs about required host mode
* Try memo instead
* Close websocket on changing camera
* Formatting
* Close pc connection
* Set video source to null on cleanup
* Use full path since go2rtc can't see PATH var
* Adjust audio codec to enable browser audio by default
* Cleanup stream creation
* Add restream tests
* Format tests
* Mock requests
* Adjust paths
* Move stream configs to restream
* Remove live source
* Remove live config
* Use live persistence for which view to use on each camera
* Fix live sizes
* Only use jsmpeg sizes for jsmpeg live
* Set max live size
* Remove access of live config
* Add selector for live view source in web view
* Remove RTMP from default list of roles
* Update docs
* Fix tests
* Fix docs for live view modes
* make default undefined to avoid race condition
* Wait until camera source is loaded to avoid race condition
* Fix tests
* Add config to go2rtc
* Work with config
* Set full path for config
* Set to use stun
* Check for mounted file
* Look for frigate-go2rtc
* Update docs to reflect webRTC configuration.
* Add link to go2rtc config
* Update docs to be more clear
* Update docs to be more clear
* Update format
Co-authored-by: Felipe Santos <felipecassiors@gmail.com>
* Update live docs
* Improve bash startup script
* Add option to force audio compatibility
* Formatting
* Fix mapping
* Fix broken link
* Update go2rtc version
* Get go2rtc webui working
* Add support for mse
* Remove mp4 option
* Undo changes to video player
* Update docs for new live view options
* Make separate path for mse
* Remove unused
* Remove mp4 path
* Try to get go2rtc proxy working
* Try to get go2rtc proxy working
* Remove unused callback
* Allow websocket on restrea dashboard
* Make mse default stream option
* Fix mse sizing
* don't assume roles is defined
* Remove nginx mapping to go2rtc ui
Co-authored-by: Felipe Santos <felipecassiors@gmail.com>
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
* Add tabs to show snapshot or thumbnail as part of event details,
even if event has a clip available.
* Add ability for TextTab to render as disabled.
* Use default names so filters are more clear
* Add endpoint to get list of sub labels inside DB
* Fix crash on no internet
* Cleanups for sub_label http
* Add sub label selector to events UI
* Add event filtering for sub label
* Formatting files
* Reduce size of filters to fit on one line
* Add handler for tests
* Remove unused imports
* Only show the sub labels filter when there are sub labels in the DB
* Fix tests
* Use distinct instead of group_by
* Formatting
* Cleanup event logic
* Add options for reordering and hiding cameras selectively
* Add newline at end of camera file
* Make each camera for birdseye togglable as well
* Update names to be less ambiguous
* Update defaults
* Include sidebar change
* Remove birdseye toggle (will be added in separate PR)
* Remove birdseye toggle (will be added in separate PR)
* Remove birdseye toggle (will be added in separate PR)
* Update sidebar to only sort cameras once
* Simplify sorting logic
* Add sub label to model and set / delete funs
* Add migrations for sub label
* Tweaks to API and model
* Show sublabel if available
* Cleanups
* Update docs
* Show person in UI title
* Fix typo and don't fail on no json
* Transfer sub labels for in progress events
* Remove sublabel reset
* Remove person only check
* Make default null
* Update docs and formatting
* Make default null
* Make nullable in migration
* Undo null
* Update model to accept null
* Update migration to accept null
* Don't set to default values
* Remove redundant defaults and update http logic
* Only need a single route
* Enforce 20 character limit in http
* Update docs to mention 20 character limit
* Cleanup
* Separate insert and update to make sure updated values are retained when event ends
* Use insert instead of replace
* Remove redundant if and have should_update_db include clip or snapshot requirement.
* Added object thumbnail def and made camera tracked objects use it.
* Add object snapshot def
* Remove documentation for best.jpg
* Update docs for label thumbnail and snapshot defs