github roflcoopter/viseron v2.0.0b1
2.0.0b1 - Viseron rewrite

latest releases: v3.0.0b5, v3.0.0b4, v3.0.0b3...
pre-release18 months ago

This release features a massive rewrite that I have been working on for the past year.

It focuses on decoupling all parts of Viseron, making it more modularized. This allows for easier integration of new functionality.

The config.yaml file will change completely so there is some work that has to be done by each user to port over to the new version.
The general config format is a component which implements one or more domains.
Each camera has a unique camera identifier which flows through the entire configuration.

The nvr component then ties all these different domains together and provides the full functionality.

The big benefit of this new format is that you can mix and match components more freely.
For instance, you could use different object detectors for different cameras, you are not tied into just one.

Config Example
ffmpeg: # <-- component
  camera: # <-- domain
    camera_one: # <-- camera identifier
       name: Camera 1
       host: 192.168.10.10
       username: test
       password: test
    camera_two: # <-- camera identifier
       name: Camera 2
       host: 192.168.10.11
       username: test
       password: test
       ....

darknet: # <-- component
  object_detector: # <-- domain
    model: /my_custom_model/model.weights
    cameras:
      camera_one: # <-- camera identifier
        fps: 5

deepstack:  # <-- component
  host: deepstack # <-- component config option
  port: 5000 # <-- component config option
  object_detector: # <-- domain
    cameras:
      camera_two:  # <-- camera identifier
        fps: 1
        labels:
          - label: person
            confidence: 0.75
            trigger_recorder: false
  face_recognition: # <-- domain
    cameras:
      camera_one:
      camera_two:
    labels:
      - person

background_subtractor: # <-- component
  motion_detector: # <-- domain
    cameras:
      camera_one: # <-- camera identifier
        fps: 1
        mask:
          - coordinates:
              - x: 400
                y: 200
              - x: 1000
                y: 200
              - x: 1000
                y: 750
              - x: 400
                y: 750

nvr: # <-- component
  camera_one: # <-- camera identifier
  camera_two: # <-- camera identifier

Frontend

There is now a UI included in Viseron, writen in React/TypeScript.
It is enabled by default and can be reached on port 8888 inside the container by default.

Currently it features basic functionality like viewing cameras, recordings and editing the configuration.
It will be expanded upon in the future.

Some screenshots of the UI

Cameras:
Viseron-screenshot-cameras

Recordings:
Viseron-screenshot-recordings

Configuration:
Viseron-screenshot-configuration

Jetson Nano support

This release also features better Jetson Nano support through the gstreamer component.
This means that you can utilize your Nano for hardware accelerated camera decoding and object detection.

Documentation site

The documentation has moved over from being in a README format to a dedicated site.
Hopefully it will help you use Viseron better.
I need your help on how it can be improved, writing good docs is always hard.

I am especially proud of the components page, which is mostly generated from the config schema used.
This means that the documentation and schema will always match, yay!

The documentation is hosted here: https://viseron.netlify.app/

What's Changed

Full Changelog: v1.10.2...v2.0.0b1

Don't miss a new viseron release

NewReleases is sending notifications on new releases.