# Scrypted NVR Plugin

NVR plugin for Scrypted.

**This plugin is currently only intended for local RTSP cameras. Cloud cameras, such as Ring, Google, and Arlo may work but are not supported.**
 
 **New Scrypted users are encouraged to integrate and verify their cameras with Scrypted before using the NVR plugin**.

## Purchase and Manage Subscription

This Scrypted NVR Plugin is in a *paid* plugin. A [live demo server](https://demo.scrypted.app/#/demo) and free trial is available to test the product.

1. Visit to the [billing portal](https://billing.scrypted.app) and login to purchase a subscription. Return to the billing portal at any time to upgrade or cancel the subscription.
2. Login to the Scrypted NVR Plugin using the *same login account* from the billing potral. The plugin's `Login` button can be found at the top of the Scrypted NVR plugin page within the Scrypted Management Console.

Scrypted NVR on Mac and Windows must [Install](https://docs.scrypted.app/desktop-application.html) or [Migrate](https://docs.scrypted.app/migration.html#migrating-to-the-desktop-application) to the Desktop Application.

<br/>

## Installation

<br/>
<div style="color: red;">
Please refer to the Camera Setup steps in the docs for optimal performance, even if the Camera has already been added to Scrypted.
</div>

<br/>

Installation documentation for the NVR can be found on the primary [Scrypted Documentation](https://docs.scrypted.app/scrypted-nvr/installation.html) site, and contains the guide for [adding cameras](https://docs.scrypted.app/scrypted-nvr/installation.html#camera-setup), [configuring recording storage](https://docs.scrypted.app/scrypted-nvr/recording-storage), [cloud access](https://docs.scrypted.app/scrypted-nvr/apps.html), and [downloading the mobile apps](https://docs.scrypted.app/scrypted-nvr/apps.html).

<br/>

## Discord

Help and support can also be found on the [Scrypted Discord #nvr Channel](https://discord.gg/YNNSczz2fE).

*Optional/Tip: If you're a member of the Scrypted Discord server, you can use [this link](https://discord.com/oauth2/authorize?scope=identify&client_id=1072990480553496710&response_type=code) to get an exclusive role as an NVR Subscriber.*

<br/>

## Home Assistant Cards

Scrypted NVR provides [Home Assistant cards](https://docs.scrypted.app/home-assistant.html).



<br/><br/><details>
<summary>Changelog</summary>

### 0.12.57

publish stable


### 0.12.56

fix infinite read loop on missing video segment


### 0.12.51

update deps
update deps
cleanup
fix camera specific decoder default not falling back to global default


### 0.12.50

publish beta


### 0.12.48

missing file
publish beta


### 0.12.47

add debounced logging for stationary/clipped object filtering
cleanup
fix zones causing truncated and lsot detection boxes
cleanup
do best effort analysis on excessive motion boxes
fix bug where input dimension clipping was preventing motion tagging
hide/disable label settings
refactor face embeddings to general purpose embeddings
wip label anything
fix potential race condition in object movement tracking


### 0.12.45

use iso string on both


### 0.12.44

add mp4 metadata


### 0.12.43

fix nvr plugin first run sign in on desktop apps


### 0.12.42

fix detection clip check, be more discerning on dataset uploads


### 0.12.41

make thumbnails bypass hotlink checks


### 0.12.40

implement backoff


### 0.12.38

publish beta


### 0.12.37

working dataset uploader
training from doorbells too
rename
rename
add setting to submit detection samples for training models
more settings shuffling
move settings around
remove inline settings for detector
notification exclusion zones


### 0.12.36

skip last-will-testament if no notifiers


### 0.12.35

make some settings inline


### 0.12.34

make sure user has signed up through billing portal before allowing plugin login


### 0.12.33

improve browser identification in managemnet console
add immediate notification setting to app ui


### 0.12.28

not beta


### 0.12.26

add call to action to give me more money
re-add Immediate Notifications


### 0.12.24

refactor message snoozing
remove immediate notifications setting


### 0.12.23

dont use text notifications for person if familiar person notification is disabled
cleanup


### 0.12.21

fix Maybe: Vehicle weirdness
use deterministic tag names to collapse known vs unknwon
refactor to use RecordingUnavailableError
fixup privacy mode recordings to go in new privacy section


### 0.12.20

wip linked buttons
remove debug code


### 0.12.18

offline setting description
make online/offline notification critical optional


### 0.12.17

beta


### 0.12.16

fix unhandled rejection, publish beta


### 0.12.14

remove clinerules
offline alerts setting
switch to rollup
wip rollup
add server offline notifications


### 0.12.12

autoconfigure button on discovered cams
fix periodic event reel cjank


### 0.12.11

popup can go into scrypted inside ha now


### 0.12.10

make web components respect system theme by default


### 0.12.9

hide timeline on popup cards if not recording


### 0.12.8

improve event icon filtering


### 0.12.6

fix express sendFile caching breaking cards
prevent two column timeline by default when horizontal


### 0.12.5

fixup popup card size


### 0.12.4

events popup too


### 0.12.3

event carousel popup


### 0.12.2

ha popup


### 0.12.1

remove camera grid card from web components. fix css import.


### 0.11.148

fix event reel margins


### 0.11.147

fix event reel click


### 0.11.145

fix card live property


### 0.11.144

release new cards


### 0.11.142

wip webcomponents, fix ha card regression


### 0.11.141

remove debug code


### 0.11.139

ha card cleanups


### 0.11.137

fix generator cleanup
fix image similarity search


### 0.11.136

update ai notifications to use new clip detection


### 0.11.135

terminate stream on webcodec buffer overflow


### 0.11.134

add none value to ha eventreel click


### 0.11.133

beta


### 0.11.132

watch for packet generator backup
wip: move clip into own detection
more targeted package detection fix
reorder teardown to do frame gen last


### 0.11.131

fix potential final package detection failure


### 0.11.130

fix clip from clobbering face embeddings and ttagging motion


### 0.11.128

fix playback rate buttons and scroll interactions


### 0.11.127

fix webcodec load recording jitter


### 0.11.126

remove extremely noisy debug log


### 0.11.125

fix h264 nal splitting quirk on safari


### 0.11.124

readd support for node 20 cause people never update


### 0.11.123

implement scrub animation cancelation


### 0.11.121

disable auto scrub to/from live, will be used automatically if scrolling


### 0.11.120

add seamless scrub to/from live
add supprot for live stream via webcodec


### 0.11.119

readd older builds of libav
working ffmpeg 8
use correct audio session type for 2 way


### 0.11.117

publish beta


### 0.11.116

fix macbook trackpad zoom gestures


### 0.11.114

fix safari decoder buffering, so pretty


### 0.11.112

further scrub queue management
scrub stitch fixes
wip scrub cleanups
filter rtcp when searching for keyframes


### 0.11.111

fix unifi h265 scrubbing
compute aspect ratio from camera snapshot resolution


### 0.11.109

implement webcodec client size feedback and quality control
wip quality change plubming
remove legacy generator


### 0.11.108

add clock/sample-rate to audio packets
improve webcodec startup latency


### 0.11.107

add Access All Camera option


### 0.11.106

fix playback start after first keyframe rather than before


### 0.11.105

better pause state management during scrub


### 0.11.104

more scrub cleanups


### 0.11.102

beta


### 0.11.101

implement ff scrub
fix scrub promise cleanup
remove first prototype webcodec code
remove first prototype webcodec code
fix webcodec playback time indicator
cleanup
fix 2 stream scrub, remove debug code
working new scrubber
fix keyframe search, wip new scrub animation
improve frame flushing for faster seek
wip webcodec rewrite
wip webcodec rewrite
wip webcodec rewrite
wip webcodec rewrite
wip webcodec rewrite
wip webcodec rewrite
ensure codec information prior to keyframe


### 0.11.100

fix h265 webcodec slice aggregation
fix "how did this ever work" bug in beta


### 0.11.99

publish ha dash image fix


### 0.11.98

move using-holder to open source
fix disabling webcodec flag


### 0.11.97

reverse flag


### 0.11.96

release webcodec behind flag


### 0.11.95

seek+audio fixes
cleanup
cleanup
potential fix for ultra wide motion processing
fix timeline advancement and other regressions


### 0.11.94

wip webcodec recording playback
fixup app build


### 0.11.93

fix embeddings bloat regression


### 0.11.92

wip webcodec recording playback
wip mp4 async generator conversion
implement per camera decoder


### 0.11.91

wip per camera object detection decoder


### 0.11.88

working saveable custom layouts
add support for designating disks as readonly


### 0.11.87

cors
fix sendNotification nre


### 0.11.86

make export respect playback quality setting


### 0.11.84

fix empty critical zones


### 0.11.83

beta


### 0.11.82

collapse search results on a smaller time domian


### 0.11.81

fix bug where zone couldnt be disabled


### 0.11.80

make notification zone optional


### 0.11.79

improved image retention, working ai notificaitons


### 0.11.78

yet another beta, permission fix


### 0.11.77

non admin needs access to text/image embedding


### 0.11.76

beta


### 0.11.75

ai notifications
beta


### 0.11.74

beta


### 0.11.72

beta


### 0.11.71

new vector search util
perform clip on objects of interest
day of week scheduling support and dst  handling


### 0.11.70

respect time zone daylight savings
purge empty names
remove legacy training mode
more zone/ai settings
day filtering
time zone for days
schedule day persistent
add support for heterogenous classifier in cluster mode


### 0.11.69

add support for custom classifier in nvr object detection


### 0.11.67

fix export
words
better error messages on storage failure
make the 10-15% low watermark absolute regardless of disk size
publish, prep for server update


### 0.11.66

beta


### 0.11.65

ncnn face recognition
make ncnn usage more strict


### 0.11.63

initial support for ncnn
use tree shake for font awesome to reduce app size by 1mb


### 0.11.62

common/webrtc: expand h265 keyframe types
make decoder prefer rtsp tcp transport
fix missing audio on tapo when ffmpeg parser is used.


### 0.11.60

fix wyze reusing rtp payload types


### 0.11.58

fix adaptive bitrate not using client size
beta


### 0.11.57

update libav
fix keyframe request logging ambiguity
only sleep on marker packets
wip mpegts
fix rtcp filtering in transcode
fix adaptive bitrate source id
fix transcode
fixup malformed sdp from adaptive codecs
update libav
remove debug logging


### 0.11.56

debounce snooze logging
publish h265 aggregation packet check fix


### 0.11.55

0.11.55 fix mangling of rtcp packets during adaptive codec selection


### 0.11.54

fixup accidental deletion


### 0.11.53

Revert "wip audio transcode scrub rewrite"
wip audio transcode scrub rewrite
beta


### 0.11.52

disable adaptive audio
fixes for h265 seeking


### 0.11.51

beta


### 0.11.50

make file rotation check for free disk space
cap recordings prune to finish within 10 minutes
improve sending codec information only after a marker packet


### 0.11.49

rebuild with additional h265 repacketization from webrtc


### 0.11.48

rebuild with h265 repacketization from webrtc


### 0.11.47

remove h264frame endpoint
beta


### 0.11.46

use single decoder with prebuffer skip


### 0.11.43

remove ffmpeg binary


### 0.11.42

fix video transcode when audio transcode is missing/misadertised


### 0.11.41

fix h265 mp4 export when vps is missing


### 0.11.40

fix mtu
release 0.11.40


### 0.11.39

revert rtpTimingAdjust catchup
cleanup
fix playback pacing reset bug
fix smooth scrub getting stuck


### 0.11.38

fix user selector


### 0.11.37

beta


### 0.11.34

support vaapi detect on amd if explicitly set
fix up ffmpeg based software transcode


### 0.11.32

allow vaapi for amd transcode


### 0.11.31

fixup ffmpeg vs libav forking


### 0.11.30

fixup opts
update libav with channel layout fix


### 0.11.29

fix rtpmap edgecase


### 0.11.28

teardown race condition fixes


### 0.11.27

beta


### 0.11.26

add all the low latency flags
beta


### 0.11.25

hack fix for potentials for hang during scrub
fixup pcm_mulaw falsy check
beta


### 0.11.24

fixup discontinuity calc, working dynamic codec switching
transcode should disable adaptive
refactor sdp negotiation
fixup fastforward resume failure, remove logging
wip recordings codec negotition
codec negotiation bugfixes
wip adaptive bitrate cleanup
implement mid stream codec switch
wip multicodec
remove debug code
fixup codec copy going to cluster worker
offload audio transcode to compute
support no hwaccel
wip multicodec
restructure
refactor codec picking
handle aac transcode for hksv
fix video transcode + audio codec copy
fixup pcm transocidng
support audio transcoding
fixup busted audio negotiation
wip: prep audio transcode
wip: transcode audio as necessary in adaptive streaming
catch push errors
add more opts
fix cuda keyframe generation, publish


### 0.11.22

wire up transcode watchdog


### 0.11.21

fixup decoder console
beta


### 0.11.20

recording playback transcode improvements
allow h264->h265, disallow keyframe srcub transcode
update libav with async open
noncluster mode fixes for reolink libav transcoding


### 0.11.13

fix granscoding TO h265
fix adaptive bitrate handling of h264/mp4 when codec is unavailable


### 0.11.12

remove amd from safe hardware transcode list


### 0.11.9

fixup h265 keyframe hunting


### 0.11.8

remove weird blurb about e2e encryption on ha
fix mangled pts timestamps breaking alexa


### 0.11.7

beta


### 0.11.6

add keyframe button to adaptive test tool
fixup vbr transcode
implement on demand idr on packet loss


### 0.11.5

initial plumbing for keyframe signaling
apply fps filter to fix encoder input
Merge branch 'main' of github.com:koush/scrypted-nvr
fixup usage of test values on idr and bitrate
fixup frame queue destructor nre
publish beta of new low latency transcoder


### 0.11.4

implement decoder shortcut
proper libav teardown
cleanup
zero latency transcode!
wip new transcoder
periodic prefs cleanup
decrease idr to 4 but this might suck


### 0.11.3

allow allow adaptive bitrate to intercept non-adaptive transcodes like hksv


### 0.11.2

support transcoding TO h265


### 0.11.1

beta


### 0.10.187

support adaptive bitrate for full h265 main/substreams
wip cleanup
wip h265 adaptive bitrate
fix adaptive bitrate transcode
prevent smooth scrub from h265 to h264 playback
internal beta


### 0.10.186

fix h265 negotiation to h264 stream downgrade
implement h265 smooth scrub
more fixes for h265 seeking
improve h265 seek
adaptive bitrate should probe stream to determine whether h264 is returned when h265 is requested
more detection startup logging
update package-lock
send camera provided detections immediately


### 0.10.185

settings icons
fix snooze on ios when using encrypted notifications
recover from face and text recognition failures


### 0.10.184

missing file
fix date bugs


### 0.10.183

fix date bugs


### 0.10.182

publish notification schedules


### 0.10.180

critical alerts in ui
critical alerts beta


### 0.10.178

publish beta plugin


### 0.10.177

fixup encryption logger
dont dump encrypted payload
fix notifications for known people
ios encrypted notifications
log when encryption is used
Merge branch 'main' of github.com:koush/scrypted-nvr
plugin/web support for e2e encrypted notifications
improve retrieve license button behavior
ranker should avoid clipped detections
prefer unclipped detections for notifications
improve clipped retention behavior


### 0.10.176

fix settings load failure on linked devices
hide drives in autoconfigure mode
fix reversed clip logic
expose whether detection is clipped
reenable cost in debug mode
remove cost from tracker


### 0.10.175

fixup video clip creation with entry sensor and doorbell
remove legacy decoder


### 0.10.173

readd excessive motion for vehicles
Merge branch 'main' of github.com:koush/scrypted-nvr
improve storage setup ux
increase vehicle move threshold
fix vehicle history check
fix bug detection crop when near camera


### 0.10.172

beta


### 0.10.171

fixup stationary car logic
cars must be fully captured, bounding box history checked
use historical bounding boxes for stationary car
improve detection box selection
remove legacy decoder
beta


### 0.10.170

use 3 frame consecutive minimum rain/hallucinate filter


### 0.10.169

use new deviceFilter ergonomics
fix linked devices selector, publish


### 0.10.168

dont install server default plugins in cluster mode
garage and blinds control


### 0.10.165

Merge branch 'main' of github.com:koush/scrypted-nvr
publishh


### 0.10.164

ui controls support
add cuda detection on windows
do not repacketize audio
fixup linked devices


### 0.10.163

Merge branch 'main' of github.com:koush/scrypted-nvr


### 0.10.162

darwin rtp packet seems to be limited to signed int16.
handle broken jpeg save during notifications
linked devices per user
Revert "add lights/switches to nearby devices"
add lights/switches to nearby devices
motion note


### 0.10.161

Merge branch 'main' of github.com:koush/scrypted-nvr
fix analyze mode


### 0.10.159

relax rtcp logging
move face worker into promise
fix plate detect, fix recognition pre non-max suppression


### 0.10.158

fix detections while in privacy mode
skip lpr if vehicle is stationary
remove old dep
fix zone math


### 0.10.157

fix concave zones


### 0.10.156

use qsv on windows + intel


### 0.10.155

text only notifications disabled by default


### 0.10.154

support two stage notifications
generate collapse ids
remove warnings


### 0.10.153

implement nack retry on recording packet loss


### 0.10.146

fixup nack logger


### 0.10.145

save buffers nack logger instead
implement nack retries


### 0.10.144

fix spurious decoder reinstall


### 0.10.138

beta


### 0.10.137

send regular i frame when not using adaptive
remove legacy sdp filename location
ensure cluster worker handles video transcodes


### 0.10.136

leverage localhost packetSize for less noisy transcode parsing


### 0.10.135

fix playback rate when transcoding


### 0.10.134

transcode recordings on cluster client too


### 0.10.133

fix ffmpeg path in heterogenous cluster


### 0.10.132

fix ffmpeg leak on transcode


### 0.10.131

pkill fix


### 0.10.130

adaptive bitrate transcode on compute worker


### 0.10.128

delay load libav
update deps, remove wasm fork


### 0.10.122

zone fixes


### 0.10.121

fix issue with person up against doorbell not triggering detection
publish zone fix


### 0.10.119

further class list normalization
further class list normalization
further class list normalization
dnormalize legacy detection classes
fix notification zone class mapping


### 0.10.117

zone filtering bug fixes and perf
use object detection zones to inform timeline events


### 0.10.116

notification zone ui


### 0.10.114

zone filters need to use notification classes.
fix zone settings retrieval
notifier zoning to respect custom
words
working notification zones


### 0.10.113

camera id hint
wip: notification zones
zone setting description
wip: notification zones
fix angry error messages during teardown
reolink probe fixes


### 0.10.111

ignore ipv6 discovered devices


### 0.10.110

fix reolink probing?


### 0.10.109

wip window player


### 0.10.108

remove reliance on detection plugin settings


### 0.10.107

fix package detection enabling erroneously


### 0.10.106

fix vue router not navigating when forced live


### 0.10.105

fix timestmaps causing notification click weirdness


### 0.10.104

cluster mode storage warning


### 0.10.102

fix package mask uint32array length


### 0.10.100

fix package detection bounds failure


### 0.10.99

enable preferred compute nodes


### 0.10.98

wip rollup
fix build break
disposable holder
fixup resource management
remove platform/arch shims
comments
cluster affinity for motion detection
fix generator return cleanup crash


### 0.10.97

fix detection on non-cluster mode


### 0.10.96

use label hints for heterogenous clusters


### 0.10.94

beta


### 0.10.93

fixup cluster label request
support hybrid clusters


### 0.10.92

set detection affinity to decoder cluster worker
beta


### 0.10.91

fixup amd vaapi detection avoidance
fix invalid codec context usage
only check cuda if env is set


### 0.10.89

qsv encode fix?


### 0.10.87

join decoder thread
clean up resource management


### 0.10.86

add source id to motion detection
use onnx automatically if onnx env vars are detected
beta


### 0.10.85

fix cluster device failure breaking face rec
relax timing resync on mild synchronization issues
fix cluster terminate/kill
beta


### 0.10.84

qsv and vulkan (stub) transcode
beta plugin


### 0.10.83

electron cluster support
beta


### 0.10.82

face detection label affinity
motion detection label affinity
allow coreml if running in cluster mode
fixup cluster decoder
cluster aware decoder


### 0.10.81

windows temp transcode fix
actually fix video deletion
fix unhandled rejection on buffer image
sketchy beta


### 0.10.80

vulkan decode on windows
fix event deletion bug
make vulkan last preference
add vulkan to the default linux decoders, disable vaapi on amd
working vulkan decoder
commnets
fix opencl nvidia and amd
fix opencl reference frame retrieval and implement periodic update
ffmpeg -noautoscale doc


### 0.10.79

adaptive bitrate vaapi fixes


### 0.10.78

stub vulkan support, ffmpeg format availability
ensure tracker has timestamp
fix tracker predictBox bug
add ffmpegFormats flag
use const
fix recognizer bounding box


### 0.10.77

only save event snapshots to event stream
add RecordingDestination type


### 0.10.76

Custom ffmpeg for Intel
add recorded event to doorbell
add recorded event to motion sensors
add recorded event to nearby sensors
fix scale_vt not handling aspect ratio preservation


### 0.10.75

ensure event recording is properly killed
more generator startup leak fixes
fix image close failure and unstarted generator leak


### 0.10.71

thread tracker
prune catch
beta


### 0.10.70

thread tracker


### 0.10.69

beta


### 0.10.68

actually disable opencl good lord
update libav


### 0.10.67

sanity check crop/resize bounds
fix events killed detection


### 0.10.64

fix infinite loop in event purge
key off json files for recorded events
use appropriate drive when fetching events
implement new events directory
fix hide autoconfigure note
Merge branch 'main' into events
put opencl behind setting


### 0.10.63

new events stream


### 0.10.62

fix opencl blur kernel corruption


### 0.10.60

fix potential slow leak in opencl motion detection
update test server
dont end detection if a recognition fails


### 0.10.59

disable hw accel by default on intel mac


### 0.10.57

Merge branch 'main' of github.com:koush/scrypted-nvr
comment
falback hw decode + hw postprocess failure
cl motion sensor release


### 0.10.56

fixup hardware to software small resize fallback
cl motion worker comments
grant motion sensor access to non-admin users


### 0.10.55

beta: focus mode


### 0.10.54

more aggressive malformed frame failure
fix face db clear crash
frame sanity checking
remove debug logging


### 0.10.53

beta


### 0.10.52

rename to Accelerated Motion Detection
respect motion detection options
limit thread spam
cuda transfer to opencl support


### 0.10.51

cleanup
fix software scalar fallback


### 0.10.50

beta


### 0.10.49

working cl motion detector
wip opencl motion detection
cleanup
cleanup
shuffle files
stub out opencl motion detect
new libav
beta


### 0.10.48

prevent hw accelerated ffmpeg usage if not available


### 0.10.47

prevent usage of invalid detectors


### 0.10.46

support playback rate on transcoded streams


### 0.10.45

fix vaapi transcode hang


### 0.10.43

remove prune fork
update motion workers


### 0.10.40

fork based edge processing
remove zygote in favor of worker file fork
debug logging


### 0.10.37

increase motion detection sensitivity


### 0.10.36

show browser origin for notifier in settings


### 0.10.34

fix server id in notitifications
wip multi server notifications
note the limitations of libswscale
use default scaler for min dim path


### 0.10.33

beta


### 0.10.32

intel requires 16 byte min stride
hw vs sw filter lists
use proper sw scaler recycling
fix filter reuse issue by using exact cropping
log av errors
fix frame counter, better load/decode failure handling


### 0.10.31

beta


### 0.10.30

fix load errors presenting as decoder errors
fix nre if options arent provided
qsv fixes


### 0.10.29

Merge branch 'stable'


### 0.10.26

fix repeated warning
probe all possible decoders before auto fallback


### 0.10.28

beta


### 0.10.27

splice audio stream for detection
beta


### 0.10.25

failures should fall all the way back to legacy decoder
dedupe devices across users


### 0.10.21

relax alert until software decode fails


### 0.10.20

zero cpu transcode
wip: no-cpu hevc transcode
more decoder error logging


### 0.10.19

release


### 0.10.18

dump cpu model on error
remove decoder alert, check decode fallback per camera
beta


### 0.10.17

fixup links
ignore load errors when sanity checking decoer
suppress libav errors prior to keyframe


### 0.10.15

fix console erorr crashing mp4 export
fix intel mac detection


### 0.10.14

beta, fix create filter crashes


### 0.10.13

beta


### 0.10.12

check for auto mount markers
publish new storage autoconf


### 0.10.11

search /mnt/nvr-large and /mnt/nvr-fast for auto conf
allow running new and legacy decoder side by side
software postprocessing option


### 0.10.10

platform check


### 0.10.9

better filter creation error notification


### 0.10.8

fix bounding box mangling during face detection


### 0.10.7

fix qsv context clobber


### 0.10.6

legacy decoder guidance


### 0.10.3

publish stable


### 0.10.1

beta


### 0.9.86

version gate the new decoder
error reporting


### 0.9.85

beta


### 0.9.84

switch to legacy decodder option
handle hw decode failures
improve software pipeline performance


### 0.9.83

beta


### 0.9.82

singleton electron build, fix electron downloader


### 0.9.81

beta


### 0.9.80

webpackify
beta


### 0.9.78

fix debug code


### 0.9.76

hw decode fallbacks


### 0.9.75

beta


### 0.9.74

functional qsv on linux and windows
support nvidia decode


### 0.9.72

fix buffer detach failing package detection
beta


### 0.9.71

remove simulated failure
start frame watchdog immediately
fix unhandled rejections
fix generator close unhandled rejections
cleanup
improve recording storage error messages
properly handle undeliverable notifications


### 0.9.70

beta with fixed codec parameter init


### 0.9.69

beta


### 0.9.68

use fork based console log


### 0.9.67

fix hw frames context sourcing, fix beta


### 0.9.66

beta


### 0.9.65

beta


### 0.9.64

update ffmpeg to latest, fix reolink cams
sanity check image operation values


### 0.9.63

fix vaapi


### 0.9.62

update native dep
publish beta


### 0.9.60

add fork liveness/kill signaling
add id to notifications
fix spurious rpc objects
frame leak tracker
fixup sw perf
frame cleanup
cuda marker
more leak fixes, decoder failure recovery, publish beta


### 0.9.59

fix frame leaks


### 0.9.57

fix leak. publish beta.


### 0.9.56

beta


### 0.9.55

improve decoder teardown
log weird snapshot path
libav load fixes


### 0.9.54

fix spurious snapshot saving when running motion detector + nvr and no object detection
fixup libswscale dynamic resize quirks
bail frame generator after single frameis retrieved
dont use hw decode on single frame requests


### 0.9.52

fixup addon install


### 0.9.50

remove debug addon loading


### 0.9.49

decoder perf logging ,beta


### 0.9.48

functional videotoolbox, vaapi, softrware
remove binding gyp
use separate libav repo
wip extenral lib
jpeg encoder
remove deno
working zero latency/copy pipeline
restructure
fixed vt scale
fix sw
wip libav decoder
improve fork startups
new motion graceful shutdown
derp


### 0.9.47

fork beta


### 0.9.46

missing file
use fork for motion
build fix
prevent busted disks from hanging settings


### 0.9.45

fix another mp4 export permission issue


### 0.9.37

move packetizer back into per stream output


### 0.9.43

fix mtu calculation. publish.


### 0.9.35

fixups
Merge branch 'main' of github.com:koush/scrypted-nvr
wip clip export to ffmpeg input


### 0.9.33

clean up url perms
fix adaptive bitrate audio stitching, publish beta


### 0.9.32

wip webgpu motion
move fork to common
implement fast fork
name forks
publish latest


### 0.9.31

beta


### 0.9.29

delete event metadata prior to sending to device
cleanup
per class thresholds
import cleanup
admin user cleanup
build fix
build fix
reset face database down to canonicals
improved clip delineation. publish beta


### 0.9.24

fix empty set unhandled
disable face rec while reclustering
beta


### 0.9.23

fix unhandled rejection if detector crashes
canonical preservation
selective cluster nomination
fixup known face add bug
save canonical distance to track decay
cleanup
refactor face embeddings saving
initial pass face recognition thread
add detection event metadata to notification
increase fs cache duration to 3 days
potential fix for long running performance degradation


### 0.9.22

fix unhandled rejection in interface checkers


### 0.9.21

remove trace
fix double recording startup if camera is wonky


### 0.9.16

fix unhandled rejection if stream fails to start during recording


### 0.9.14

Merge branch 'main' of github.com:koush/scrypted-nvr
fix unhandled rejection if stream fails to start during recording


### 0.9.13

fix mp4 export unhandled rejection
beta


### 0.9.12

fix potential unhandled rejection with h265 transcode
remove house intercom
remove house intercom


### 0.9.11

new storage progress bars
fix potential unhandled rejection around notificaiton delivery
cloud href
fix unhandled rejection in first packet fai;ure
fixup promise race
fix potential unhandled rejections
disable vaapi inside nvidia contianer


### 0.9.10

socket failure cleanups
fix potential unhandled double reject
fix more unhandled rejections
fix various unhandled rejections
fix adaptive bitrate for apple tv


### 0.9.9

more ui common refactor
put generator error into correct console
ha card fixes


### 0.9.7

fix grid card wrap alignment


### 0.9.6

relax stream degration notification


### 0.9.4

snoozable offline events
suppress stream interrupted if device is completely offline
apply endpoint snooze to stream degradation


### 0.9.3

use long gop when transcoding


### 0.8.107

beta


### 0.8.106

handle packetization in adaptive bitrate
Revert "fix packet loss window calculation"
fix packet loss window calculation
fixup confusing frame drop logging
fixup zerolatency transcoder warning


### 0.8.105

disable hwaccel for single frame decodes to prevent gpu resource thrashing.
h264 utils
error message cleanup


### 0.8.104

beta


### 0.8.103

blip fixes
check for embedding collision prior to learning face
handle event lookup when low res stream is missing
send cam offline notification if a substream fails
timeout logout after 2 seconds and continue
further face clustering bug fixes
beta


### 0.8.102

fix blip detection by requiring at least 1 tracker hit
vaapi only on intel
bump min width to 2k
doc transcode min width


### 0.8.101

fixup adaptive bitrate grey frames


### 0.8.100

fix adaptive bitrate transcode with mute audio


### 0.8.99

beta


### 0.8.98

enable transcoding in adaptive bitrate
fix tiered snooze clobbering
fix activity timeout ussage
fix android snooze duration
add some transcode guardrails
use common activity timeout
add support for vaapi encode
fix image transition
fix unhandled rejection if recording fails
encode with video toolbox on darwin


### 0.8.97

tag h265 mp4 with hvc1 so quicktime can play it
fix broken image on page reloads


### 0.8.96

beta


### 0.8.93

improve timing and transcoding
fixup alternate transcode rtp modes
transcode improvements
fix scrub timeline marker skip jank
fix transcode when audio is missing


### 0.8.89

initial support for transcoded h265 smooth scrub
simd fast path for face clustering
reuse existing centroids for face training perf
updates


### 0.8.87

update ui


### 0.8.86

fix up familiar people filtering/icons
also fix filtering event list by familiar people


### 0.8.85

fix filtering by familiar person in event reel


### 0.8.84

release detection view in nvr app


### 0.8.82

beta


### 0.8.81

nvidia may fail after ffmpeg start with no frames
beta


### 0.8.80

crop square from top of person detection face detect
fixup centroid dropout constants
fix infinite loop in centroid dropout
add centroid and cluster dropouts for relearning
use k-means clustering to remove redundant faces
rework embeddings dirty state
face recog updates
fix lastHit metering
merge known/unkown and recreate on canonical label
create separate kd-tree for known vs unknown
fix event thumbnail ghosts
redeuce decoder logging
massage labelled faces server side


### 0.8.79

improve spurious retention of labels


### 0.8.78

fix plates too


### 0.8.77

fix bug where near all plates were filtered


### 0.8.75

mipmap caching works!
simplify wasm image resize/crop
wip mipmap caching
wip mipmap caching
mipmap prep
shuffle decoder resize arg validation
relax detection tester nms
fix unhandled rejections if recording fails to start
fix unintialized error if wasm decode fails to start
add video decoder stall logging


### 0.8.74

throw on bad resize/crop calls
revert object tracker test
add decoder health check


### 0.8.73

fix non-int recognition bounds. how did this work?


### 0.8.72

fix detection id generation race condition


### 0.8.71

beta


### 0.8.70

beta


### 0.8.69

dont close image until yield returns, for jpeg creation
relax nms in tracker
fix confusing per camera object detector setting


### 0.8.68

beta


### 0.8.67

remove tflite from defaults, filter plates
retain all plates with 4+ chars
beta


### 0.8.66

relax face width check
add option to disable training mode
add training mode for faces
stop jumping the gun on notifications


### 0.8.65

make familiar people always snooze person and animal, and person always snooze animal.
fix bug where labels were always sent
Merge branch 'main' of github.com:koush/scrypted-nvr
update


### 0.8.64

decoder logging
faster ffmpeg timeout
ui for familiar people, separate snooze bucket
add ffmpeg failure hooks and fallback to software
beta


### 0.8.60

remove tfjs usage
fix face detect crash
fix viral train rate to only cue off canonical images
clean up double slashes in url join
add face search early outs and pruning
use kd-tree for face search
beta improve face search


### 0.8.59

beta with perf improvements


### 0.8.58

enable face recognition by default


### 0.8.57

beta


### 0.8.56

favor detections with labels
fix addition of new people through ui
fix embedding serialization
ui cleanups and face db management
initial face db
in memory face distnace
fix frame leak
track faces/plates separate from person/vehicle
beta


### 0.8.55

allow nms on person and animal
detection grid cleanups


### 0.8.54

fix same size resize crop op
fix image sampling corruption
ui cleanups


### 0.8.53

zero length segment logging
fix disk allocation bug
wip detections
detection view


### 0.8.52

initial implementation of detection search


### 0.8.51

fix frame timeout
remove duplicate frame allocs and copies!
add support for onnx recognition
beta


### 0.8.50

fixup detection test tool
fix bug in non max suppression where detections are lost
inline jpeg encode bitops
fix non-recording detections causing push erorrs
fix pipeline leaks
enable hw accelerated decode by default
move recognition into separate pipeline stage
deprecate tf, fix frame queing
onnx support


### 0.8.49

restart interrupted recordings faster


### 0.8.48

fix bug where device deletion uhas zombie license
improve motion detection performance
new text recognition engine, rknn option


### 0.8.46

fix detection class filtering


### 0.8.45

fix erroneous face recognition filter


### 0.8.44

beta


### 0.8.43

batching and detection type fixes
make package selectable type
add batch hint
improve startup time with worker zygotes and parallelization


### 0.8.41

update assemblyscript
recognition settings


### 0.8.40

optimize detection thumb bounding boxes
add license plate detection alias
remove legacy second pass tracker
update deps
prefer face detections for push notification
fix package detection in motion streamlined detector
update deps
pass original crop image into recognition pipeline
lazy convert crop only images in detection pipeline
fix amcrest probe catching reolink cams


### 0.8.39

health check stub
beta


### 0.8.38

handle early failure leaks
fix recording unhandle rejection with offline devices
fix object detection crash


### 0.8.36

apply non max suppression prior to face detect
fix license cache not being respected on startup
fix logout button when cloud is unreachable
detect faces on detected peopel
remove unnecessary object detection calls
fix ha card integration url


### 0.8.35

add scrollable option to ha card grid


### 0.8.34

dummy proof HA config


### 0.8.33

prevent tfjs usage if not electron
ui icon fix


### 0.8.32

move people to separate bucket, improve aliasing
fix noisy log
move person into separate bucket for tracker
publish nvr plugin


### 0.8.28

publish beta


### 0.8.27

fix all video frames being queued


### 0.8.26

link companion app should only show for ha


### 0.8.24

fix ha card scrollability


### 0.8.20

cleanup
missing file
always use wasm dec
add support for notification config in ha


### 0.8.19

fix adaptive resize on recordings, play start/stutter


### 0.8.18

add notification context to navigation
fix truncation bug


### 0.8.12

publish beta


### 0.8.11

cors the beta site


### 0.8.10

publish beta


### 0.8.8

prep for multiserver support


### 0.8.7

fix newer recordings deleted during low disk space
use min of bavail and bfree during free space check


### 0.8.6

allow mixin notification interception


### 0.8.5

allow local only delivery on nvr app


### 0.8.4

full dep rollback


### 0.8.3

add locks as nearby sensors


### 0.8.2

fix lockfile


### 0.7.20

consider only interior size of package outline


### 0.7.18

cleanup


### 0.7.16

use node builtin fs free space check


### 0.7.15

beta


### 0.7.14

fix another free space alert bug
fix potential bug in recordings clearing
beta


### 0.7.12

parallelize hour event load
another aspect ratio fix on grid


### 0.7.11

fix license refresh button cache bypass


### 0.7.10

use cloudflare for faster push delivery


### 0.7.9

fix thumbnail filename, log error if video stream thubmnail conversion fails
publish beta


### 0.7.7

fix large fiel size on detection thumbnails
sanity checking
progressively longer license periods based on sub age
fix adaptive bitrate downgrade on ipad


### 0.7.6

cleanup device name detection
improve platform detection of native apps


### 0.7.4

publish new plugin supporting android


### 0.7.3

update


### 0.7.2

add reolink labels
fixup device names
add support for android clients
add camera provided detections to events


### 0.6.41

support ha dash deep linking into app


### 0.6.40

fixes around hw detect notifications
deliver hw detections even if nvr is disabled
deliver notification for camera hw detections
add support for camera provided events
stub out audio events


### 0.6.39

reset tracker between detection sessions


### 0.6.38

reduce first frame latency, improve startup time
fix frame timeout bug with overaggressive idle detector


### 0.6.37

use stable detection id with frame num suffix
pipeline timeouts on source and sink


### 0.6.36

fix debug tool time lock


### 0.6.35

fix detector crashes causing pipeline leaks


### 0.6.34

update detector defaults


### 0.6.31

default to openvino on windows if portable python is found
fix motion rescan cropping tracked objects
fix packages not detecting if zones are used


### 0.6.30

more scrub fixes


### 0.6.28

fix playback not resuming after ff scrub


### 0.6.27

fix reseek during low-res ff


### 0.6.25

fixups/simplify scrub fastforward


### 0.6.23

implement fast forward smooth scrubbing


### 0.6.22

publish beta


### 0.6.21

fix unnecessary seq breaks when packet ends on marker
h264 frame extraction caching
add api for h264 frame extraction


### 0.6.20

send decoder timestmaps down pipeline for improved seeking
fix missing wasm decoder timestamp
packge events fixup
fix packages not showing up in events


### 0.6.19

remove logging, publish beta


### 0.6.17

update server


### 0.6.16

add timestmap logging
use requested destination for timelapse
fix low confirm analysis hang/leak
handle push unregistration
remove uuid lib
remove axios, publish beta


### 0.6.14

fix edge case where rtsp truncation gets wonky


### 0.6.13

improve tracker to better handle occlusions
missing file
recorded events no longer have 1 minute lag
fix missing thumbnails/events when using multiple disks


### 0.6.12

fix missing thumbnails/events when using multiple disks


### 0.6.11

fix unhandled rejection in logs


### 0.6.10

publish with potential ffmpeg leak fix


### 0.6.8

move ffmpeg leak monitoring earlier into pipeline
remove debug logging
fix first reference frame, publish


### 0.6.7

improve package edge detection
delay process package detection
handle missing detection image
clear recording failure alerts on disk mount recovery.
fix bug where non-admin user recursion could hang server


### 0.6.6

relax default package zone, publish


### 0.6.5

use sane tilt values for ui


### 0.6.2

accomodate grainy codecs for package detection


### 0.6.1

tweak package detection edge generation
add option for debug snapshots
give truncation a head start on pruning
clear allow list to reset, fix video retention days display
publish stable


### 0.5.41

fix analyze mode
publish beta


### 0.5.40

ignore timestamps causing timelapse video corruption
retweak package score after edge detection threshold fix
remove reverseOrder and startId implementation
fix video retention days erroneous warning


### 0.5.39

improve edge detection thresholds
alert if disk space is low during truncation
further reduce package score threshold
fix package detection input aspect ratio
add support for exporting substream as mp4
tweak package detection score
adjust package weight scoring
adjust window size ramping
fix adaptive bitrate stream query
reenable package detection


### 0.5.38

beta: fix package detect and stream query


### 0.5.36

log the recording stream selected


### 0.5.35

publish beta


### 0.5.34

disable debug frames
adaptive resize should account for stream size too
animals cant deliver packages
package detection wip
tweak package min/max area/dims
dogs arent packages if theyre sitting in the package zone
cleanup logging
cleanup wasm
organize imports
fixup package bounding boxes
add slow timers
fix various unhandled rejections
add default package zone for doorbells
improve truncate recycling
fix package detection zone
make package a default notification
working package detect
remove face detect models temporarily
fix dilate 0 being defaulted
wip: package
wip: package
disable debugging


### 0.5.32

publish fix potential playback failure on corrupt events file


### 0.5.30

update polygon deps
more appletv adaptive grid fixes


### 0.5.28

fix noisy destination change


### 0.5.27

fix grid mode on apple tv with adaptive bitrate


### 0.5.26

fix resize observer


### 0.5.24

log missing client rect


### 0.5.23

publish stable


### 0.5.22

fix camera failure potentially leaking threads
publish stable


### 0.5.21

fix log spam after device is deleted
more fixes around click vs scroll interaction debounce


### 0.5.20

fix timeline click going to wrong spot


### 0.5.19

fix debug tool


### 0.5.18

prevent interval suspend spam, publish beta


### 0.5.17

publish beta


### 0.5.16

fix up interaction between user selection and adaptive bitrate
fixes for adaptive resize. publish beta.


### 0.5.14

publish beta


### 0.5.13

fix potential ffmpeg leak on decode hang
make adaptive handle client size change
fix duplicate events race on session boundaries


### 0.5.12

fix thumbnail generation near leading bounds
ignore frames with near full frame motion
add crop fast path, fix chroma stride
name to label
fix full screen regression on mobile


### 0.5.11

fix dangling ffmpeg


### 0.5.8

publsih


### 0.5.7

use imageop util function


### 0.5.5

simplify frame queue, reduce mem reservation 90%
fix length undefined


### 0.5.3

publish video timestamp/export fixes


### 0.5.2

improve recording playback timestamp syncing using periodic syncpoints
document reolink quirk with janky timestamps


### 0.5.1

publish to stable


### 0.4.33

watch for pipeline timeouts


### 0.4.32

fix gradual leak in object detection


### 0.4.31

fix gc trashing in decoder


### 0.4.30

image op refactor, publish beta


### 0.4.29

use sharp when available.


### 0.4.28

prep sharp build


### 0.4.26

provide detection filename hint


### 0.4.25

pubish beta


### 0.4.24

disable image reader in nvr
codegen improved resize assembly


### 0.4.23

fix noisy ffmpeg logging
fix heap queue full
stagger recording startup
multithread snapshots


### 0.4.22

fix nv12 stride calc
improve onvif probe
publish!


### 0.4.20

fix jpegs that are odd pixels in height
force snapshots to nv12
fix image resize scale up
add new image reader stub
add frame decoder
add test for jpeg decode
allow buf overrun
switch to internal APIs that support windows!


### 0.4.19

further decoder fixes


### 0.4.15

implement frame queueing
add accelerated gray decode path
implement accelerated yuv -> rgb
fix decoder showinfo parsing


### 0.4.10

use optimistic frame sizing to max fps throughput


### 0.4.9

reworked playback time calc
handle rtp timelapse rollover on large mp4 exports
fix mp4 export when recording has gaps
send empty decoder timestamps
fix spurious confirm to low-confirm switch
init huffman tables in decoder
fix yuv420p jpeg encoder
fix erroneous truncation in auto retention mode
fix potential spurious retention (thanks @vic)
cleanup
new decoder leaks fixed
code cleanups
remove unnecessary allocs
prep for new decoder
add accelerated nv12 jpeg encode
fix moire pattern caused by shuffle
improved writer
working rewritten huffman tables
prep huffman table rewrite
prep writeops
fixup early init
further inlining
finally faster than ffmpeg
transpose+zigzag fast path prep
fast transpose
switch to f32 array ops
working f32x8x8
fixup js jpeg encoder
disable pull to refresh
finally working...
fix int16 overflow
simd quant phase 1
move quanitization into u16 vecs
simd matrix transpose for jpeg quantization


### 0.4.6

perform column ordering quantize first
potential fix for runaway python processes
cleanup wasm
use 4:2:0 sampling
vectorize yuv/jpeg load
switch to f32
working wasm jpeg encoder
wip asm jpeg
working hardware accelerated decode via ffmpeg
more hackery to fix byob reads
remove allocs/copies in dec/conv, 8x improvement
decoder perf on par with libav
working, but cpu too high.
wip: ffmpeg/wasm decoder engine
further improve assembly simd image ops
hot path improvemnet
fixup simd sampler
initial pass at new in process webassembly/simd decoder


### 0.4.3

privacy mode toggle
implement privacy mode
adaptive bitrate requires license
motion/object detection requires license
prune should use force flag
publish beta


### 0.4.2

fix unhandledRejection during teardown error
revert assemblyscript, publish beta


### 0.4.1

publish beta


### 0.3.32

fix video retention days off by 1
squelch logging
publish beta


### 0.3.31

prune more zombie dirs
prune zombie dirs
fix immutable trunc cache bug
free space check caching
refactor
cleanup
fix nre
fix more caching bugs
disable cache on write to fix missing events maybe
refactor fs for minimal reads and nonblocking ops
refactor fs for minimal reads and nonblocking ops
remove angry logging
fix erroneous recording unavailable bugs
initial pass at in memory fs
grid view should fill height


### 0.3.30

fix ring event thumbnails


### 0.3.29

fix ha card live query param


### 0.3.28

fix zoom


### 0.3.24

generate cache on hourly rotate
ensure rebroadcast is enabled on startup
fix detection saving on dual stream cams


### 0.3.23

fix ha card not loading


### 0.3.21

prevent nvr plugin from being added to launcher
more notifiction logging
fix notifications not delivered for stationary objects
fix online notification bug
verbose logging around notification delivery
delete dangling user preferences
handle fs that dont support hardlinks
more canvas and aspect ratio fixes


### 0.3.20

publsih


### 0.3.18

fix deletion bugs in automatic retention mode
round aspect ratio to prevent canvas flickering


### 0.3.15

decouple canvas size calcuation from current canvas aspect ratio


### 0.3.14

fix weirdo ui flashing


### 0.3.13

remove duplicate ios devices on registration


### 0.3.9

add missing ha link info


### 0.3.8

hide motion detection by default
always save motion snapshots in case motion filter is removed from events/timeline
migrate fetch helper
release


### 0.3.7

publish beta


### 0.3.6

sketchy beta


### 0.3.5

delete layout support
wip: custom grids
add support for custom grid persistence
allow destination switch during recording playback
fix custom settings sanitization


### 0.3.4

beta


### 0.3.3

add more syncable user prefs
fix ha missing doorbell/motion/offline
tag events only with moving detections


### 0.3.2

fixup People/Person bug
Person vs People fixup
better event delineation


### 0.3.0

improve debug build time
update readme
mac/windows requires desktop app
beta


### 0.2.31

fix free space calc


### 0.2.30

fix ha card load race condition


### 0.2.29

release!


### 0.2.27

remove axios, use square detections


### 0.2.24

further simd detection fixup/warning
warn proxmox cpu host bug, fix framegen leak
beta


### 0.2.23

point readme to docs
typo
use all drives for free space calculation
add default automatic storage management mode
round detections to reduce on disk/net size
fix file truncate regression caused by finally block


### 0.2.22

add debug info to image drag
note default recordings dir is a large disk
heavily favor coral during round robin


### 0.2.21

publish beta


### 0.2.20

fix disk round robin
prevent hardlinks across volume boundaries
multiple disk support complete
cleanup
use explicit storage paths throughout
further cleanups
sketchy af beta


### 0.2.19

remove assumption recordings is on single drive
Merge branch 'main' into beta
fix broken motion only events


### 0.2.18

Merge branch 'main' into beta
fix asyncgen garbage collection issue


### 0.2.17

Merge branch 'main' into beta
fix nvr video frame rpc connect


### 0.2.16

Merge branch 'main' into beta
fix angry snapshot requests


### 0.2.15

Merge branch 'main' into beta
fix spurious objects


### 0.2.14

Merge branch 'main' into beta


### 0.2.13

Merge branch 'main' into beta
fix tfjs image queue
update package.json


### 0.2.12

new settings for multiple disks
pull events from fast disks


### 0.2.11

publish beta


### 0.2.10

another symlink fix
fix bug where symlinks arent deleted
cleanup
allow earlier exit from emergency deletion mode
remove legacy ha card
bucketize notification detection classes
use hardlinks for detections for same volume redundancy
fix stream duplication event recording bug
remove debug code
fix assumptions that streams are on same drive
filter already added cameras
fix license failure notificaiton and priority
fix var name
prevent motion snapshots if object detection is enabled
move sdp into json. elimate 1 scrub read.
tiered storage prepwork
allow streams to independently fail and retsart
Revert "allow selection of wrong detector if people want, warn angrily"
beta


### 0.2.9

code cleanups
finish up deletion implementation
deletion interface stub
add plumbing for missing video warnings
fix retention warnings
support truncation prior to critical space warning
track segment end time
fix reporting


### 0.2.8

use openvino gpu and coral tpu if both available


### 0.2.7

ha navigation fixes


### 0.2.6

fix tfjs detector


### 0.2.1

publish stable


### 0.1.226

publish beta


### 0.1.224

working grayscale motion sensor
implement blurGrayDiff
improve inner loop iteration
normalize rgb code
implement gray diff


### 0.1.222

switch to updated blurDiff
fix
implement simd absdiff
fix simd load order for l1 caching
benchmark blur 8x speed boost
implement rgb
code comments
more l1 cache perf imrovements
improve simd blur
fix standalon motion detector dilation


### 0.1.221

expose motion sensor for general usage


### 0.1.220

strip out longering motion sensor settings
dead code
fix webpack junk


### 0.1.219

publish beta


### 0.1.217

working simd blur sensor
implement absDiff
webpack worker fixes
add rgb blur color conversion


### 0.1.216

reset motion reference on heavy frame changes


### 0.1.215

missing files
implement simd blur
publish beta


### 0.1.213

fix erroneous motion from shadows etc
batch motion boxes


### 0.1.207

missing file


### 0.1.198

install coreml automatically on apple silicon
remove motion detector installation
fix ignore files
add SIMD support
fix reference frame in new motion detector


### 0.1.197

fix webpack


### 0.1.196

further simplify motiom inner loop


### 0.1.195

threadify
publish beta with huge perf boost


### 0.1.188

move async quuee
fix async queue race conditions
downgrade vuetify


### 0.1.187

publish plugin


### 0.1.186

fix ios stream load delay


### 0.1.185

publish release


### 0.1.184

publish beta


### 0.1.183

better motion box chooser
blow up all notifiers on recording failure
update ha card links


### 0.1.181

allow selection of wrong detector if people want, warn angrily


### 0.1.180

prep for unsuppressed detectors


### 0.1.178

device deletion no longer immediately frees storage
use classical nonmax suppression
not sure how this ever worked


### 0.1.177

fix bucket filter


### 0.1.176

publish unstable beta


### 0.1.175

publish beta


### 0.1.174

beta: use prebuffer reference frame


### 0.1.173

reset pan on zoomout


### 0.1.172

wheel zoom on desktop browser


### 0.1.170

release timelapse and playback speed


### 0.1.169

publish beta


### 0.1.168

disable heatmap, motion reference frame
snapshot prebuffer for motion detection init


### 0.1.167

clean up timelapse ui
working timelapse
fix mp4 export
wip: timelapse
fix ff + scrub playback hangs


### 0.1.164

clean last rtp timestamp on stitch
publish beta with playback rate


### 0.1.163

non-admin can filter/reorder cameras, hide object events


### 0.1.162

publish beta with heatmap fixes


### 0.1.160

watch for all creature types
publish beta


### 0.1.159

fix padding on home intercom mic slash


### 0.1.158

publish beta heatmap detector


### 0.1.157

implement motion heatmap decay
ignore high watermark if multiple terabytes are free
finish heatmap filter, autoend low confirm
publish beta


### 0.1.156

send notifications without image if image request fails for any reason
improved thumbnails, choose better targets
update deps
new heatmap smart motion sensor
initial implementation for spurious motion fallback
fix recording stream export being unbound duration when hevc


### 0.1.155

fix malformed aac export


### 0.1.154

dont force installation of default plugin if non-default like tflite was selected.


### 0.1.153

fix pause/resume playback


### 0.1.152

release plugin


### 0.1.148

fix ssl edge case in ha_card.html
fix beta expiration


### 0.1.147

use local recording stream instead of local


### 0.1.146

dont reuse previous tracked scores in case trakcer is wrong
min 3 days recordings


### 0.1.145

refer ha users to wiki
fix bug where notification on/off switch broke


### 0.1.144

fix card issues on ha companion app


### 0.1.141

support HA notifications


### 0.1.140

fix ffmpeg ENOENT


### 0.1.139

fix rpc gc churn and smb hangs


### 0.1.138

fix sync fs access to fix smb hangs


### 0.1.137

fix per frame rpc gc churn
fix potential recording playback hang
fix/add support for custom detection classes


### 0.1.136

track unknown objects
ha card fixes


### 0.1.135

fix ha access token issues on mobile by requiring an access token


### 0.1.134

fix home assistant cards.


### 0.1.133

include ha card html


### 0.1.131

improve startup time, fix ignore camera button
clean up user preferences issues


### 0.1.130

potential fix for scrub freeze?


### 0.1.128

fix broken ingress links


### 0.1.127

fix broken ingress links


### 0.1.124

allow changing the detector at the plugin level to override openvino preference over coral
upgrade long running adaptive bitrate connections
passthrough preexisting aac on mp4 export


### 0.1.123

prevent discontinuity on first rtp sample
send discontinuitys only prior to first packet
simplify audio toggling during scrub
stupid workaround for embed urls


### 0.1.122

use alternate iframe compatible clipboard copy


### 0.1.121

HA embed url copies to clipboard


### 0.1.117

send mp4 creation logging to correct console
pass dilate/area args to get raw data


### 0.1.116

publish plugin


### 0.1.115

hack/fix NaN on avg velocity computation
plugin support for fcm


### 0.1.114

add new camera via ui
ha card?


### 0.1.113

publish plugin


### 0.1.112

fix event grid thumbnail aspect ratio


### 0.1.111

fix deleted push leak


### 0.1.110

remove old push manager. enable push by default.


### 0.1.107

use SCRYPTED_NVR_VOLUME as default volume


### 0.1.106

electron startup checking


### 0.1.104

use openvino as x64 default on win/linux


### 0.1.101

fix video frame leak in beta


### 0.1.99

reenter motion confirmation mode on motion loss
update readme
always prefer newer detections
fix motion bucketizer cropping redetection areas


### 0.1.98

fix generator close


### 0.1.97

publish beta


### 0.1.96

zone fixes
use zone hints to prefilter second pass
allow disabling detections, dont reenable aggressively


### 0.1.95

events cleanups/tweaks


### 0.1.94

fix webgl motion thread leak
use new thumbnail generator in events and notifications too


### 0.1.93

warn on critically low disk space


### 0.1.92

limit motion box reprocessing to 3


### 0.1.91

publish beta, use at own risk!


### 0.1.90

simplify tracker, retain only moving objects


### 0.1.88

second pass tuning


### 0.1.84

include opencv/electron-core as auto installed motion sensor
generator cleanups, detection improvements
parallelize second pass motion + detection
box math
cleanups
beta wip
Merge branch 'main' into beta


### 0.1.83

Merge some beta branch improvements.
group similar objects in timeline thumbnails
fix head of line hangs in jpeg saving
utils
record tracked object only only when things are moving
collapse similar objects until theyre distinct
group similar objects in timeline thumbnails
add slow op logging
utils
fix head of line hangs in jpeg saving
add motion reference frame frequency option
Merge branch 'main' into beta
readd support for custom models


### 0.1.82

readd allow list


### 0.1.81

Merge branch 'main' into beta
readd threshld options


### 0.1.80

remove deprecated api
wip new hybrid detection engine
track motion
readd threshld options
wip new hybrid diff detector
support non-gl buffers in motion detectir
fix clip duration on ongoing event


### 0.1.79

remove sort tracker


### 0.1.78

fix notification only delivery
add teddy bear to common kid/dog misidentification


### 0.1.77

fix dog->person misidentification with second pass check


### 0.1.76

publish new tracker in beta


### 0.1.75

log second pass checks
implement tracker noise/deduplication
fix tracker bucket bug
fix keypoint/centerbox math
improve tracker expiration
tracker logging
fix infinite cost hanging munkres
fix timestamp on tracker
fix/log onvif probe
remove sort tracker
fix missing tracker on first hit
initial pass at new object tracker
fix first run issues with intall race condition


### 0.1.74

fix object tracker cpu/inaccuracy


### 0.1.73

fix firefox fullscreen (and remove pip)


### 0.1.72

update readme


### 0.1.71

better disk space warnings


### 0.1.70

install/enable object detection automatically


### 0.1.69

deliver push faster for high quality detections
relax the detection padding requirement
fix various recent event bugs


### 0.1.67

let similar detection class satisfy second pass check


### 0.1.66

fix object detection setup instructions


### 0.1.65

cache acls to prevent query spam from pegging cpu


### 0.1.64

fix notification prefs not loading


### 0.1.63

fix external detection classes breaking ui


### 0.1.62

restrict user notifications to camera permissions


### 0.1.60

nvr beta for log feedback


### 0.1.58

fix scoreless detections crashing notification delivery
add minutes text input to quickly export a large range


### 0.1.57

fix arlo thumbnails


### 0.1.56

reduce tf second pass. normalize in tf plugin?


### 0.1.53

fix error shown when nvr folder is root drive


### 0.1.52

serve notifications directly from detection file


### 0.1.48

fix race conditions in recording notification jpegs


### 0.1.47

log stream metadata when detection is unavailable


### 0.1.46

log notification delivery failures to correct push device


### 0.1.45

filter out rtcp packets in recording playback


### 0.1.44

readd pause/skip button son desktop ux


### 0.1.43

truncate old recordings to improve i/o performance


### 0.1.41

extend beta build kill timer


### 0.1.40

publish plugin


### 0.1.39

fix quality setting on mobile


### 0.1.37

fix potential async queue race conditions


### 0.1.35

fix various windows path issues
nvr: publish


### 0.1.33

publish plugin


### 0.1.32

allow usage of full tensorflow
add electron project


</details>
