> ## 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  # 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 ウィンドウに接続するメインエントリポイント。
