> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/roboflow/roboflow-jp/depuroi/serverless-video-streaming-api.md).

# Serverless Video Streaming API

### 概要

Serverless Streaming API は WebRTC を使用して、Webカメラ、RTSP カメラ、または動画ファイルから Roboflow Cloud に動画をストリーミングします。 [Workflow](https://docs.roboflow.com/workflows/what-is-workflows) 各フレームを処理し、結果をアプリケーションにストリーミングして返します。

この API で任意の Workflow を実行できます。単一モデルの推論には、モデルをラップする Workflow を作成してください。

**対応している入力ソース:**

* **Webカメラ**: Browser または MediaStream API 経由のデバイスカメラ
* **RTSP**: IPカメラ、または RTSP 対応ソース全般。クラウド関数が接続できるよう、URL はインターネットから公開アクセス可能である必要があります。URL 内の username/password による認証がサポートされています（例: `rtsp://user:pass@host/stream`).
* **動画ファイル**: Data Channel 経由でアップロードされた事前録画済み動画

### 仕組み

ストリーミングセッションを開始すると、SDK は Roboflow の API を呼び出して WebRTC 接続を初期化します。API は、Workflow を実行するサーバーレス関数を起動します。接続が確立されると、データは 2 つの WebRTC チャネルを通って流れます:

#### Video Track

動画フレームを双方向にストリーミングします。Webカメラや動画ファイルからフレームを送信し、注釈付き／処理済みフレームを受け取ります。Video Track はリアルタイム表示向けに最適化されており、解像度を調整し、利用可能な帯域幅に応じてフレームをドロップすることがあります。接続が安定するにつれて品質が向上します。

WebRTC の輻輳制御により、特に 1920×1080 の 30 FPS など高解像度の場合、品質と FPS が最大まで向上するのに 1 分ほどかかることがあります。

#### Data Channel

構造化された推論結果を JSON メッセージとして送信します。これには、予測、座標、分類など、すべての Workflow 出力データが含まれます。Video Track とは異なり、Data Channel はライブのカメラフィードに追従するための最適化を行わず、信頼性が高く順序どおりの配信を提供します。動画ファイルを処理するには、Data Channel 経由でファイルをアップロードし、同じ方法で結果を受け取ることで、動画全体を完全に処理できます。

両方のチャネルを同時に使用できます。たとえば、アプリケーション内で構造化された予測データを処理しながら、注釈付き動画を表示できます。

### リージョンと GPU プラン

指定 `requested_region` と `requested_plan` を設定して、ストリームをどこで、どのように処理するかを制御します。

**リージョン:** `us` （米国）、 `eu` （ヨーロッパ）、 `ap` （アジア太平洋）

レイテンシを最小限にするため、ユーザーまたは動画ソースに最も近いリージョンを選択してください。

**GPU プラン:**

* `webrtc-gpu-medium`: 既定で、ほとんどの Workflow に推奨
* `webrtc-gpu-small`: 低コストです。Medium がユースケースでうまく動作することを確認した後に試してください。
* `webrtc-gpu-large`: SAM3 および SAM3 を使用する Rapid Models に必要です（約 5 FPS を想定）

### 同時実行数の制限

現在、各 workspace は **10 件の同時ストリーム** までが既定で上限です。これは悪用を防ぎ、サービス全体の信頼性を確保するのに役立ちます。

より高い上限が必要な場合は、営業チームまでご連絡ください。ご要望に応じて調整いたします。

### 料金

選択した GPU プランに基づき、時間単位で課金されます。課金はサーバーレス関数が起動し、WebRTC 接続が確立された時点で開始されます。現在の料金は [roboflow.com/credits](https://roboflow.com/credits) をご覧ください。

### SDK

#### JavaScript

Webブラウザおよび React Native アプリケーション向けです。

```bash
npm install @roboflow/inference-sdk
```

フロントエンドコードに API キーを公開しないでください。安全性を保つためにバックエンドのプロキシエンドポイントを使用してください。

* [NPM パッケージ](https://www.npmjs.com/package/@roboflow/inference-sdk)
* [サンプルアプリケーション](https://github.com/roboflow/inferenceSampleApp)
* [Documentation](https://docs.roboflow.com/deploy/sdks/web-browser/web-inference-sdk)

#### Python

バックエンドアプリケーション、RTSP ストリーム、および動画ファイル処理向けです。

```bash
pip install inference-sdk[webrtc]
```

* [PyPI パッケージ](https://pypi.org/project/inference-sdk/)
* [サンプルスクリプト](https://github.com/roboflow/inference/tree/main/examples/webrtc_sdk) （Webカメラ、RTSP、動画ファイル）

### 設定

ストリーミングセッションを作成する際は、 `StreamConfig` オブジェクトを渡して動作を制御します:

* `stream_output`: Video Track 経由でストリーミングする Workflow 出力名のリスト
* `data_output`: Data Channel 経由で送信する Workflow 出力名のリスト
* `requested_plan`: GPU プラン（上記参照）
* `requested_region`: リージョンコード（`us`, `eu`、または `ap`)
* `realtime_processing`: もし `True` （既定）、処理が追いつかない場合はフレームをドロップします
* `workflow_parameters`: Workflow に渡すパラメータの辞書

### コードなしでのテスト

Roboflow の Web インターフェースで直接ストリーミングをテストできます:

1. 次へ移動: [app.roboflow.com](https://app.roboflow.com)
2. 次を開く: **Workflows** タブ
3. Workflow を選択して **Test Workflow**
4. ソース（Webカメラ、RTSP、または動画ファイル）を選択し、GPU/リージョン設定を構成します
5. クリック **実行**
