Viseron
Self-hosted, local-only NVR and AI computer vision software
Alternative to: ring, nest, wyze
v2.2.0
2023-04-22This release contains a lot of tweaks and fixes as well as some cool new features!
Authentication
The biggest change in this release is the addition of authentication for the frontend/API.
It is disabled by default but can be enabled by adding auth to your webserver config.
webserver:
auth:
When you first enable authentication you will be greeted with an onboarding page which allows you to create your first user.
At the moment you can only create this first user. Complete user handling is planned for the next release.

Enabling authentication protects all resources, including streams and videos, so if you are consuming these directly through Viserons API from another tool you will have some issues. I will make sure to properly implement and document a good way of accessing the API and resources from third-party tools even with auth enabled in a future release.
Things that needs to be added before i consider this feature done:
- Long lived access tokens for third party consumers of the API
- Create more users
- Delete/update users
- IP bans for failed login attempts
Failed cameras
Cameras that are unavailable during startup will now properly retry setup with automatic back-off.
Any camera that cant be successfully setup will be displayed in the frontend, displaying the error:

The red border represents failed cameras, and the orange border represents cameras that are actively retrying setup. A bonus feature here is that the recordings for the cameras are still available for viewing in the frontend, neat right?!
General fixes
- FFmpeg upgraded to 5.1.2 with improved hardware acceleration for RPi4
- H265 fix for
gstreamer - Audio is transcoded to
aacby default if the original codec (pcm_alaw,pcm_mulaw) is not supported in.mp4files. Previously recordings would be stored in.mkvfiles instead but that proved to be confusing. - Changed how
dlibandsklearnis installed which should solve a lot of issues with this component on thejetson-nanoandaarch64image
What’s Changed
- set correct parsing element from predefined map by @roflcoopter in https://github.com/roflcoopter/viseron/pull/501
- transcode audio to aac instead of changing to mkv by @roflcoopter in https://github.com/roflcoopter/viseron/pull/503
- Frontend authentication by @roflcoopter in https://github.com/roflcoopter/viseron/pull/469
- bcrypt wheel fix and sklearn from pip by @roflcoopter in https://github.com/roflcoopter/viseron/pull/507
- Feature/wheel improvements by @roflcoopter in https://github.com/roflcoopter/viseron/pull/509
- Feature/ffmpeg 5.1.2 by @roflcoopter in https://github.com/roflcoopter/viseron/pull/511
- ffmpeg stimeout > timeout for rtsp by @roflcoopter in https://github.com/roflcoopter/viseron/pull/512
- pin dlib==19.22 to fix segfault crash by @roflcoopter in https://github.com/roflcoopter/viseron/pull/516
- Feature/authentication tests by @roflcoopter in https://github.com/roflcoopter/viseron/pull/521
- redirect to homepage when onboarding completed by @roflcoopter in https://github.com/roflcoopter/viseron/pull/522
- add raw_pipeline option to gstreamer component by @roflcoopter in https://github.com/roflcoopter/viseron/pull/525
- ffmpeg_loglevel option for recorder by @roflcoopter in https://github.com/roflcoopter/viseron/pull/526
- change generation of segment script by @roflcoopter in https://github.com/roflcoopter/viseron/pull/528
- raise DomainNotReady on FFProbe error/timeout by @roflcoopter in https://github.com/roflcoopter/viseron/pull/529
- Show failed cameras in the frontend by @roflcoopter in https://github.com/roflcoopter/viseron/pull/532
- Reduce bundle size by @roflcoopter in https://github.com/roflcoopter/viseron/pull/533
- properly navigate to login/onboarding by @roflcoopter in https://github.com/roflcoopter/viseron/pull/534
- v2.2.0 by @roflcoopter in https://github.com/roflcoopter/viseron/pull/550
Full Changelog: https://github.com/roflcoopter/viseron/compare/v2.1.1…v2.2.0