- rewrite of forms in JSON allow auto-generating the necessary fields on almost any template with a lot more ease
- remove ejs files for uploaders and make fields generate by JSON as well
+ activate separated css files
- when "No space left on device" is detected a check to see if you are over your account storage max will be done, if so then it will force an unlock and create a purge request.
- close fs.watch and delete monitor's folder onMonitorStop to drop requests when monitor is disabled.
- shorten file trigger timeout from 3 seconds to 1.2
- SMTP events check if monitor is started upon receipt, drop request if not
- In Global Detector Settings you can now find the option to trigger other cameras when a particular monitor has been triggered.
+ Remember monitor order in dashboard list
+ Allow sending frames to Plugin based detection with Primary Send Frames off.
+ minor clean up
- This allows you to drop a file into `/dev/shm/streams/dropInEvents/[GROUP KEY]/[MONITOR ID]` to trigger an event.
- This is useful for cameras that can do FTP upload on Motion detected with their internal detector.
- `dropInEventsDir` can be configured in conf.json
- this will avoid the `ER_LOCK_WAIT_TIMEOUT` error by breaking up the video list into sets of 100 then querying each set as a single query rather the entire video list as a single query.
- Instead of including the npmjs module; the rtmp portion has been ripped from the main package.
- to enable the RTMP server with default settings just add `"rtmpServer":true` to your conf.json
- `rtmpServer` object in conf.json correlates to `rtmp` object in NodeMediaServer configuration.
- WARNING : currently no authentication for incoming RTMP streams.
- Notification Video Length : The length of the video that gets sent to your Notification service, like Email or Discord.
- New option appears under Recording Timeout.
It's very annoying to get partial video because the process died or was shutdown uncleanly. This fixes the issue. Here is an explanation of the options set:
Normally, a MOV/MP4 file has all the metadata about all packets stored in one location (written at the end of the file.
faststart: Will move the metadata to the beginning of the file after the recording is complete.
frag_keyframe: Starts a new fragment at each video keyframe. This allows a file to work, even if the metadata isn't written at the end or beginning of the file, since it encodes with each keyframe. (Tested with kill -9 on and start/stop recording where the end metata data wasn't written)
empty_moov: will cause output to be 100% fragmented; without this the first fragment will be muxed as a short movie (using moov) followed by the rest of the media in fragments.
- add zip to ubuntu and centos installers.
- add script to create terminal commander on shinobi start or manually by terminal
- update terminal commander to use dynamic value for shinobi path
- Audio Detector measures decibels (dB). Section can be found under Motion Detection.
- Regions can now be used with Object detection alone, find the option the Object Detection section.
- Scheduling System will allow automatically activating Monitor States based on time. GUI will be posted in the next commit.
+ Update Installers
+ Update framework.sql
+ `npm test` will run the test
+ Minor Bug Fixes
- Merge test functions into main app and invoke based on 1 of 2 Methods.
- Method 1 : Add `"testMode":true` to conf.json to start Shinobi in Test Mode.
- Method 2 : run `node camera.js test` in the Shinobi folder.
- CTRL+C to exit process and cleanup test files.
+ Code cleanup and bug fixes (found while testing the codeTester module)
+ Update "Entire System Export"
+ Additional Extenders
+ Make Input Map default "0" instead of "0:0"
+ Remove extra Whitespace from LICENSE and update the "Modification of this Software Product.".
- add `"detectorMergePamRegionTriggers":true` to your conf.json for it to take affect.
- using this can break any Detector Filters that rely on the region name for trigger. If using `equal to` please change to `contains`.
- Unlike /configureMonitor/ this method, /monitorSates/, can take single veriables for a monitor edit.
+ clean /configureMonitor/'s addEdit portion and make it a separate function
+ add "raw" catch. if "raw" not found another database init will be requested
+ fix "undefined" monitor status for Disabled monitors on Shinobi start
+ fix color threshold save for region editor
+add fallback for snapBuffer failure
- make pam-diff static to accomodate additions without creating a new npm repo. Thanks Kevin Godell for the amazing detection engine!
- Learn more about the original pam-diff by Kevin here : https://github.com/kevinGodell/pam-diff
+ make cron video deletes happen in bulk rather than 1 query per video
+ clear eventBaseRecording timeout to avoid fallback action after success
+make non-python yolo show object detection section, remove python-yolo
+ Allow global designation for Backblaze B2, Amazon S3, and WebDAV
+ allow frame transfer to plugin by "File in RAM" (experimental and currently only works with yolo and dlib)
+ API method for account save/edit
+ Add C++ based Dlib plugin (face-recognition)
+ allow choosing tiny or regular weights for yolo
- remove old python-dlib plugin because it is just bad (yucky python)
- run test with "node test.js" or "npm test" inside the Shinobi directory
- minor readability cleanup
+ show Object Detection section with yolo plugin
+ prettify Video Grid css
+ make thumbnail load recursive instead of at once
+ cleanup some comments functions
+ move some functions to startup.js
+ add ability to search videos with "startFrom" and "startTo" instead of "start" and "end"
- "config.cron.deleteOrphans" has been removed. It has been replace by a one-time-run at startup with "config.insertOrphans". As the variable name suggests, instead of deleting, it will insert videos found without a database row.
- By default "config.orphanedVideoCheckMax" will only check up to 20 video. You can raise this value to any number you choose but be careful as it will check that number of videos on every start.
- this function also runs if a camera exits unexpectedly.
- snapshot will be created on first user entry and stored in temp directory if JPEG API is disabled
+ Fix "File Delete Error" caused by permission issue+++
- viewer count detection added for : mjpeg, poseidon over http, flv over http, h265 over http, and raw h264
- with it you can detect when a stream is opened without the websocket connection
+ move web stream paths to their own file "webServerStreamPaths.js"
- Update API to allow request on "all"
- Update superAuth
- add temporary superSessionKey to use REST API in Superuser dashboard
- fix favicon in Superuser panel
- make some UI adjustments in Superuser panel
- split up "checkMaximumSensitivity", "checkTriggerThreshold", and "filterTheNoise" for easier reading
- merge some "$.zO.e.on change" functions
+ remove old ffmpegLocation.js
- Add Extender functions in some places. Hopefully will add in all functions after more rewriting.
- Add Backblaze B2 uploading support
- Add support for managing cloud storage space used
- put all cloud video management functions in one library file using Extender
- separate uses of "s.s". s.s = JSON.stringify again and API calls with s.s will use "s.prettyPrint"
- move ffmpeg init functions
- rename s.beat to better reflect purpose
- libs/startup.js should be easy to read now
- some comments in libs/videos.js
- make specific function for preQuery stuff
- add win64 to isWin check
- clean up startupText values
- run npm install ffbinaries to use that downloader instead.
- ffmpeg-static and ffbinaries should get the same version just get them in a different way.