Viseron kasutamine operatsioonisüsteemiga Debian

Allikas: Imre kasutab arvutit
Redaktsioon seisuga 22. märts 2026, kell 22:13 kasutajalt Imre (arutelu | kaastöö) (→‎Nginx frontend)
Mine navigeerimisribaleMine otsikasti

Sissejuhatus

TODO

Misc

bind mounts

TODO

docker compose

root@viseron-plms:/srv/viseron/dc# cat docker-compose.yaml
services:
  viseron:
    image: roflcoopter/viseron:latest
    container_name: viseron
    shm_size: "1024mb"
    volumes:
      - /srv/viseron/volume/segments:/segments
      - /srv/viseron/volume/snapshots:/snapshots
      - /srv/viseron/volume/thumbnails:/thumbnails
      - /srv/viseron/volume/event_clips:/event_clips
      - /srv/viseron/volume/timelapse:/timelapse
      - /srv/viseron/volume/config:/config
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 8888:8888

tulemus

root@viseron-plms:/srv/viseron/dc# docker compose up -d

root@viseron-plms:/srv/viseron/dc# docker compose ls
NAME                STATUS              CONFIG FILES
dc                  running(1)          /srv/viseron/dc/docker-compose.yaml

Viseron seadistamine

Settings -> Configuration

kus

ffmpeg:
  camera:
    camera_1:  # This value has to be unique across all cameras
      name: Sissesoit
      host: 192.0.0.11
      port: 554
      path: /Streaming/Channels/1
      username: kasutajanimi
      password: parool

    camera_2:  # This value has to be unique across all cameras
      name: Valjasoit
      host: 192.0.0.12
      port: 554
      path: /Streaming/Channels/1
      username: kasutajanimi
      password: parool

## Then add an object detector
darknet:
  object_detector:
    cameras:
      camera_1:  # Attach detector to the configured camera_1 above
        fps: 1
        scan_on_motion_only: false  # Scan for objects even when there is no motion
        labels:
          - label: person
            confidence: 0.75
            trigger_event_recording: true

## You can also use motion detection
mog2:
  motion_detector:
    cameras:
      camera_1:  # Attach detector to the configured camera_2 above
        fps: 1


## To tie everything together we need to configure one more component.
nvr:
  camera_1:  # Run NVR for camera_1
  camera_2:  # Run NVR for camera_1

Logi

root@viseron-plms:/srv/viseron/dc# docker compose logs --tail 40 | grep camera_1
viseron  | 2026-03-22 16:49:47.988 [ERROR   ] [viseron.components.ffmpeg.stream.camera_1] - [h264 @ 0x563437464280] left block unavailable for requested intra4x4 mode -1
viseron  | 2026-03-22 16:49:52.248 [INFO    ] [viseron.components] - Setup of domain camera for component ffmpeg with identifier camera_1 took 5.4 seconds
viseron  | 2026-03-22 16:49:52.261 [INFO    ] [viseron.components] - Setup of domain motion_detector for component mog2 with identifier camera_1 took 0.0 seconds
viseron  | 2026-03-22 16:49:52.278 [INFO    ] [viseron.components] - Setup of domain object_detector for component darknet with identifier camera_1 took 0.0 seconds
viseron  | 2026-03-22 16:49:52.337 [INFO    ] [viseron.components.nvr.nvr.camera_1] - NVR for camera Sissesoit initialized
viseron  | 2026-03-22 16:49:52.339 [INFO    ] [viseron.components] - Setup of domain nvr for component nvr with identifier camera_1 took 0.1 seconds

Nginx frontend

Tööpõhimõte

Väited

  • viseron töötab alati / url path peal

Kui frontend käivitada /viseron/ url path peal, siis tuleb öelda

  • viseron rakendusele, et ta genereeriks lõppkasutajale linke jms aadress arvestades url path algusse '/viseron' elemendi
  • nginx rakendusele, et ta teenindaks sissetulevaid lõppkasutaja päringuid aadressilt algusega '/viseron' url path, aga proksiks nad viseronile / url path peale

Viseron seadistamine

...

webserver:
  subpath: "/viseron"

Nginx seadistamine

root@plms-tm:~# cat /etc/nginx/conf.d/default.conf
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

...


root@plms-tm:~# cat /etc/nginx/sites-enabled/xxx.auul.pri.ee.conf

...

location /viseron/ {
    proxy_pass http://192.0.0.56:8888/;  # Note: trailing slash strips the /viseron prefix
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;

    # WebSocket support (required for live updates)
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_read_timeout 86400;
    auth_basic "Basic auth";
    auth_basic_user_file /etc/nginx/htpasswd;
}

...

nvidia cuda

TODO

Hailo

TODO

Kasulikud lisamaterjalid

  • TODO