> ## 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(UDP 상의 H.264 RTP)에서 OpenCV로

> 원시 RTP/UDP 패킷을 통해 H.264로 인코딩된 비디오를 수신하고, 이를 OpenCV 호환 프레임으로 디코딩하는 가볍고 크로스 플랫폼인 스타터 프로젝트입니다.

<Card title="OpenCV 가이드 리포지토리" icon="github" href="https://github.com/DeepwaterExploration/opencv-guides">
  DWE.ai 카메라용 전체 소스 코드와 예제 프로젝트를 GitHub에서 확인하세요.
</Card>

## 기능

* **원시 RTP/UDP**: GStreamer나 외부 의존성이 필요하지 않습니다.
* **고해상도**: 1080p 30fps 이상의 스트림에 최적화되어 있습니다.
* **10비트 지원**: 10비트 YUV 4:4:4(`yuv444p10le`) 및 표준 8비트 형식을 처리합니다.
* **저지연**: 백그라운드 수신 스레드와 멀티스레드 디코딩을 사용합니다.
* **모듈식 설계**: 네트워크 처리, 디코딩, 표시 로직을 분리합니다.

## 사전 요구 사항

* **Python 3.8 이상**
* **FFmpeg 라이브러리**(보통 PyAV를 통해 자동으로 설치됨)

## 설치

리포지토리의 `3-receive-dweos-h264/python` 디렉터리로 이동하여 환경을 설정합니다:

1. 가상 환경을 만듭니다:
   ```bash theme={null}
   python3 -m venv venv
   source venv/bin/activate  # On Windows: venv\Scripts\activate
   ```

2. 필요한 의존성을 설치합니다:
   ```bash theme={null}
   pip install -r requirements.txt
   ```

## 사용법

1. H.264 RTP 스트림을 시작합니다(기본값은 `127.0.0.1:5600`).
2. 수신기를 실행합니다:
   ```bash theme={null}
   python main.py
   ```

## 프로젝트 구조

* **`rtp_receiver.py`**: 원시 UDP 패킷 수신과 H.264 NAL 재조립(FU-A 및 STAP-A 포함)을 처리합니다.
* **`h264_decoder.py`**: 고성능 H.264 디코딩을 위해 PyAV를 래핑합니다.
* **`main.py`**: 수신기와 디코더를 OpenCV 창에 연결하는 메인 진입점입니다.
