Viseron kasutamine operatsioonisüsteemiga Debian: erinevus redaktsioonide vahel
Allikas: Imre kasutab arvutit
Mine navigeerimisribaleMine otsikasti
Resümee puudub |
Resümee puudub |
||
| (ei näidata sama kasutaja 9 vahepealset redaktsiooni) | |||
| 2. rida: | 2. rida: | ||
TODO |
TODO |
||
| + | |||
| + | * https://github.com/roflcoopter/viseron |
||
| + | * https://hub.docker.com/u/roflcoopter |
||
| + | |||
| + | ===Keskkonna ettevalmistamine=== |
||
| + | |||
| + | * nt Debian v. 13 operatsioonisüsteemil põhinev dockerhost |
||
| + | * rtsp st tavalised ip kaamerad |
||
| + | |||
| + | Tundub, et tulemusena uuemal ajal docker maht asub mitte /var/lib/docker aga /var/lib/containerd kataloogis |
||
| + | |||
| + | <pre> |
||
| + | root@viseron-plms:~# df -T -t ext4 -h |
||
| + | Filesystem Type Size Used Avail Use% Mounted on |
||
| + | /dev/mapper/system-root ext4 13G 1.7G 11G 14% / |
||
| + | /dev/vdb ext4 63G 919M 59G 2% /srv |
||
| + | /dev/vdc ext4 24G 8.3G 15G 37% /var/lib/containerd |
||
| + | </pre> |
||
===Misc=== |
===Misc=== |
||
| 21. rida: | 39. rida: | ||
shm_size: "1024mb" |
shm_size: "1024mb" |
||
volumes: |
volumes: |
||
| − | - /srv/viseron/segments:/segments |
+ | - /srv/viseron/volume/segments:/segments |
| − | - /srv/viseron/snapshots:/snapshots |
+ | - /srv/viseron/volume/snapshots:/snapshots |
| − | - /srv/viseron/thumbnails:/thumbnails |
+ | - /srv/viseron/volume/thumbnails:/thumbnails |
| − | - /srv/viseron/event_clips:/event_clips |
+ | - /srv/viseron/volume/event_clips:/event_clips |
| − | - /srv/viseron/timelapse:/timelapse |
+ | - /srv/viseron/volume/timelapse:/timelapse |
| − | - /srv/viseron/config:/config |
+ | - /srv/viseron/volume/config:/config |
- /etc/localtime:/etc/localtime:ro |
- /etc/localtime:/etc/localtime:ro |
||
ports: |
ports: |
||
| 35. rida: | 53. rida: | ||
<pre> |
<pre> |
||
| + | root@viseron-plms:/srv/viseron/dc# docker compose up -d |
||
| + | |||
root@viseron-plms:/srv/viseron/dc# docker compose ls |
root@viseron-plms:/srv/viseron/dc# docker compose ls |
||
NAME STATUS CONFIG FILES |
NAME STATUS CONFIG FILES |
||
dc running(1) /srv/viseron/dc/docker-compose.yaml |
dc running(1) /srv/viseron/dc/docker-compose.yaml |
||
| + | |||
| + | root@viseron-plms:~# docker image ls |
||
| + | IMAGE ID DISK USAGE CONTENT SIZE EXTRA |
||
| + | roflcoopter/viseron:latest 6d7b4c1ff718 8.79GB 2.8GB U |
||
</pre> |
</pre> |
||
| + | |||
| + | Viseron seadistamine |
||
| + | |||
| + | Settings -> Configuration |
||
| + | |||
| + | kus |
||
| + | |||
| + | <pre> |
||
| + | 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_2 |
||
| + | </pre> |
||
| + | |||
| + | Logi |
||
| + | |||
| + | <pre> |
||
| + | 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 |
||
| + | </pre> |
||
| + | |||
| + | ===Nginx frontend=== |
||
| + | |||
| + | ====Tööpõhimõte==== |
||
| + | |||
| + | Väited |
||
| + | |||
| + | * viseron töötab iseenesest 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==== |
||
| + | |||
| + | <pre> |
||
| + | ... |
||
| + | |||
| + | webserver: |
||
| + | subpath: "/viseron" |
||
| + | </pre> |
||
| + | |||
| + | ====Nginx seadistamine==== |
||
| + | |||
| + | <pre> |
||
| + | 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; |
||
| + | } |
||
| + | |||
| + | ... |
||
| + | |||
| + | </pre> |
||
| + | |||
| + | ===nvidia cuda=== |
||
| + | |||
| + | TODO |
||
| + | |||
| + | ===Hailo=== |
||
| + | |||
| + | TODO |
||
===Kasulikud lisamaterjalid=== |
===Kasulikud lisamaterjalid=== |
||
Viimane redaktsioon: 22. märts 2026, kell 22:27
Sissejuhatus
TODO
Keskkonna ettevalmistamine
- nt Debian v. 13 operatsioonisüsteemil põhinev dockerhost
- rtsp st tavalised ip kaamerad
Tundub, et tulemusena uuemal ajal docker maht asub mitte /var/lib/docker aga /var/lib/containerd kataloogis
root@viseron-plms:~# df -T -t ext4 -h Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/system-root ext4 13G 1.7G 11G 14% / /dev/vdb ext4 63G 919M 59G 2% /srv /dev/vdc ext4 24G 8.3G 15G 37% /var/lib/containerd
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 root@viseron-plms:~# docker image ls IMAGE ID DISK USAGE CONTENT SIZE EXTRA roflcoopter/viseron:latest 6d7b4c1ff718 8.79GB 2.8GB U
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_2
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 iseenesest 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