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

# 서버리스 비디오 스트리밍

## 소개

서버리스 비디오 스트리밍 API는 WebRTC를 사용하여 웹캠, RTSP 카메라 또는 비디오 파일의 비디오를 Roboflow Cloud로 스트리밍합니다. 하나의 모델 또는 [워크플로](https://docs.roboflow.com/workflows) 그리고 애플리케이션에서 처리된 프레임과 예측 데이터를 수신합니다.

모델과 워크플로우 모두에 Inference SDK WebRTC 클라이언트를 사용하세요. 설정 `api_url` 를 `https://serverless.roboflow.com`. 동일한 클라이언트는 [자체 호스팅 Inference Server](/deployment/ko/self-hosted/inference-server.md) URL을 변경할 때.

지원되는 입력 소스:

* 웹캠: 브라우저 또는 장치 카메라
* RTSP: IP 카메라 또는 기타 RTSP 호환 소스
* 비디오 파일: 데이터 채널을 통해 업로드된 저장된 비디오

Serverless가 RTSP 소스에 직접 연결할 때 해당 URL은 공개적으로 접근 가능해야 합니다. 카메라가 로컬 네트워크에서만 사용 가능한 경우, `LocalStreamSource` 를 사용하여 클라이언트에서 이를 캡처하고 프레임을 전달합니다.

## 작동 방식

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

### 비디오 트랙

비디오 프레임을 양방향으로 스트리밍합니다. 웹캠이나 비디오 파일에서 프레임을 보내고, 주석이 달리거나 처리된 프레임을 다시 받습니다. 비디오 트랙은 실시간 표시에 최적화되어 있어 해상도를 조정하며 사용 가능한 대역폭에 따라 프레임을 일부 드롭할 수 있습니다. 연결이 안정화되면 품질이 점차 향상됩니다.

WebRTC 혼잡 제어로 인해 품질과 FPS가 최대 수준으로 올라가는 데 최대 1분이 걸릴 수 있으며, 특히 1920×1080, 30 FPS와 같은 고해상도에서는 더 그렇습니다.

### 데이터 채널

구조화된 추론 결과를 JSON 메시지로 전송합니다. 여기에는 예측, 좌표, 분류와 같은 모든 워크플로우 출력 데이터가 포함됩니다. Video Track과 달리 Data Channel은 라이브 카메라 피드에 맞추기 위한 최적화 없이 신뢰할 수 있고 순서가 보장된 전달을 제공합니다. 비디오 파일을 처리하려면, 파일을 Data Channel을 통해 업로드하고 동일한 방식으로 결과를 받아 비디오를 완전히 처리할 수 있습니다.

두 채널을 동시에 사용할 수 있습니다. 예를 들어 애플리케이션에서 구조화된 예측 데이터를 처리하는 동시에 주석이 달린 비디오를 표시할 수 있습니다.

## 리전 및 GPU 플랜

지정하세요 `requested_region` 및 `requested_plan` 구성에서 스트림이 어디서 어떻게 처리될지 제어하세요.

리전: `미국` (미국), `유럽` (유럽), `아시아 태평양` (아시아 태평양)

지연 시간을 최소화하려면 사용자 또는 비디오 소스와 가장 가까운 리전을 선택하세요.

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

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

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

프런트엔드 코드에 API 키를 노출하지 마세요. 안전하게 유지하려면 백엔드 프록시 엔드포인트를 사용하세요.

* [NPM 패키지](https://www.npmjs.com/package/@roboflow/inference-sdk)
* [샘플 애플리케이션](https://github.com/roboflow/inferenceSampleApp)
* [문서](/deployment/ko/self-hosted/sdks/web-browser/web-inference-sdk.md)

### Python

Python 애플리케이션에서 모델과 워크플로우를 사용하려면:

```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을 통해 스트리밍할 워크플로우 출력 이름 목록
* `data_output`: Data Channel을 통해 전송할 워크플로우 출력 이름 목록
* `requested_plan`: GPU 플랜(위 참조)
* `requested_region`: 리전 코드 (`미국`, `유럽`, 또는 `아시아 태평양`)
* `realtime_processing`: 만약 `True` (기본값), 처리가 따라가지 못할 때 프레임을 드롭합니다
* `workflow_parameters`: 워크플로우에 전달할 매개변수 사전

## 코드 없이 테스트

Roboflow 웹 인터페이스에서 스트리밍을 직접 테스트할 수 있습니다:

1. 이동하세요 [app.roboflow.com](https://app.roboflow.com)
2. "Workflows" 탭을 여세요
3. 워크플로우를 선택하고 "Test Workflow"를 클릭하세요
4. 소스(웹캠, RTSP 또는 비디오 파일)를 선택하고 GPU/리전 설정을 구성하세요
5. "Run"을 클릭하세요
