1.8.0 - Docker revamp
This release brings a huge revamp to the Docker containers.
This was a very big change and some bugs might still be present.
There is also experimental support for the RPi4 which might not work as expected in this first version.
The support for RPi4 will improve in the coming version, but i need your help with testing and reporting bugs.
Breaking changes
-
Docker image names have changed according to this table.
Note thatroflcoopter/viseron
is now a multiarch image which means you dont need to pick between the images yourself, unless you want CUDA support.Old New roflcoopter/viseron
roflcoopter/amd64-viseron
roflcoopter/viseron-cuda
roflcoopter/amd64-cuda-viseron
roflcoopter/viseron-vaapi
Removed, same as roflcoopter/amd64-viseron
roflcoopter/viseron-rpi3
roflcoopter/rpi3-viseron
N/A roflcoopter/aarch64-viseron
-
port
is now required forsubstream
Changes and new Features
-
New config option
require_motion
for labels.
If set to true, the recorder will stop when motion is no longer detected, even if the object still is.
This is useful to avoid never ending recordings of stationary objects, such as a car on a driveway. -
Complete rewrite of all Dockerfiles(!).
Multistage builds are now used extensively which dramatically reduces the size of the containers.
All containers are now built on Azure Pipelines which means i no longer have to build them all locally(!!).
Cross-building is done using Balenalibs baseimages, which means we now have (experimental) support for the RPi4(!!!).
This new way of working with containers mean i can easily support different hardware, such as the Jetson Nano in the near future.
Multiarch images are also in play, which means you dont need to pull different images based on your architecture, unless you want a specific one, like the amd64 CUDA version. Closes #1, closes #66 -
Static MJPEG streams can now be configured, which provides better performance due to processing only happening once
See the new section on Static MJPEG Streams in the README for more information. Closes #23 -
An MJPEG stream is now served for each camera.
A number of query parameters are available to control resolution, what is drawn on the frames etc.
See the new section in the README for more information. Closes #23 -
stream_format
andport
is now supported forsubstream
. Closes #112 -
Viseron no longer runs as root in the containers. You can now set PUID and PGID as environment variables to control the user.
If you are using docker-compose it might look like this:version: "2.4" services: viseron: image: roflcoopter/viseron:latest container_name: viseron volumes: - <recordings path>:/recordings - <config path>:/config - /etc/localtime:/etc/localtime:ro environment: - PUID=1000 - PGID=1000
-
Pin
libedgetpu-max
to avoid version mismatch -
New config option
save_unknown_faces
for dlib face recognition.
If set, unknown faces will be saved in a folder named unknown next to your regular faces folders.
These can then be manually moved to the folder of the correct person to improve accuracy. Closes #90, Closes #96 -
Audio is now recorded by default if the camera supports it. If you want you can specify the audio codec with
audio_codec
underrecorder
. This feature is experimental and i need some testers on it. -
Default to YOLOv4 instead of YOLOv4-tiny. You can go back yo using YOLOv4-tiny by changing
model_path
.
Fixes
- The labels file was corrupted in the amd64* images, so labels of objects made no sense.
- Better reporting of errors when loading EdgeTPU, fixes #76
Docker images will be on Docker Hub shortly