> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dwe.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# dweOS (H.264 RTP über UDP) zu OpenCV

> Ein leichtgewichtiges, plattformübergreifendes Starter-Projekt zum Empfangen von H.264-codiertem Video über rohe RTP/UDP-Pakete und deren Decodierung in OpenCV-kompatible Frames.

<Card title="OpenCV Guides Repository" icon="github" href="https://github.com/DeepwaterExploration/opencv-guides">
  Zeigen Sie den vollständigen Quellcode und Beispielprojekte für DWE.ai-Kameras auf GitHub an.
</Card>

## Funktionen

* **Rohes RTP/UDP**: Kein GStreamer und keine externen Abhängigkeiten erforderlich.
* **Hohe Auflösung**: Optimiert für 1080p 30fps+ Streams.
* **10-Bit-Unterstützung**: Verarbeitet 10-Bit YUV 4:4:4 (`yuv444p10le`) und standardmäßige 8-Bit-Formate.
* **Geringe Latenz**: Verwendet einen Hintergrund-Empfänger-Thread und mehrfädige Decodierung.
* **Modulares Design**: Trennt Netzwerkverarbeitung, Decodierung und Anzeigelogik.

## Voraussetzungen

* **Python 3.8+**
* **FFmpeg-Bibliotheken** (werden in der Regel automatisch über PyAV installiert)

## Installation

Navigieren Sie zum Verzeichnis `3-receive-dweos-h264/python` im Repository und richten Sie Ihre Umgebung ein:

1. Virtuelle Umgebung erstellen:
   ```bash theme={null}
   python3 -m venv venv
   source venv/bin/activate  # Unter Windows: venv\Scripts\activate
   ```

2. Erforderliche Abhängigkeiten installieren:
   ```bash theme={null}
   pip install -r requirements.txt
   ```

## Verwendung

1. Starten Sie Ihren H.264-RTP-Stream (standardmäßig auf `127.0.0.1:5600`).
2. Führen Sie den Empfänger aus:
   ```bash theme={null}
   python main.py
   ```

## Projektstruktur

* **`rtp_receiver.py`**: Behandelt den Empfang roher UDP-Pakete und das Reassembly von H.264-NAL-Einheiten (einschließlich FU-A und STAP-A).
* **`h264_decoder.py`**: Kapselt PyAV für hochperformante H.264-Decodierung.
* **`main.py`**: Der Haupteinstiegspunkt, der den Empfänger und den Decoder mit einem OpenCV-Fenster verbindet.
