Skip to content

Releases: roflcoopter/viseron

v3.0.0b11 - Timeline player syncing

15 Oct 09:47
82d37c3
Compare
Choose a tag to compare
Pre-release

This release mainly contains new functionality to keep all the players on the Event/Timeline views in sync.
It can currently be a bit unclear if a stream is paused or not when it gets out of sync due to missing segments, that will be improved in the next beta.

Many performance improvements have also been made:

  • Fetching available timespans is now done over websocket instead of through the API which reduces the amount of requests made significantly.
  • If many events came close together it could cause stalls since each event would trigger a refetch from the API. These refetches are now debounced to avoid this.
  • The entries in the event table is now virtualized (and the thumbnails only load when you stop scrolling).
    This significantly reduces lag and sluggishness of the table when having lots of events displayed.

And lastly, React has been upgrade to version 18, along with MUI v6 and React Query v5.
Togheter these upgrades should also equate to some performance improvements.

Details of all changes

  • Sync all active players on the Events/Timeline page
  • Upgrade to React 18
  • Upgrade to MUI v6
  • Upgrade to react-query v5
  • Update timespans over using websockets
  • Use system event listeners to refetch event queries
  • Custom video controls
  • Pick correct stream format config for substreams
  • Massive performance increase for the Event table when having many events

For discussions, please use this discussion: #721

Full Changelog: v3.0.0b10...v3.0.0b11

v3.0.0b10 - Streaming improvements

31 Aug 21:46
cff837d
Compare
Choose a tag to compare
Pre-release

This release is focused mainly on a new layout for the Events page.
You can now select multiple cameras at once and they will be shown in a grid. Camera streams will automatically resize to give as much coverage as possible.
Selecting cameras is done using the floating action button in the bottom right corner.
The streams are not yet properly synchronized. I will work on that for a coming beta.
Here is a short demo of the grid:
viseron-events-camera-grid

There is also a new filter button located next to the Events/Timeline tabs that allows you to filter out only the relevant event types.
viseron-events-filters

Details of all changes

  • Adds filters to the Events and Timeline tabs so you can filter out only the events you want (Motion, object, ALPR etc)
  • Upgrades HLS.js
  • Fix calling loadSource twice when viewing 24/7 recordings, resulting in a browser console error
  • Generate HLS segments directly from ffmpeg instead of writing mp4 files and manually fragmenting.
    This significantly improves the stream quality and removes some choppyness.
  • Make Events page more compact by removing the camera selection grid. Selecting cameras is done using the floating action button in the bottom right corner
  • Never delete a frame from memory if it is still the current frame.
    Should reduce some intermittent errors in the logs
  • Use the ffmpeg hls_flags program_date_time option to get the exact creation time for segments. Previously milliseconds were discarded causing some timing issues
  • Use settings under recorder for transcoding the generated segments
  • Events page now allows selection of multiple cameras and shows them in a grid with a dynamic layout based on the screen size
  • FFmpeg now deletes segments on its own in case of a Viseron crash
  • RegEx performance improved to avoid hanging on large m3u8 playlists
  • Improve speed of SQL queries
  • Camera cards now has status text and indicators showing various states
  • Frontend optimizations
  • Fix missing sahred frames of motion and object detecors
  • Enable safe mode if config fails to load (if a secret is missing for instance)
  • Other minor bug fixes

For discussions, please use this discussion: #721

What's Changed

New Contributors

Full Changelog: v3.0.0b9...v3.0.0b10

v3.0.0b9 - EdgeTPU fix

09 Jul 21:13
Compare
Choose a tag to compare
Pre-release

For discussions, please use this discussion: #721

Full Changelog: v3.0.0b8...v3.0.0b9

v3.0.0b8 - License plate recognition events

30 Jun 18:22
c43c791
Compare
Choose a tag to compare
  • OpenCV 4.10.0
  • Annotate images with supervision for nicer looking text and bounding boxes
  • Fix HLS playback bug when not using auth
  • Darknet on CPU now runs in a separate python process
  • Store License plate recognition snapshots
  • Show License plate recognition in the timeline/events tabs
  • Store Motion detection snapshots
  • Show Motion detection in the events tab
  • Correctly calculate event amounts in the date picker
  • Allow running object and motion detectors with trigger_recorder: true at the same time without using scan_on_motion_only: true or recorder_keepalive

For discussions, please use this discussion: #721

Full Changelog: v3.0.0b7...v3.0.0b8

v3.0.0b7 - Face recognition events

11 Jun 14:59
0312ce9
Compare
Choose a tag to compare
Pre-release

Changes

  • Show Face Recognition events on the Events and Timeline tabs
  • Events on the Events tab is now grouped to avoid clutter
  • Fix auth check always being enabled when viewing the timeline
  • Escape camera passwords
  • Add better logic for redacting sensitive information from the logs
  • New config option check_interval for each storage tier to control the minimum time between moving/deleting files
  • Allow running without any detectors to only store continuous recordings
  • Upgrade all python dependencies

For discussions, please use this discussion: #721

Full Changelog: v3.0.0b6...v3.0.0b7

v3.0.0b6 - GStreamer fix and VAAPI support

21 May 11:35
8a85f89
Compare
Choose a tag to compare

Fixes

  • Small fix to GStreamer. A bug was introduced when upgrading to Ubuntu 22.04 which caused pipelines to hang
  • Support for VAAPI decoding of streams in GStreamer

Full Changelog: v3.0.0b5...v3.0.0b6

v3.0.0b5 - Delete unwanted files instead of moving

18 May 09:25
217f1c4
Compare
Choose a tag to compare

Fixes

  • Make sure to instantly delete files instead of moving them to succeeding tiers that wont store them
  • Crossbuild gpac so it works on aarch64, jetson-nano etc
  • Make sure jetson-nano finds the correct postgresql version

Full Changelog: v3.0.0b4...v3.0.0b5

v3.0.0b4 - Ubuntu 22.04 Jammy

08 May 13:32
05f5167
Compare
Choose a tag to compare
Pre-release

Fixes

  • Improve handling of clip created by create_event_clip
  • Frontend breadcrumbs partially blocking icons in header
  • Show Viseron version in the footer and the logs
  • Containers are now based on Ubuntu Jammy and Python 3.10
  • EdgeTPU runs in a separate python 3.9 shell since it does not support Python 3.10 yet
  • Automatic PostgreSQL version upgrades
  • Upgrade CUDA to 12.3
  • Upgrade OpenCV to 4.9.0
  • Upgrade Darknet
  • Upgrade Dlib to 19.24.1
  • Upgrade OpenCL and VA-API
  • Make sure that postgres major version upgrades succeed when superuser != postgres

Full Changelog: v3.0.0b3...v3.0.0b4

For discussions, please use this discussion: #721

v3.0.0b3 - Fix builds

08 Apr 12:59
Compare
Choose a tag to compare
v3.0.0b3 - Fix builds Pre-release
Pre-release

Small version bump to fix failing Azure builds

v3.0.0b2 - Fix playback and running as root

08 Apr 08:43
b2007ab
Compare
Choose a tag to compare

Various fixes for the v3.0.0b1 release

Fixes:

  • Make sure thumbnails are lazyloaded properly on Events tab
  • Set a new HLS Client ID everytime the source changes. Resolves some playback issues
  • Make Camera Grid on Events page scrollable so the page remains the same size no matter how many cameras you have.
  • Reduce some spacing in the frontend
  • The Hover Line which shows the time is now properly positioned
  • Connect to DB using the postgres user to allow running the container as root
  • Set default value for EXTINF for fragmented mp4s if it cant be read properly from the manifest file.
    This resolves an issue where playback and loading of the timeline would fail because there were segments that had EXTINF: null in the DB

If you get an error similar to this: psycopg2.OperationalError: connection to server at "localhost" (::1), port 5432 failed: FATAL: role "postgres" does not exist you need to stop Viseron and delete the postgresql folder in the config dir.

On next restart Viseron will recreate the DB with proper permissions