NVR software pro IP kamery a kontinuální nahrávání

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #15 kdy: 20. 03. 2025, 16:21:29 »
Ok tak to teda skusim tak, ze vyhodim odtial proxmox, dam tam klasicky debian a uvidim co z toho bude teda. Pozeral som ci sa neda v Proxmoxe nastavit, aby vedel vyuzivat integrovanu GPU, ale podla roznych for na to nie je univerzalny postup, zalezi to od konkretnej GPU a casto treba vela improvizovat a debugovat. Hlavny dovod preco som to povodne chcel mat pod proxmox bola jednoducha zaloha / obnova + som uvazoval, ze ak by tam ostal nejaky vykon, tak by som tam rozchodil este HA.
Inak k tym kameram: Skusal som este prenastavit motioneye podla rady z tejto temy, ale aj ked som zapol funkciu movie movie passthroug, na tej jednej kamere, tak cpu usage skocil na 50%+ a to som vypol stream ako taky a nechal iba nahravanie. Povodne som totiz predpokladal, ze stream nebudem pouzivat vobec a namiesto toho bude v realnom case pristupovat k tomu videu, ktore sa prave nahrava a v pripade potreby si ho budem moct zaroven aj prehravat. Zistil som, ze v pripade motioneye to nie je mozne pretoze v rezime passthrough vystupne video uklada do containeru mp4 a ten nie je mozne prehravat, ak video este nie je donahravane, ale v pripade mkv alebo flv by malo byt mozne prehravat video uz pocas jeho nahravania.


Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #16 kdy: 20. 03. 2025, 17:12:53 »
Možná bych si to pak pro porovnání ozkoušel jaké bude vytížení čistě jen s FFMPEGem.

Můžete vyjít z návodů a popisů např. odtud.

https://support.safr.com/support/solutions/articles/69000145615-record-rtsp-streams
resp.
https://medium.com/@tom.humph/saving-rtsp-camera-streams-with-ffmpeg-baab7e80d767

Tohle pak jen víceméně rozebere a muxuje streamy do MP4, dá se ozkoušet i jiný kontejner jako třeba FLV, i když to by nemělo mít žádný znatelný vliv na vytížení CPU.
Finálně ještě můžete stejným způsobem zkusit i překódovávání videa, např. -codec:v libx264 -preset:v veryfast nebo -codec:v h264_qsv pro porovnání zátěže se jen se softwarovým vs akcelerovaným kodekem (na Intel iGPU) a jestli ho případně vůbec rozchodíte.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #17 kdy: 20. 03. 2025, 20:21:33 »
Bude to chtít trochu si s tím pohrát, podívat se, co přesně ten iGPU zvládne - kolik streamů, v jaké v jaké kvalitě... I kdyby to zvládlo jen 2 streamy, tak to je pořád snížení zátěže CPU o polovinu.

A Frigate běží v dockeru, takže by neměl být problém vedle toho rozchodit i HA.

Nebo taky existuje Frigate jako addon pro HA.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #18 kdy: 20. 03. 2025, 22:17:02 »
Vyzera to tak, ze sa mi pod proxmoxom podarilo rozchodit integrovanu gpu. Nainstaloval som frigate lxc, nastavil zakladnu konfiguraciu, ale vychadzal som z tej, ktora tu bola postovana. Akurat som doplnil tu HWaccel, zmenil som record mode z motion na all a vypol som snapshoty. Frigate stream vyzera, ze bezi, zatazenie GPU reportuje 6% a CPU 8%, takze podla tej zataze je asi zjavne, ze nahravanie neprebieha ani v UI Frigate nevidim ziadne videa. Pravdepodobne mam chybu v konfiguracii, mozete sa na nu pozriet?

Kód: [Vybrat]
mqtt:
  enabled: false

cameras:
  cam1: # <--- this will be changed to your actual camera later
    enabled: true
    detect:
      enabled: false
    ffmpeg:
      hwaccel_args: preset-vaapi
      inputs:
        - path: rtsp://user:pass1@ip:554/Streaming/Channels/101
          roles:
            - record
    snapshots:
      enabled: false
      timestamp: false
      bounding_box: false
    record:
      enabled: true
      retain:
        days: 7
      events:
        retain:
          default: 7
          mode: all
    motion:
version: 0.14

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #19 kdy: 20. 03. 2025, 22:39:14 »
Bude to chtít trochu si s tím pohrát, podívat se, co přesně ten iGPU zvládne - kolik streamů, v jaké v jaké kvalitě... I kdyby to zvládlo jen 2 streamy, tak to je pořád snížení zátěže CPU o polovinu.

To ho opravdu stejně neřeší se čtyřmi kamerami, pokud bude chtít transkódovat (zas předchozí otázka proč?). Na jednom počítači mám shodou okolností taky Haswell Refresh, ale i7-4790, který je trochu silnější než ta jeho i5.
Pokud transkóduju H.264 v UHD s libx264 a veryfast, tak se dostávám tak na 1,2-1,4x realtime. Záleží samozřejmě i na vstupu, náročnosti dekódování. Tzn. čistě přes CPU je to jeden stream z kamery s úplně odřenýma ušima (pokud server občas dělá i jiné věci a nechce vytéct z bufferu).

Takže za mě je pro transkódování více UHD streamu jediná možnost, že by se podařilo rozjet celou pipeline přes QSV (resp. vaapi). Podobně jako to nejspíš funguje u vás na tom N Celeronu. Ale jsem spíš skeptický a ani tak si nemyslím, že to tohle GPU dá 4x.

Jinak ještě jsem se díval konkrétně (a zapnul i iGPU, které mám na tom Haswellu normálně vypnuté)
Je to generace QSV 7.5
https://trac.ffmpeg.org/wiki/Hardware/QuickSync

A tedy opravuji, kodek pro tuhle generaci na Linuxu není h264_qsv (to je přes MFX), ale h264_vaapi
Např.
ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -i $stream -c:v h264_vaapi neco.mp4

Nebo s explicitním výběrem zařízení a přiřazením aliasu foo, pak pro filtry.
fmpeg -init_hw_device vaapi=foo:/dev/dri/renderD128 -hwaccel vaapi -hwaccel_output_format vaapi -hwaccel_device foo -i $stream -filter_hw_device foo -vf 'format=nv12|vaapi,hwupload' -c:v h264_vaapi neco.mp4

Aby mi to chodilo, musel jsem přidat balíček intel-vaapi-driver (aspoň tak se jmenuje na OpenSUSE), kde je pak knihovna: /usr/lib64/dri/i965_drv_video.so
Na Debianu (Proxmoxu?) vypadá, že je to v balíčku i965-va-driver.
https://packages.debian.org/sid/video/i965-va-driver
případně ještě
https://packages.debian.org/sid/i965-va-driver-shaders z non-free (což je podle popisku právě potřeba i na H.264 od Haswellu - Gen 7.5 výš)


Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #20 kdy: 20. 03. 2025, 23:04:56 »
Tiez si myslim, ze cez FFmpeg to pojde jednoduchsie, menej narocne na HW, "skopirovat" a ukladat, ale problem je v tom, ze potrebujem, aby k tomu bol lahky pristup a aspon zakladne spravovanie pre bezneho cloveka. Z toho dovodu sa to stale snazim rozchodit v nejakom uz existujucom a ako tak prehladnom UI.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #21 kdy: 20. 03. 2025, 23:45:30 »
Tiez si myslim, ze cez FFmpeg to pojde jednoduchsie, menej narocne na HW, "skopirovat" a ukladat, ale problem je v tom, ze potrebujem, aby k tomu bol lahky pristup a aspon zakladne spravovanie pre bezneho cloveka. Z toho dovodu sa to stale snazim rozchodit v nejakom uz existujucom a ako tak prehladnom UI.

Já to chápu, je jasné, že je optimální už využít něco hotového. Ten ffmpeg zmiňoval primárně kvůli tomu, aby se daly nějak odhadnout výkonové možnosti té vaší konfigurace a případně ozkoušet, jestli tam ty HW kodeky vůbec pojedou, případně dořešit systémové věci, ne že byste u toho musel nutně skončit.
Stejně většina těch hotových NVR řešení používá vespod právě ffmpeg resp. libav.. knihovny, typicky nemají "své" kodeky, muxery atp.
Určitě jestli je tam nad tím poběží ještě další dekódování streamů, hledání patternů, detekce pohybu atp. tak to bude žrát další prostředky, ale pokud jde o samotné přijímání streamu, remux a ukládání, pak by to nemělo mít zásadně větší režii než třeba ten ffmpeg. Což když jsem si pro zajímavost zkoušel (UHD stream servírovaný z jiného počítače). Při přijmu a ukládání do segmentovaných mp4 mi ffmpeg na zmíněné konfiguraci bral tak 3-4 % CPU (ukázáno v topu, kde je max 800 % na všechna jádra).
Finálně taky, jestli to budete mít nějak základně ozkoušené s ffmpegem a objeví se případné problémy s nějakou nadstavbou, bude to podle mě trochu lepší situace pro jeho případné řešení nebo report na stránkách projektu.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #22 kdy: 21. 03. 2025, 07:22:21 »
Předpokládám, že většina hotových NVR řešení typu Frigate, se soustředí na jiné vlastnosti, než na to, aby to běželo na starém šrotu. A těmi vlastnostmi bývá právě to, aby to bylo použitelné pro běžného člověka.

Ukládat videa z kamer zvládne zmíněný ffmpeg, ale že bych tomu pak říkal NVR...

Ten N100 sežere v zátěži stejně, jako ten letitý i5 v idle, takže o ekonomickou stránku věci zjevně nejde, protože NVR zpravidla běží 24/7 a v idle nikdy není.

Proč je cílem projektu provozovat to na takové plečce? Jestli máte čas si hrát,což zjevně ano, nainstalujte si tam to Frigate, připojte si tam ty kamery, a podívejte se, co to CPU reálně zvládne. Je to práce na hodinu. Zbytečné tu teoretizovat.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #23 kdy: 21. 03. 2025, 11:22:51 »
Předpokládám, že většina hotových NVR řešení typu Frigate, se soustředí na jiné vlastnosti, než na to, aby to běželo na starém šrotu. A těmi vlastnostmi bývá právě to, aby to bylo použitelné pro běžného člověka.

Ukládat videa z kamer zvládne zmíněný ffmpeg, ale že bych tomu pak říkal NVR...

Tak ještě jednou, ffmpeg běží skoro pod vším, včetně toho Frigate. Hlavní point nebyl, aby používal finálně pouze ffmpeg, ale aby si ozkoušel různé konfigurace s plnou kontrolou nad jeho parametry, zjistil správné nastavení a vyloučil případné chyby, pokud by se na něco použila akcelerace.. nevím - špatně nastavené pass-through a iommu do virtuálu, jestli ho na proxmoxu používá, chybějící knihovny a ovladače, zpřístupnění správných zařízení a práv v kontejneru atp.
To by musel vyřešit úplně stejně, ať už by tam bylo jakékoliv CPU resp. iGPU.

Citace
Proč je cílem projektu provozovat to na takové plečce? Jestli máte čas si hrát,což zjevně ano, nainstalujte si tam to Frigate, připojte si tam ty kamery, a podívejte se, co to CPU reálně zvládne. Je to práce na hodinu. Zbytečné tu teoretizovat.

?
Podle postů ve vlákně bych tak tipoval, že se o to celou dobu snaží.

Já Frigate nikdy nepoužíval, ani nemám teď jak ozkoušet s nějakou podobnou kamerou a zjistit, proč mu to s tím nastavením zjevně neukládá videa. Podle všeho by i Frigate měl umět i "jen" nahrávat. Případně dekódovat (na náhledy, detekci atp.) na iGPU třeba pouze 720p streamy, které by z té kamery měly paralelně lézt taky a pak selektivně nahrát plný hi-res jen po tom, co se to triggeruje.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #24 kdy: 21. 03. 2025, 15:04:35 »
Pokouší se přesně o to, od čeho se ho vývojáři snaží odradit:
Citace
Frigate runs best with Docker installed on bare metal Debian-based distributions. For ideal performance, Frigate needs low overhead access to underlying hardware for the Coral and GPU devices. Running Frigate in a VM on top of Proxmox, ESXi, Virtualbox, etc. is not recommended though some users have had success with Proxmox.
https://docs.frigate.video/frigate/installation/

Napřed si snad vyzkouším doporučovaný a nejjednodušší způsob instalace, a až zjistím, že to funguje a vyhovuje, mohu to začít ohýbal a lámat přes koleno do virtuálu. Navíc si tím dané řešení alespoň trochu osahám, takže řešení pozdějších problémů pro mne bude jednodušší.

Další podporovaný způsob instalace je addon do HA, tím získá i ten HA, které chtěl vedle toho provozovat na tom Proxmoxu, takže opět odpadá potřeba to virtualizovat.