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

Caute, potrebujem radu ohladom NVR software (idealne open source resp. free), ktory by vedel kontinualne nahravat a prehravat online stream z kamier Hikvision v slucke ale bez nutnosti transcodingu. Transcodingu sa chcem vyhnut z dovodu obmedzeneho vykonu HW. Kamery maju nativnu podporu codecov AVC/+ a HEVC/+. Testoval som viacero alternativ, ale vsetky doteraz testovane povodny stream transcodovali na svoj vlastny vystup:

- Frigate
- MotionEye
- Shinobi

Dakujem za odporucania.


Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #1 kdy: 19. 03. 2025, 21:59:39 »
Este doplnim, ze detekciu objektov vobec riesit nepotrebujem, maximalne mozno jednoduchu detekciu pohybu a ani to nie na zaklade analyzy obrazu cez NVR, ale na zaklade detekcie priamo podporovanej kamerou

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #2 kdy: 20. 03. 2025, 08:22:43 »
Kolik kamer?

Proč neukládat video rovnou na disk třeba přes ffmpeg? Kamery často podporují přímo ukládání přes FTP. je třeba si uvědomit, že ty kamery často podporují pouze jeden výstupní stream, takže když to nahráváš, už z toho teba nedosaneš živý náhled.

Je to normální kamerový systém, nebo nějaká hračka ve stylu raspberry pi? Protože to je pak ztráta času tady řešit nesmyslné zadání - hraj si sám.

Pár kamer s Frigate ti utáhne i nějaký Nkový celeron, typu moderního N100 i jeho roky starý předchůdce.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #3 kdy: 20. 03. 2025, 10:00:13 »
Jo RTSP streamy by měly jít obecně ukládat třeba FFMPEGem, akorát byste si musel nějak ošetřit segmentování a odmazávání těch nejstarších.

Teď letmým pohledem třeba na ten MotionEye, což je web nadstavba nad Motion.

https://motion-project.github.io/motion_config.html#movie_passthrough
https://motion-project.github.io/motion_config.html#movie_codec (výběr korespondujícího kontejneru)
https://motion-project.github.io/motion_config.html#emulate_motion (aby to nahrávalo kontinuálně)

V MotionEye
https://github.com/motioneye-project/motioneye/issues/1157

Nikdy jsem s tím nedělal, ale vypadá to, že by to mohlo být to, co hledáte.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #4 kdy: 20. 03. 2025, 10:05:31 »
Frigate nahrává stream bez transcodingu, "problém" je v tom, že paralelně k němu jede i transcoding streamu pro detekci a to i tehdy, pokud se nepoužívá.
Tady https://github.com/blakeblackshear/frigate/discussions/4870 se na to někdo ptal a na konci je zmínka o issue #1911, které by to mělo řešit. To bude součástí v0.16, což je následující release (poslední v0.15 je z února t. r.), takže se snad dočkáš -- zkus to prostudovat a dej vědět...


Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #5 kdy: 20. 03. 2025, 10:29:38 »
S trancodingem několika streamů si bez problémů poradí i ta iGPU v celeronu. Provozuji několik DVR systémů s Nkovými celerony, vždy pár kamer okolo domu, a funguje to s Frigate v pohodě. Využití CPU všude do 30%.

Doma doplněno o Hailo-8L na detekci objektů.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #6 kdy: 20. 03. 2025, 10:34:32 »
Frigate se čtyřmi 4K kamerami, h.264, bez detekce čehokoliv, pouze nahrává, má aktuálně vytížení Celeronu N3050, na 45%. A to je to 10+ let starý, low power CPU.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #7 kdy: 20. 03. 2025, 10:41:27 »
Bezplatny iVMS-4200 priamo od HIKVISION ti nevyhovuje ? :
https://www.hikvision.com/en/support/download/software/ivms4200-series/
Pozri dole DataSheet, minimum i3 a 4GB RAM.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #8 kdy: 20. 03. 2025, 11:58:41 »
Tak podla toho co pise vecsina z Vas musim robit nejaku chybu pri konfiguraciach pretoze na Proxmox masine mam 8GB RAM a CPU:

Kód: [Vybrat]
lscpu
Architecture:             x86_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          39 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   4
  On-line CPU(s) list:    0-3
Vendor ID:                GenuineIntel
  Model name:             Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz
    CPU family:           6
    Model:                60
    Thread(s) per core:   1
    Core(s) per socket:   4
    Socket(s):            1
    Stepping:             3
    CPU(s) scaling MHz:   98%
    CPU max MHz:          3700.0000
    CPU min MHz:          800.0000
    BogoMIPS:             6584.83
    Flags:                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxs
                          r sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good
                           nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2
                           ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsa
                          ve avx f16c rdrand lahf_lm abm cpuid_fault epb pti ssbd ibrs ibpb stibp tpr_shadow flexpriority
                          ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pl
                          n pts vnmi md_clear flush_l1d
Virtualization features: 
  Virtualization:         VT-x
Caches (sum of all):     
  L1d:                    128 KiB (4 instances)
  L1i:                    128 KiB (4 instances)
  L2:                     1 MiB (4 instances)
  L3:                     6 MiB (1 instance)
NUMA:                     
  NUMA node(s):           1
  NUMA node0 CPU(s):      0-3
Vulnerabilities:         
  Gather data sampling:   Not affected
  Itlb multihit:          KVM: Mitigation: VMX disabled
  L1tf:                   Mitigation; PTE Inversion; VMX conditional cache flushes, SMT disabled
  Mds:                    Mitigation; Clear CPU buffers; SMT disabled
  Meltdown:               Mitigation; PTI
  Mmio stale data:        Unknown: No mitigations
  Reg file data sampling: Not affected
  Retbleed:               Not affected
  Spec rstack overflow:   Not affected
  Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:             Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP disabled; RSB filling; PBRSB-eIBRS Not
                          affected; BHI Not affected
  Srbds:                  Mitigation; Microcode
  Tsx async abort:        Not affected

Vsetky jadra a celu RAM som vzdy naplno vyhradil pre dany NVR VM / LXC.
Doteraz som to vzdy testoval len s jednou kamerou Hikvision DS-2CD2685FWD-IZS (celkovo mam 4), pri plnej kvalite vstupneho streamu s rozlisenim 3840 x 2160, FPS: 25, bitrate 16 mbit/s mi frigate a motioneye reportovali tatazenie CPU 60-80% a to som nastavil len jednu kameru. Shinobi reportoval zatazenie stabilne cca 30% ale tam sa mi asi nepodarilo spustit nahravanie.

Takze dakujem za tipy, vyskusam ich a dam vediet. Ocenil by som zdielanie konfiguracie frigate, niekto tu spominal, ze vyuziva frigate cisto na dvr recordin a zataz ma velmi nizku.

PS: Viem, ze ten bitrate je mozno zbytocne vysoky, asi ho v ostrej prevadzke znizim, ale zaroven planujem kamery pouzivat na vacsi vzdialenost, preto budem potrebovat vyssi bitrate, ale asi nie az tak.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #9 kdy: 20. 03. 2025, 13:20:38 »
Ještě někde na Redditu si vcelku pochvalovali https://github.com/scottlamb/moonfire-nvr -- vypadá to udržovaně a mohlo by to vyhovovat... Zkus.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #10 kdy: 20. 03. 2025, 13:38:03 »
Je důležité, aby byla využita HW accelerace na GPU, jinak to bude nesmyslně zatěžovat CPU. Pokud to chceš virtualizovat, může být problém s passtrough GPU do VM, případně ti ta GPU bude chybět jinde.

Já aktuálně vše jedu na železe - Debian/Ubuntu a Frigate v Dockeru. Ale to především kvůli tomu Hailo-8L, které se mi rovněž pod Proxmoxem do VM dostat nepodařilo.

Zde jsem v rychlosti našel konfiguraci toho stroje s N3050, který uznávám běží na sekundárních streamech s nižším rozlišením. Ten CPU je pro tohle použití už asi za hranou, ale bylo to po ruce a funguje to. Zrovna v tomhle případě se jedná o použití v interiéru, takže nároky na kvalitu nejsou tak vysoké.

Doma mám škatuli s N100DC-ITX a to samé jede ve 4K a kvalitou na maximum. Rozpoznání objektů pak řeší zmíněné Hailo.

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

cameras:
  cam1: # <--- this will be changed to your actual camera later
    enabled: true
    detect:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://user:PASSWORD@10.0.0.1:554/Streaming/Channels/102
          roles:
            - record
    snapshots:
      enabled: true
      timestamp: true
      bounding_box: true
    record:
      enabled: true
      retain:
        days: 7
      events:
        retain:
          default: 7
          mode: motion
        pre_capture: 3
        post_capture: 3
    motion:
      mask: 0,0.049,0,0.091,0.288,0.094,0.287,0.057
 
  cam2: # <--- this will be changed to your actual camera later
    enabled: true
    detect:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://user:PASSWORD@10.0.0.2:554/Streaming/Channels/102
          roles:
            - record
    snapshots:
      enabled: true
      timestamp: true
      bounding_box: true
    record:
      enabled: true
      retain:
        days: 7
      events:
        retain:
          default: 7
          mode: motion
        pre_capture: 3
        post_capture: 3
    motion:
      mask: 0,0.049,0,0.091,0.288,0.094,0.287,0.057

  cam3: # <--- this will be changed to your actual camera later
    enabled: true
    detect:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://user:PASSWORD@10.0.0.3:554/Streaming/Channels/102
          roles:
            - record
    snapshots:
      enabled: true
      timestamp: true
      bounding_box: true
    record:
      enabled: true
      retain:
        days: 7
      events:
        retain:
          default: 7
          mode: motion
        pre_capture: 3
        post_capture: 3
    motion:
      mask: 0,0.049,0,0.091,0.288,0.094,0.287,0.057

  cam4: # <--- this will be changed to your actual camera later
    enabled: true
    detect:
      enabled: false
    ffmpeg:
      inputs:
        - path: rtsp://user:PASSWORD@10.0.0.4:554/Streaming/Channels/102
          roles:
            - record
    snapshots:
      enabled: true
      timestamp: true
      bounding_box: true
    record:
      enabled: true
      retain:
        days: 7
      events:
        retain:
          default: 7
          mode: motion
        pre_capture: 3
        post_capture: 3
    motion:
      mask: 0,0.049,0,0.091,0.288,0.094,0.287,0.057
version: 0.14


Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #11 kdy: 20. 03. 2025, 13:43:50 »
Je důležité, aby byla využita HW accelerace na GPU, jinak to bude nesmyslně zatěžovat CPU.

No moj problem je prave to, ze v tom stroji nemam dedikovanu GPU asi som to mal explicitne napisat uz skor, ale predpokladal som, ze je to jasne z kontextu. Tak uz rozumiem, ze mas nizky CPU usage :D
« Poslední změna: 20. 03. 2025, 13:46:38 od googler2 »

Zopper

  • *****
  • 872
    • Zobrazit profil
Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #12 kdy: 20. 03. 2025, 14:28:48 »
Je důležité, aby byla využita HW accelerace na GPU, jinak to bude nesmyslně zatěžovat CPU.

No moj problem je prave to, ze v tom stroji nemam dedikovanu GPU asi som to mal explicitne napisat uz skor, ale predpokladal som, ze je to jasne z kontextu. Tak uz rozumiem, ze mas nizky CPU usage :D
Mě nepříjde, že by ta GPU musela být dedikovaná. Ať je klidně integrovaná, ale musí se používat. Ne že to bude počítat surově CPU. Pokud ti samozřejmě do toho nehází vidle Proxmox, kvůli kterému tam tu integrovanou GPU nemůžeš předat.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #13 kdy: 20. 03. 2025, 15:45:14 »
Přesně tak, stačí i iGPU, a v podstatě jakákoliv plečka z posledních 10ti let, včetně té i5-4590, umí HW akceleraci videa.

Zabývat se dnes zpracováním videa pouze na CPU, to je přece nemysl, protože to bude žrát, topit a výkon bude nic moc. A jestli na tom proxmoxu má běžet ještě něco jiného, tak na to moc výkonu už nezbude. Zrovna NVR to jedinné, co mi na proxmoxu neběží a má to vlastní škatuli. No a v krabici s proxmoxem zase nemám GPU žádnou, protože netřeba.

Re:NVR software pro IP kamery a kontinuální nahrávání
« Odpověď #14 kdy: 20. 03. 2025, 16:10:31 »
@GPU

Jako ok, beru, že vám to chodí. Taky souhlas, že ten primární důvod, proč mu to tak žere výkon CPU, je absence akcelerace. Úplně nemyslím, že by stará HD 4600 z Haswellu dala přes QSV s H.264 ty jeho finální 4 kamery v UHD rozlišení, ale to by se asi muselo ozkoušet.

Nicméně vlastně pořád nemůžu přijít na to, proč by se pro to zmíněné jednoduché použití měly trvale překódovávat 4 streamy? Rozumím, že některé NVR programy tuhle možnost třeba nemají.
Ale přijde mi to zbytečné, pakliže by se to dalo nastavit tak, že se to prostě přijme RTSP a remuxuje do formátu, který jde pak streamovat přímo z webu (aplikace).