Initiale Veröffentlichung von Grabber-Config
- Tkinter-GUI zur Konfiguration analoger DirectShow-Video-Grabber - Unterstützung für PAL/NTSC/SECAM-Umschaltung - Unterstützung für Composite- und S-Video-Eingänge über IAMCrossbar - Automatische Speicherung und Anwendung der Konfiguration - Headless-Startmodus mit automatischer Konfigurationsanwendung - Speicherung der Konfiguration unter ProgramData - Nuitka-kompatible Projektstruktur - Inno-Setup-Installer mit optionalem Autostart - README, MIT-Lizenz und requirements.txt hinzugefügt - Projekt-Icon erstellt
This commit is contained in:
130
README.md
Normal file
130
README.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# Grabber-Config
|
||||
|
||||
Windows-Tool zur automatischen Konfiguration analoger USB-Video-Grabber über DirectShow.
|
||||
|
||||
Die Anwendung kann automatisch:
|
||||
|
||||
- DirectShow-Videoaufnahmegeräte erkennen
|
||||
- Den Videostandard setzen (PAL / NTSC / SECAM)
|
||||
- Den Videoeingang umschalten (Composite / S-Video)
|
||||
- Die Konfiguration dauerhaft speichern
|
||||
- Die gespeicherte Konfiguration beim Start automatisch anwenden
|
||||
|
||||
Das Projekt richtet sich insbesondere an analoge USB-Grabber, die ihre Einstellungen nach einem Neustart oder erneutem Verbinden verlieren.
|
||||
|
||||
---
|
||||
|
||||
## Funktionen
|
||||
|
||||
- Schlanke Tkinter-GUI
|
||||
- Direkte DirectShow-Ansteuerung (kein FFmpeg notwendig)
|
||||
- Automatische Geräteerkennung
|
||||
- Automatische Crossbar-Erkennung
|
||||
- Speicherung der Konfiguration unter:
|
||||
|
||||
```text
|
||||
C:\ProgramData\GrabberConfig\config.json
|
||||
```
|
||||
|
||||
- Headless-Startmodus
|
||||
- Geeignet für Nuitka-Standalone-Builds
|
||||
|
||||
---
|
||||
|
||||
## Unterstützte Hardware
|
||||
|
||||
Getestet mit:
|
||||
|
||||
- Hauppauge Cx23100 Video Capture
|
||||
|
||||
Sollte auch mit vielen anderen DirectShow-kompatiblen Grabbern funktionieren:
|
||||
|
||||
- EasyCAP
|
||||
- UTV007
|
||||
- STK1160
|
||||
- weitere analoge USB-Capture-Geräte
|
||||
|
||||
---
|
||||
|
||||
## Verwendung
|
||||
|
||||
### Erste Einrichtung / Konfiguration
|
||||
|
||||
```powershell
|
||||
python video_grabber_gui.py /config
|
||||
```
|
||||
|
||||
Danach auswählen:
|
||||
|
||||
- Videogerät
|
||||
- Videostandard
|
||||
- Videoeingang
|
||||
|
||||
Anschließend die Konfiguration speichern.
|
||||
|
||||
---
|
||||
|
||||
### Automatischer Startmodus
|
||||
|
||||
```powershell
|
||||
python video_grabber_gui.py
|
||||
```
|
||||
|
||||
Wenn bereits eine Konfiguration vorhanden ist, wird automatisch:
|
||||
|
||||
- der konfigurierte Grabber geöffnet
|
||||
- der gespeicherte Videostandard gesetzt
|
||||
- der konfigurierte Eingang umgeschaltet
|
||||
- das Programm anschließend beendet
|
||||
|
||||
Falls keine Konfiguration vorhanden ist, öffnet sich automatisch die GUI.
|
||||
|
||||
---
|
||||
|
||||
## EXE mit Nuitka erstellen
|
||||
|
||||
Beispiel:
|
||||
|
||||
```powershell
|
||||
python -m nuitka ^
|
||||
--windows-console-mode=disable ^
|
||||
--enable-plugin=tk-inter ^
|
||||
--windows-icon-from-ico=icon.ico ^
|
||||
video_grabber_gui.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Abhängigkeiten
|
||||
|
||||
```powershell
|
||||
pip install comtypes
|
||||
```
|
||||
|
||||
Tkinter ist bei normalen Python-Installationen unter Windows bereits enthalten.
|
||||
|
||||
---
|
||||
|
||||
## Technische Details
|
||||
|
||||
Die Anwendung kommuniziert direkt mit den DirectShow-COM-Interfaces:
|
||||
|
||||
- `IAMAnalogVideoDecoder`
|
||||
- `IAMCrossbar`
|
||||
|
||||
Dadurch können analoge Videoeinstellungen direkt gesetzt werden, ohne zusätzliche Herstellersoftware.
|
||||
|
||||
---
|
||||
|
||||
## Hinweise
|
||||
|
||||
Einige Grabber stellen ihre Crossbar als separates DirectShow-Gerät bereit.
|
||||
Die Anwendung versucht dies automatisch zu erkennen und korrekt zu verwenden.
|
||||
|
||||
Nicht alle Treiber unterstützen sämtliche DirectShow-Interfaces vollständig.
|
||||
|
||||
---
|
||||
|
||||
## Lizenz
|
||||
|
||||
MIT License
|
||||
Reference in New Issue
Block a user