For the complete documentation index, see llms.txt. This page is also available as Markdown.

Workflowsでの動画処理

Inference SDKのWebRTCクライアントを使って、Webカメラ、カメラフィード、動画ファイルをWorkflowにストリーミングします。

Inference SDK の WebRTC クライアントを使用して、Workflow を介してビデオをストリーミングします。同じクライアントは、セルフホストの Inference Server と Serverless Video Streaming API の両方で動作します。

WebRTC は、Workflow がフレームを処理している間、1 つのセッションを開いたままにします。これにより、トラッカー、カウンター、バッファーなどの状態を持つブロックをサポートできます。また、各フレームを個別の HTTP リクエストとして送信する必要もありません。

ランタイムを選択

ランタイム
API URL
次のような場合に使用します

セルフホストの Inference Server

http://localhost:9001

動画を自分のハードウェアまたはネットワーク上に留めておきたい場合。

Serverless Video Streaming API

https://serverless.roboflow.com

計算リソースの管理を Roboflow に任せたい場合。

セルフホストする場合は、クライアントを実行する前に 推論サーバー を起動してください。ホスト型の制限、リージョン、GPU プランについては、 Serverless Video Streaming.

SDK をインストール

pip install "inference-sdk[webrtc]"

Workflow をストリーミングする

この例では、Web カメラからビデオをキャプチャし、 predictions 保存済み Workflow の出力を出力します:

from inference_sdk import InferenceHTTPClient
from inference_sdk.webrtc import StreamConfig, WebcamSource

client = InferenceHTTPClient(
    api_url="http://localhost:9001",
    api_key="ROBOFLOW_API_KEY",
)

session = client.webrtc.stream(
    source=WebcamSource(),
    workflow="workflow-id",
    workspace="workspace-name",
    config=StreamConfig(data_output=["predictions"]),
)

@session.on_data("predictions")
def handle_predictions(predictions, metadata):
    print(f"Frame {metadata.frame_id}: {predictions}")

session.run()

置き換えてください workflow-id, workspace-name、および ROBOFLOW_API_KEY をあなたの値に。Serverless で実行するには、 api_url to https://serverless.roboflow.com.

の中の名前は data_output で定義された Workflow の出力と一致している必要があります。画像出力を動画として受け取るには、 stream_output に追加し、 on_frame ハンドラーを登録してください。 WebRTC Streaming リファレンス の完全な例を参照してください。

ビデオソースを選択

次の項目を変更します sourceclient.webrtc.stream() に渡す値は、ビデオの取得元に応じて次のように変えてください:

ソース
次のような場合に使用します

WebcamSource()

カメラはクライアントマシンに接続されています。

RTSPSource("rtsp://...")

Inference Server が RTSP カメラにアクセスできます。

LocalStreamSource("rtsp://...")

RTSP または RTMP ストリームにアクセスできるのはクライアントのみです。

VideoFileSource("video.mp4")

保存済みのビデオファイルを処理したい場合。

ManualSource()

アプリケーションが個々のフレームを提供します。

次の場合は RTSPSource を Serverless で使用する場合、カメラ URL はパブリックインターネットから到達可能である必要があります。 LocalStreamSource カメラがクライアントのネットワーク内でのみ利用可能な場合に使用してください。

参照してください WebRTC のビデオソース ソース設定については 結果の利用 コールバック、イテレーター、セッションのクリーンアップについては、

1 つのモデルをストリーミングする

1 つのモデルだけが必要な場合は、Workflow を構築する必要はありません。 model_id ではなく ワークフローワークスペース:

参照してください モデルをストリーミングする タスクの種類ごとの予測処理について。

次のステップ

最終更新

役に立ちましたか?