> ## 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 sur UDP) vers OpenCV

> Un projet de démarrage léger et multiplateforme pour recevoir des vidéos encodées en H.264 via des paquets RTP/UDP bruts et les décoder en images compatibles OpenCV.

<Card title="Dépôt des guides OpenCV" icon="github" href="https://github.com/DeepwaterExploration/opencv-guides">
  Consultez le code source complet et les projets d'exemple pour les caméras DWE.ai sur GitHub.
</Card>

## Fonctionnalités

* **RTP/UDP bruts** : aucune dépendance à GStreamer ni à une autre bibliothèque externe.
* **Haute résolution** : optimisé pour les flux 1080p à 30 ips et plus.
* **Prise en charge 10 bits** : gère le YUV 4:4:4 10 bits (`yuv444p10le`) et les formats 8 bits standard.
* **Faible latence** : utilise un thread récepteur en arrière-plan et un décodage multithread.
* **Conception modulaire** : sépare la gestion du réseau, le décodage et la logique d'affichage.

## Prérequis

* **Python 3.8+**
* **Bibliothèques FFmpeg** (généralement installées automatiquement via PyAV)

## Installation

Naviguez vers le répertoire `3-receive-dweos-h264/python` dans le dépôt et configurez votre environnement :

1. Créez un environnement virtuel :
   ```bash theme={null}
   python3 -m venv venv
   source venv/bin/activate  # Sous Windows : venv\Scripts\activate
   ```

2. Installez les dépendances requises :
   ```bash theme={null}
   pip install -r requirements.txt
   ```

## Utilisation

1. Démarrez votre flux RTP H.264 (par défaut sur `127.0.0.1:5600`).
2. Lancez le récepteur :
   ```bash theme={null}
   python main.py
   ```

## Structure du projet

* **`rtp_receiver.py`** : gère la réception des paquets UDP bruts et le réassemblage des NAL H.264 (y compris FU-A et STAP-A).
* **`h264_decoder.py`** : encapsule PyAV pour un décodage H.264 performant.
* **`main.py`** : point d'entrée principal qui relie le récepteur et le décodeur à une fenêtre OpenCV.
