> 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-ko/deploy/serverless-video-streaming-api.md).

# Serverless Video Streaming API

### 개요

Serverless Streaming API는 WebRTC를 사용하여 웹캠, RTSP 카메라 또는 비디오 파일의 영상을 Roboflow Cloud로 스트리밍합니다. 귀하의 [Workflow](https://docs.roboflow.com/workflows/what-is-workflows) 각 프레임을 처리하고 결과를 애플리케이션으로 다시 스트리밍합니다.

이 API로 어떤 Workflow든 실행할 수 있습니다. 단일 모델 추론의 경우, 모델을 감싸는 Workflow를 생성하세요.

**지원되는 입력 소스:**

* **Webcam**: MediaStream API를 통한 브라우저 또는 디바이스 카메라
* **RTSP**: IP 카메라 또는 RTSP 호환 소스입니다. 클라우드 함수가 연결할 수 있도록 URL은 인터넷에서 공개적으로 접근 가능해야 합니다. URL의 사용자명/비밀번호를 통한 인증이 지원됩니다(예: `rtsp://user:pass@host/stream`).
* **Video Files**: Data Channel을 통해 업로드된 사전 녹화 비디오

### 작동 방식

스트리밍 세션을 시작하면 SDK가 Roboflow의 API를 호출해 WebRTC 연결을 초기화합니다. API는 귀하의 Workflow를 실행하는 서버리스 함수를 생성합니다. 연결이 이루어지면 데이터는 두 개의 WebRTC 채널을 통해 흐릅니다:

#### Video Track

비디오 프레임을 양방향으로 스트리밍합니다. 웹캠 또는 비디오 파일에서 프레임을 전송하면 주석/처리된 프레임을 다시 받습니다. 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) 를 참조하세요.

### SDKs

#### JavaScript

웹 브라우저 및 React Native 애플리케이션용입니다.

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

프런트엔드 코드에 API key를 노출하지 마세요. 보안을 위해 백엔드 프록시 엔드포인트를 사용하세요.

* [NPM package](https://www.npmjs.com/package/@roboflow/inference-sdk)
* [샘플 애플리케이션](https://github.com/roboflow/inferenceSampleApp)
* [문서](https://docs.roboflow.com/deploy/sdks/web-browser/web-inference-sdk)

#### Python

백엔드 애플리케이션, RTSP 스트림, 비디오 파일 처리용입니다.

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

* [PyPI package](https://pypi.org/project/inference-sdk/)
* [예제 스크립트](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 웹 인터페이스에서 직접 스트리밍을 테스트할 수 있습니다:

1. 이동하여 [app.roboflow.com](https://app.roboflow.com)
2. 을 열고 **Workflows** 탭을
3. Workflow를 선택한 다음 **Test Workflow**
4. 소스(Webcam, RTSP 또는 Video File)를 선택하고 GPU/리전 설정을 구성하세요
5. 클릭 **실행**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.roboflow.com/roboflow/roboflow-ko/deploy/serverless-video-streaming-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
