Skip to content

Meszi84/Security-Cam-cv2-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Security-Cam-cv2-python

Security Cam – rendszerleírás

A Security Cam egy saját fejlesztésű, webes felületű megfigyelő- és rögzítőrendszer, amely valós idejű kameraképet és asztalképet (desktop) közvetít böngészőn keresztül, opcionális felvételkészítéssel.


Fő funkciók

Élő kamera stream

  • USB / beépített kamera (OpenCV)
  • MJPEG stream böngészőbe
  • Stabil újracsatlakozás kamera hiba esetén

Felvétel (REC)

  • MP4 videók mentése
  • Automatikus fájlnév dátum–idő alapján
  • Felvétel indítás / leállítás gombbal

Timestamp overlay

  • Dátum és idő beleégetve a képre
  • Streamen és felvételben is megjelenik
  • Sötét háttérrel, mindig olvasható

Webes kezelőfelület

  • HTTPS (SSL)
  • Felhasználónév / jelszó védelem
  • Modern, cyber / dark UI
  • Külön panelek kamera és desktop számára

Státusz visszajelzés

  • Élő/offline indikátor
  • Stream állapot alapján vált színt

Technikai felépítés

Backend

  • Python 3.11
  • Flask (HTTPS, routing)
  • OpenCV (kamera, videó)
  • Thread-safe streaming

Frontend

  • HTML5
  • CSS (dark / cyber stílus)
  • JavaScript (REC vezérlés, státusz)

Biztonság

  • HTTPS (self-signed vagy saját cert)
  • HTTP auth
  • Nem igényel rendszergazdai jogosultságot

Felhasználási területek

  • Otthoni megfigyelés
  • Saját biztonsági kamera
  • Streamelés
  • Rendszergazdai monitoring
  • Fejlesztői / teszt környezet

Jelenlegi állapot

  • ✔ Kamera live + felvétel
  • ✔ Timestamp
  • ✔ Web UI
  • ✔ Stabil Windows működés

Bővíthető:

  • Desktop felvétel
  • Master REC (kamera + desktop egyszerre)
  • Hang rögzítés
  • Monitor választás
  • Felhő / proxy mögötti futtatás

Az alábbi teljes, rendszergazda-szintű dokumentáció kifejezetten Windows + Python 3.11 környezetre, a Security Cam jelenlegi állapotához.


SECURITY CAM

Telepítés • Cert készítés • Részletes beállítások


1️⃣ RENDSZERKÖVETELMÉNYEK

Hardver

  • Windows 10 / 11
  • USB vagy beépített kamera

Szoftver

  • Python 3.11
  • Internet / LAN (böngészős eléréshez)

2️⃣ KÖNYVTÁRSZERKEZET (KÖTELEZŐ)

securitycam/
│
├─ app.py
├─ cam.py
├─ requirements.txt
│
├─ templates/
│   └─ index.html
│
├─ static/
│   └─ favicon.ico
│
├─ cert/
│   ├─ cert.crt
│   └─ key.key
│
└─ felvetelek/

⚠️ Ha ez nem így van, nem indul el stabilan.


3️⃣ PYTHON KÖRNYEZET TELEPÍTÉS

3.1 Python ellenőrzés

py -3.11 --version

Ha nincs:


3.2 Függőségek telepítése

Projekt mappában:

py -3.11 -m pip install -r requirements.txt

Desktop streamhez plusz:

py -3.11 -m pip install mss numpy

Ellenőrzés:

py -3.11 -c "import cv2, flask, mss, numpy; print('OK')"

4️⃣ HTTPS CERT KÉSZÍTÉS (SELF-SIGNED)

4.1 Cert mappa

mkdir cert

4.2 OpenSSL-lel (AJÁNLOTT)

Ha van OpenSSL:

cd securitycam

openssl req -x509 -newkey rsa:2048 -nodes ^
  -keyout cert\key.key ^
  -out cert\cert.crt ^
  -days 365 ^
  -subj "/CN=localhost"

Eredmény:

cert/
 ├─ cert.crt
 └─ key.key

4.3 OpenSSL nélkül (Windows PowerShell)

New-SelfSignedCertificate `
 -DnsName "localhost" `
 -CertStoreLocation "Cert:\CurrentUser\My"

Ezután exportálni kell (haladó).


5️⃣ APP.PY – HTTPS BEÁLLÍTÁS

Ez legyen a végén:

context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain("./cert/cert.crt", "./cert/key.key")

app.run(
    host="0.0.0.0",
    port=8443,
    ssl_context=context,
    threaded=True
)

⚠️ A ./cert/... szándékos, Windows alatt stabil.


6️⃣ KAMERA BEÁLLÍTÁSOK (cam.py)

Kamera index

CAM_INDEX = 0   # vagy 1, 2…

Ha nem jó:

for i in range(5):
    print(i, cv2.VideoCapture(i).isOpened())

Felbontás

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)

⚠️ Nem minden kamera támogat mindent.


Képjavítás (opcionális)

cap.set(cv2.CAP_PROP_BRIGHTNESS, 160)
cap.set(cv2.CAP_PROP_CONTRAST, 32)
cap.set(cv2.CAP_PROP_SATURATION, 60)

Jelszó Port Kamera

# --- BEÁLLÍTÁSOK ---
USER = "USERNAME"
PASSWORD = "JELSZÓ"
PORT = 8443
CAM_NAME = "cam2"

8️⃣ FELVÉTEL (REC)

  • MP4 fájlok

  • dátum-idő alapú név:

    20260121_165930.mp4
    
  • mentési hely:

    felvetelek/
    

Felvétel:

  • streamen és fájlban is benne van a timestamp

9️⃣ ELÉRÉS

Lokálisan

https://localhost:8443

LAN-on

https://<gép-ip>:8443

Távoli

https://<te_ipcimed>:8443

whatismyipaddress

⚠️ Self-signed cert miatt:

  • „Advanced”
  • „Proceed anyway”

1️⃣0️⃣ AUTOMATIKUS INDÍTÁS (OPCIONÁLIS)

Start.bat fájl

@echo off
cd /d D:\security_cam\securitycam
py -3.11 app.py
pause

Feladatütemező

  • Run whether user is logged on or not

  • NE “Run with highest privileges”

  • Start in:

    D:\security_cam\securitycam
    

1️⃣1️⃣ BIZTONSÁGI MEGJEGYZÉSEK

✔ HTTPS aktív ✔ Auth aktív ✔ Nem kell admin jog ❌ Self-signed cert (böngésző figyelmeztet)

Publikus netre:

  • Cloudflare Tunnel
  • VPN
  • Port forward + IP szűrés

1️⃣2️⃣ HIBAKERESÉS (GYORS)

Hiba Ok
404 favicon nincs static/favicon.ico
camera offline rossz CAM_INDEX
desktop 500 mss nem thread-safe (javítva)
cert not found rossz útvonal

About

A Security Cam egy saját fejlesztésű, webes felületű megfigyelő- és rögzítőrendszer, amely valós idejű kameraképet közvetít PC-ről böngészőn keresztül, opcionális felvételkészítéssel.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages