> 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/deployment/ja/roboflow-cloud/serverless-api/serverless-video-streaming-api.md).

# サーバーレス動画ストリーミング

## 概要

サーバーレス動画ストリーミング API は、WebRTC を使用して、ウェブカメラ、RTSP カメラ、または動画ファイルから Roboflow Cloud に動画をストリーミングします。1 つのモデルを実行することも、 [ワークフロー](https://docs.roboflow.com/workflows) アプリケーションで処理済みフレームと予測データの両方を受信することもできます。

モデルと Workflows の両方で Inference SDK WebRTC クライアントを使用します。設定 `api_url` を `https://serverless.roboflow.com`。同じクライアントは [セルフホスト型 Inference Server](/deployment/ja/serufuhosuto/inference-server.md) URL を変更するときに動作します。

サポートされている入力ソース:

* ウェブカメラ: ブラウザーまたはデバイスのカメラ
* RTSP: IP カメラ、またはその他の RTSP 対応ソース
* 動画ファイル: データチャネル経由でアップロードされた保存済み動画

Serverless が RTSP ソースに直接接続する場合、その URL は公開アクセス可能である必要があります。カメラがローカルネットワーク上でのみ利用可能な場合は、 `LocalStreamSource` を使用してクライアント上でキャプチャし、フレームを転送します。

## 仕組み

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

### ビデオトラック

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

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

### データチャネル

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

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

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

指定してください `requested_region` および `requested_plan` を設定して、ストリームがどこで、どのように処理されるかを制御します。

リージョン: `us` (アメリカ合衆国), `eu` (ヨーロッパ), `ap` (アジア太平洋)

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

GPU プラン:

* `webrtc-gpu-medium`: ほとんどのワークフローにおける既定値で推奨
* `webrtc-gpu-small`: 低コストです。Medium がユースケースで十分に機能することを確認したあとに試してください。
* `webrtc-gpu-large`: SAM3 および SAM3 を使用する Rapid Models に必要です（約 5 FPS を想定）

## 同時実行数の制限

各ワークスペースは、既定で同時ストリーム数が 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)
* [ドキュメント](/deployment/ja/serufuhosuto/sdks/web-browser/web-inference-sdk.md)

### Python

Python アプリケーションでモデルと Workflows を使う場合:

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

* [PyPI パッケージ](https://pypi.org/project/inference-sdk/)
* [WebRTC ストリーミングリファレンス](https://docs.roboflow.com/reference/inference/inference-sdk/webrtc)
* [サンプルスクリプト](https://github.com/roboflow/inference/tree/main/examples/webrtc_sdk) (ウェブカメラ、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. ソース（Webcam、RTSP、または Video File）を選択し、GPU/リージョン設定を構成します
5. 「Run」をクリック
