Installation
Viseron runs exclusively in Docker.
First of all, choose the appropriate Docker container for your machine.
Builds are published to Docker Hub.
Have a look at the supported architectures below.
Supported architectures
Viserons images support multiple architectures such as amd64
, aarch64
and armhf
.
Pulling roflcoopter/viseron:latest
should automatically pull the correct image for you.
An exception to this is if you have the need for a specific container, eg the CUDA version.
Then you will need to specify your desired image.
The images available are:
Image | Architecture | Description |
---|---|---|
roflcoopter/viseron | multiarch | Multiarch image |
roflcoopter/aarch64-viseron | aarch64 | Generic aarch64 image, with RPi4 hardware accelerated decoding/encoding |
roflcoopter/amd64-viseron | amd64 | Generic image |
roflcoopter/amd64-cuda-viseron | amd64 | Image with CUDA support |
roflcoopter/rpi3-viseron | armhf | Built specifically for the RPi3 with hardware accelerated decoding/encoding |
roflcoopter/jetson-nano-viseron | aarch64 | Built specifically for the Jetson Nano with: - GStreamer hardware accelerated decoding - FFmpeg hardware accelerated decoding - CUDA support |
Running Viseron
Below are a few examples on how to run Viseron.
Both docker
and docker-compose
examples are given.
You have to change the values between the brackets {}
to match your setup.
64-bit Linux machine
64-bit Linux machine with VAAPI (Intel NUC for example)
64-bit Linux machine with NVIDIA GPU
On a Jetson Nano
On a RaspberryPi 4
RaspberryPi 3b+
Viseron will start up immediately and serve the Web UI on port 8888
.
Please proceed to the next chapter on how to configure Viseron.
VAAPI hardware acceleration support is built into every amd64
container.
To utilize it you need to add --device /dev/dri
to your docker command.
EdgeTPU support is also included in all containers.
To use it, add -v /dev/bus/usb:/dev/bus/usb --privileged
to your docker command.
User and Group Identifiers
When using volumes (-v
flags) permissions issues can happen between the host and the container.
To solve this, you can specify the user PUID
and group PGID
as environment variables to the container.
Docker command
Docker Compose
Ensure the volumes are owned on the host by the user you specify.
In this example PUID=1000
and PGID=1000
.
To find the UID and GID of your current user you can run this command on the host:
id your_username_here
Viseron runs as root
(PUID=0
and PGID=0
) by default.
This is because it can be problematic to get hardware acceleration and/or EdgeTPUs to work properly for everyone.
The s6-overlay
init scripts do a good job at fixing permissions for other users, but you may still face some issues if you choose to not run as root
.
If you do have issues, please open an issue and i will do my best to fix them.