diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..628bcb9 --- /dev/null +++ b/.env.example @@ -0,0 +1,25 @@ +# Kopie nach .env und anpassen: cp .env.example .env +# Verfügbare Modi der Kamera anzeigen: rpicam-hello --list-cameras + +# ── Webserver ──────────────────────────────────────────────────────────────── +APP_HOST=0.0.0.0 +APP_PORT=8080 + +# ── Kamera ─────────────────────────────────────────────────────────────────── +# Sensor-Modus (Breite:Höhe), muss in --list-cameras vorkommen. +# Ein Modus mit dem Seitenverhältnis von WIDTH:HEIGHT vermeidet Beschnitt. +# imx219 (Module v2): 1640:1232 (4:3) oder 1920:1080 (16:9) +CAM_MODE=1640:1232 + +# Ausgabegröße, gleiches Seitenverhältnis wie der Modus (1640:1232 = 4:3) +CAM_WIDTH=820 +CAM_HEIGHT=616 + +# Ziel-FPS. 15-20 reichen für Überwachung/Zählung und sparen CPU und Netz. +CAM_FRAMERATE=20 + +# JPEG-Qualität 1-100. 30-50 ist ein guter Kompromiss, höher = mehr Bandbreite. +CAM_QUALITY=50 + +# Bild drehen: leer lassen oder 180 (rpicam unterstützt nur 0 und 180). +CAM_ROTATION= diff --git a/README.md b/README.md index f172c4e..99c3a85 100644 --- a/README.md +++ b/README.md @@ -61,16 +61,40 @@ Die Konfiguration erfolgt über Umgebungsvariablen oder eine `.env`-Datei im Pro | `CAM_HEIGHT` | Ausgabehöhe | `480` | | `CAM_FRAMERATE` | Ziel-FPS | `20` | | `CAM_QUALITY` | JPEG-Qualität (1–100) | `30` | -| `CAM_ROTATION` | Rotation (0/90/180/270) | leer | +| `CAM_ROTATION` | Rotation (`0` oder `180`) | leer | -Beispiel `.env`: +Eine kommentierte Vorlage liegt in `.env.example`: +```bash +cp .env.example .env ``` -CAM_MODE=1640:1232 -CAM_WIDTH=820 -CAM_HEIGHT=616 -CAM_FRAMERATE=20 -CAM_QUALITY=50 -CAM_ROTATION= -APP_PORT=8080 -``` + +Die verfügbaren Sensor-Modi der angeschlossenen Kamera zeigt `rpicam-hello --list-cameras`. + +## Kompatible Kameras + +Alle offiziellen Raspberry-Pi-Kameras laufen mit `rpicam-vid`. + +| Sensor | Auflösung | Kamera | Besonderheit | +|---|---|---|---| +| OV5647 | 5 MP | Camera Module V1 | Älterer Klassiker | +| IMX219 | 8 MP | Camera Module V2 | Bewährt, günstig | +| IMX708 | 12 MP | Camera Module 3 | Autofokus, HDR | +| IMX477 | 12,3 MP | HQ Camera | Größerer Sensor, Wechselobjektive | +| IMX296 | 1,6 MP | Global Shutter | Keine Rolling-Shutter-Verzerrung | +| IMX500 | 12,3 MP | AI Camera | KI-Beschleuniger direkt im Sensor | + +NoIR-Varianten (ohne Infrarotfilter) gibt es für V1, V2, Module 3 und HQ. Sie nutzen denselben Sensor und dieselben Modi. + +### Passende `CAM_MODE` + +Richtwerte, maßgeblich ist die Ausgabe von `rpicam-hello --list-cameras`. + +| Sensor | `CAM_MODE` | +|---|---| +| OV5647 | `1296:972`, `1920:1080` | +| IMX219 (getestet) | `1640:1232`, `1920:1080` | +| IMX708 | `2304:1296` | +| IMX477 | `2028:1520`, `2028:1080` | +| IMX296 | `1456:1088` | +| IMX500 | `2028:1520` | diff --git a/app.py b/app.py index b3d7983..203f440 100644 --- a/app.py +++ b/app.py @@ -12,7 +12,7 @@ Erreichbar unter /stream und /stream.mjpg (vehicle-counter kompatibel). CAM_HEIGHT Ausgabehöhe (default: 480) CAM_FRAMERATE Ziel-FPS (default: 20) CAM_QUALITY JPEG-Qualität 1-100 (default: 30) - CAM_ROTATION Rotation 0/90/180/270 (default: leer) + CAM_ROTATION Rotation 0/180 (default: leer) """ import os