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

# Serverless Video Streaming

## के बारे में

Serverless Video Streaming API वेबकैम, RTSP कैमरों, या वीडियो फ़ाइलों से Roboflow Cloud तक वीडियो स्ट्रीम करने के लिए WebRTC का उपयोग करता है। आप एक मॉडल या एक [वर्कफ़्लो](https://docs.roboflow.com/workflows) चलाकर अपने एप्लिकेशन में प्रोसेस किए गए फ़्रेम और प्रेडिक्शन डेटा प्राप्त कर सकते हैं।

मॉडलों और Workflows दोनों के लिए Inference SDK WebRTC क्लाइंट का उपयोग करें। सेट करें `api_url` को `https://serverless.roboflow.com`. वही क्लाइंट एक [self-hosted Inference Server](/deployment/hi/self-hosted/inference-server.md) जब आप URL बदलते हैं।

समर्थित इनपुट स्रोत:

* वेबकैम: ब्राउज़र या डिवाइस कैमरा
* RTSP: एक IP कैमरा या अन्य RTSP-संगत स्रोत
* वीडियो फ़ाइल: डेटा चैनल के माध्यम से अपलोड की गई संग्रहीत वीडियो

जब Serverless सीधे किसी RTSP स्रोत से कनेक्ट होता है, तो उसका URL सार्वजनिक रूप से उपलब्ध होना चाहिए। यदि कैमरा केवल आपके स्थानीय नेटवर्क पर उपलब्ध है, तो उपयोग करें `LocalStreamSource` इसे क्लाइंट पर कैप्चर करने और फ़्रेम आगे भेजने के लिए।

## यह कैसे काम करता है

जब आप एक स्ट्रीमिंग सत्र शुरू करते हैं, तो SDK WebRTC कनेक्शन आरंभ करने के लिए Roboflow के API को कॉल करता है। API एक serverless फ़ंक्शन बनाता है जो आपका Workflow चलाता है। एक बार कनेक्ट होने पर, डेटा दो WebRTC चैनलों से होकर प्रवाहित होता है:

### वीडियो ट्रैक

वीडियो फ़्रेमों को द्विदिश रूप से स्ट्रीम करता है। आप अपने वेबकैम या वीडियो फ़ाइल से फ़्रेम भेजते हैं, और बदले में एनोटेटेड/प्रोसेस किए गए फ़्रेम प्राप्त करते हैं। वीडियो ट्रैक रीयल-टाइम डिस्प्ले के लिए अनुकूलित है: यह उपलब्ध बैंडविड्थ के आधार पर रिज़ॉल्यूशन समायोजित करता है और फ़्रेम छोड़ भी सकता है। जैसे-जैसे कनेक्शन स्थिर होता है, गुणवत्ता बढ़ती जाती है।

WebRTC congestion control के कारण, गुणवत्ता और FPS को पूर्ण क्षमता तक बढ़ने में एक मिनट तक लग सकता है, विशेष रूप से 1920×1080 जैसे उच्च रिज़ॉल्यूशन और 30 FPS पर।

### डेटा चैनल

संरचित inference परिणामों को JSON संदेशों के रूप में भेजता है। इसमें predictions, coordinates, और classifications जैसे सभी Workflow आउटपुट डेटा शामिल हैं। वीडियो ट्रैक के विपरीत, Data Channel लाइव कैमरा फ़ीड के साथ बने रहने के लिए किसी भी optimization के बिना विश्वसनीय, क्रमबद्ध डिलीवरी प्रदान करता है। वीडियो फ़ाइलों को प्रोसेस करने के लिए, आप फ़ाइल को Data Channel के माध्यम से अपलोड कर सकते हैं और वीडियो को पूरी तरह प्रोसेस करने के लिए उसी तरह परिणाम प्राप्त कर सकते हैं।

आप दोनों चैनलों का एक साथ उपयोग कर सकते हैं, उदाहरण के लिए अपने एप्लिकेशन में संरचित प्रेडिक्शन डेटा को प्रोसेस करते हुए एनोटेटेड वीडियो प्रदर्शित करना।

## क्षेत्र और GPU प्लान

निर्दिष्ट करें `requested_region` और `requested_plan` अपने कॉन्फ़िगरेशन में यह नियंत्रित करने के लिए कि आपकी स्ट्रीम कहाँ और कैसे प्रोसेस होती है।

क्षेत्र: `us` (संयुक्त राज्य), `eu` (यूरोप), `ap` (एशिया प्रशांत)

लैटेंसी कम करने के लिए अपने उपयोगकर्ताओं या वीडियो स्रोत के सबसे नज़दीकी क्षेत्र का चयन करें।

GPU प्लान:

* `webrtc-gpu-medium`: अधिकांश workflows के लिए डिफ़ॉल्ट और अनुशंसित
* `webrtc-gpu-small`: कम लागत। यह तब आज़माएँ जब यह पुष्टि हो जाए कि Medium आपके use case के लिए अच्छी तरह काम करता है।
* `webrtc-gpu-large`: SAM3 और Rapid Models के लिए आवश्यक जो SAM3 का उपयोग करते हैं (लगभग 5 FPS की अपेक्षा करें)

## समकालिकता सीमाएँ

प्रत्येक workspace डिफ़ॉल्ट रूप से 10 concurrent streams तक सीमित है।

यदि आपको इससे अधिक सीमा की आवश्यकता है, तो कृपया हमारी sales team से संपर्क करें; आपकी आवश्यकताओं के आधार पर इसे समायोजित करने में हमें खुशी होगी।

## मूल्य निर्धारण

आपके चुने गए GPU प्लान के आधार पर प्रति घंटे बिल किया जाता है। बिलिंग तब शुरू होती है जब serverless फ़ंक्शन स्पॉन होता है और WebRTC कनेक्शन स्थापित हो जाता है। देखें [roboflow.com/credits](https://roboflow.com/credits) वर्तमान दरों के लिए।

## SDKs

### JavaScript

वेब ब्राउज़र और React Native एप्लिकेशन के लिए।

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

अपने API key को frontend code में उजागर न करें। इसे सुरक्षित रखने के लिए backend proxy endpoint का उपयोग करें।

* [NPM पैकेज](https://www.npmjs.com/package/@roboflow/inference-sdk)
* [सैंपल एप्लिकेशन](https://github.com/roboflow/inferenceSampleApp)
* [दस्तावेज़ीकरण](/deployment/hi/self-hosted/sdks/web-browser/web-inference-sdk.md)

### Python

Python अनुप्रयोगों में मॉडलों और Workflows के लिए:

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

* [PyPI पैकेज](https://pypi.org/project/inference-sdk/)
* [WebRTC Streaming संदर्भ](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 वेब इंटरफ़ेस में सीधे स्ट्रीमिंग का परीक्षण कर सकते हैं:

1. पर जाएँ [app.roboflow.com](https://app.roboflow.com)
2. "Workflows" टैब खोलें
3. एक Workflow चुनें और "Test Workflow" पर क्लिक करें
4. अपना स्रोत चुनें (Webcam, RTSP, या Video File) और GPU/region सेटिंग्स कॉन्फ़िगर करें
5. "Run" पर क्लिक करें
