This 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
aac
by default if the original codec (pcm_alaw
,pcm_mulaw
) is not supported in.mp4
files.
Previously recordings would be stored in.mkv
files instead but that proved to be confusing. - Changed how
dlib
andsklearn
is installed which should solve a lot of issues with this component on thejetson-nano
andaarch64
image
What's Changed
- set correct parsing element from predefined map by @roflcoopter in #501
- transcode audio to aac instead of changing to mkv by @roflcoopter in #503
- Frontend authentication by @roflcoopter in #469
- bcrypt wheel fix and sklearn from pip by @roflcoopter in #507
- Feature/wheel improvements by @roflcoopter in #509
- Feature/ffmpeg 5.1.2 by @roflcoopter in #511
- ffmpeg stimeout > timeout for rtsp by @roflcoopter in #512
- pin dlib==19.22 to fix segfault crash by @roflcoopter in #516
- Feature/authentication tests by @roflcoopter in #521
- redirect to homepage when onboarding completed by @roflcoopter in #522
- add raw_pipeline option to gstreamer component by @roflcoopter in #525
- ffmpeg_loglevel option for recorder by @roflcoopter in #526
- change generation of segment script by @roflcoopter in #528
- raise DomainNotReady on FFProbe error/timeout by @roflcoopter in #529
- Show failed cameras in the frontend by @roflcoopter in #532
- Reduce bundle size by @roflcoopter in #533
- properly navigate to login/onboarding by @roflcoopter in #534
Full Changelog: v2.1.1...v2.2.0b1