prvni commit
This commit is contained in:
59
README.md
Normal file
59
README.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# Hikvision NVR webcam snapshot
|
||||
|
||||
Jednoduchý skript stáhne aktuální obrázek z kanálu Hikvision NVR a atomicky jej
|
||||
publikuje do zadaného souboru na webu. Mimo společné časové okno publikuje
|
||||
připravený dummy obrázek. Podporuje jeden i více kanálů.
|
||||
|
||||
## Instalace
|
||||
|
||||
Požadavek je Python 3.9 nebo novější, bez externích balíčků.
|
||||
|
||||
1. Zkopírujte `.env.example` jako `.env`.
|
||||
2. Doplňte adresu NVR, samostatného uživatele pouze s potřebným oprávněním,
|
||||
heslo, kanál a cílovou cestu.
|
||||
3. Vedle skriptu uložte vlastní `dummy.jpg` (nebo změňte `DUMMY_PATH`).
|
||||
4. Jednou skript spusťte ručně:
|
||||
|
||||
```sh
|
||||
python3 snapshot.py
|
||||
```
|
||||
|
||||
Heslo v `.env` může obsahovat mezery a `#`; uvozovky jsou volitelné. Soubor
|
||||
`.env` nepatří do verzovacího systému.
|
||||
|
||||
## Pravidelné spouštění
|
||||
|
||||
Skript sám čekání ani plánování neprovádí. Na Linuxu jej lze volat každou minutu:
|
||||
|
||||
```cron
|
||||
* * * * * cd /cesta/k/hik2webcam && /usr/bin/python3 snapshot.py >> snapshot.log 2>&1
|
||||
```
|
||||
|
||||
Ve Windows použijte Plánovač úloh a jako program nastavte `python.exe`, argument
|
||||
`C:\cesta\snapshot.py` a pracovní adresář projektu.
|
||||
|
||||
Shodné hodnoty `ACTIVE_FROM` a `ACTIVE_TO` znamenají nepřetržitý provoz.
|
||||
Interval může přecházet přes půlnoc. Při chybě NVR zůstane poslední platný
|
||||
obrázek zachován a proces skončí kódem `1`; mimo časové okno skončí po úspěšném
|
||||
zkopírování dummy obrázku kódem `0`.
|
||||
|
||||
## Hikvision endpoint
|
||||
|
||||
Výchozí cesta je:
|
||||
|
||||
```text
|
||||
/ISAPI/Streaming/channels/{channel}{stream_id}/picture
|
||||
```
|
||||
|
||||
Kanál `1` a stream `01` tedy používají ID `101`. Autentizace zobrazená v NVR
|
||||
jako `digest` je podporovaná; skript umí jako zálohu také Basic autentizaci.
|
||||
Pro HTTPS se self-signed certifikátem lze použít `NVR_VERIFY_TLS=false`.
|
||||
|
||||
Požadované rozlišení se posílá NVR explicitně pomocí ISAPI parametrů
|
||||
`videoResolutionWidth` a `videoResolutionHeight`. Nastavuje se globálně přes
|
||||
`NVR_SNAPSHOT_WIDTH` a `NVR_SNAPSHOT_HEIGHT`; výchozí hodnota je 1920×1080.
|
||||
NVR musí dané rozlišení podporovat, jinak může vrátit nejbližší podporované
|
||||
rozlišení nebo chybovou XML odpověď.
|
||||
|
||||
Pokud zařízení endpoint odmítne, ověřte, že uživatel smí sledovat daný kanál,
|
||||
že je povolené ISAPI a že `NVR_SNAPSHOT_PATH` odpovídá konkrétnímu firmwaru.
|
||||
Reference in New Issue
Block a user