> ## 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 sobre UDP) para OpenCV

> Um projeto inicial leve e multiplataforma para receber vídeo codificado em H.264 via pacotes RTP/UDP brutos e decodificá-los em frames compatíveis com OpenCV.

<Card title="Repositório de guias OpenCV" icon="github" href="https://github.com/DeepwaterExploration/opencv-guides">
  Veja o código-fonte completo e projetos de exemplo para câmeras DWE.ai no GitHub.
</Card>

## Recursos

* **RTP/UDP bruto**: sem GStreamer ou dependências externas necessárias.
* **Alta resolução**: otimizado para fluxos em 1080p a 30fps ou mais.
* **Suporte a 10 bits**: manipula YUV 4:4:4 de 10 bits (`yuv444p10le`) e formatos padrão de 8 bits.
* **Baixa latência**: usa uma thread receptora em segundo plano e decodificação multithread.
* **Design modular**: separa a lógica de tratamento de rede, decodificação e exibição.

## Pré-requisitos

* **Python 3.8+**
* **Bibliotecas FFmpeg** (geralmente instaladas automaticamente via PyAV)

## Instalação

Navegue até o diretório `3-receive-dweos-h264/python` no repositório e configure seu ambiente:

1. Crie um ambiente virtual:
   ```bash theme={null}
   python3 -m venv venv
   source venv/bin/activate  # No Windows: venv\Scripts\activate
   ```

2. Instale as dependências necessárias:
   ```bash theme={null}
   pip install -r requirements.txt
   ```

## Uso

1. Inicie seu fluxo H.264 RTP (padrão `127.0.0.1:5600`).
2. Execute o receptor:
   ```bash theme={null}
   python main.py
   ```

## Estrutura do projeto

* **`rtp_receiver.py`**: lida com a recepção de pacotes UDP brutos e a remontagem de NAL H.264 (incluindo FU-A e STAP-A).
* **`h264_decoder.py`**: encapsula o PyAV para decodificação H.264 de alto desempenho.
* **`main.py`**: o ponto de entrada principal que conecta o receptor e o decodificador a uma janela do OpenCV.
