Web inference-sdk
inference-sdk के साथ Roboflow cloud पर चलाते हुए, अपने browser से realtime video inference चलाएँ
अंतिम अपडेट
क्या यह उपयोगी था?
क्या यह उपयोगी था?
import { connectors, webrtc, streams } from '@roboflow/inference-sdk';
// ⚠️ विकास के लिए केवल withApiKey का उपयोग करें
// ⚠️ इसे production में उपयोग न करें, क्योंकि इससे आपका API key उजागर हो जाएगा
// production के लिए, backend proxy का उपयोग करें (अगला अनुभाग देखें)
const connector = connectors.withApiKey("your-api-key");
// कैमरा स्ट्रीम प्राप्त करें
const stream = await streams.useCamera({
video: {
facingMode: { ideal: "environment" },
width: { ideal: 640 },
height: { ideal: 480 }
}
});
// WebRTC कनेक्शन शुरू करें
const connection = await webrtc.useStream({
source: stream,
connector,
wrtcParams: {
workspaceName: "your-workspace",
workflowId: "your-workflow",
imageInputName: "image",
streamOutputNames: ["output"],
dataOutputNames: ["predictions"]
},
onData: (data) => {
console.log("अनुमान परिणाम:", data);
}
});
// प्रोसेस किया गया वीडियो प्रदर्शित करें
const videoElement = document.getElementById('video');
videoElement.srcObject = await connection.remoteStream();
// काम पूरा होने पर साफ़ करें
await connection.cleanup();import { connectors, webrtc, streams } from '@roboflow/inference-sdk';
// सीधे API key के बजाय proxy endpoint का उपयोग करें
const connector = connectors.withProxyUrl('/api/init-webrtc');
const stream = await streams.useCamera({ video: true });
const connection = await webrtc.useStream({
source: stream,
connector,
wrtcParams: { /* ... */ }
});import { InferenceHTTPClient } from '@roboflow/inference-sdk/api';
app.post('/api/init-webrtc', async (req, res) => {
const { offer, wrtcparams } = req.body;
// API key सर्वर पर सुरक्षित रहता है
const client = InferenceHTTPClient.init({
apiKey: process.env.ROBOFLOW_API_KEY
});
const answer = await client.initializeWebrtcWorker({
offer,
workspaceName: wrtcparams.workspaceName,
workflowId: wrtcparams.workflowId,
config: {
imageInputName: wrtcparams.imageInputName,
streamOutputNames: wrtcparams.streamOutputNames,
dataOutputNames: wrtcparams.dataOutputNames
}
});
res.json(answer);
});// अलग विज़ुअलाइज़ेशन पर स्विच करें
connection.reconfigureOutputs({
streamOutput: ["blur_visualization"]
});
// सभी data outputs सक्षम करें
connection.reconfigureOutputs({
dataOutput: ["*"]
});
// दोनों को एक साथ बदलें
connection.reconfigureOutputs({
streamOutput: ["annotated_image"],
dataOutput: ["predictions", "counts"]
});