@scrypted/nvr
Version:
NVR plugin for Scrypted.
3,622 lines (1,934 loc) • 60.4 kB
Markdown
<details>
<summary>Changelog</summary>
### 0.12.60
fix global styles leaking into web components css
fix canonical faces not being persisted sometimes
add popup-no-timeline option to cards
### 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