Deprecated. Azure Video Analyzer Edge-klientbibliotek för JavaScript
Deprecated. Vi drar tillbaka förhandsversionen av Azure Video Analyzer. Du bör flytta dina program från Video Analyzer senast den 1 december 2022. Det här SDK:et underhålls inte längre.
Azure Video Analyzer är en [Azure Applied AI Service][applied-ai-service] som ger dig en plattform för att skapa intelligenta videoprogram som kan sträcka sig över både gräns- och molninfrastrukturer. Plattformen erbjuder möjligheten att samla in, spela in och analysera livevideo tillsammans med att publicera resultat, video- och videoanalyser till Azure-tjänster vid gränsen eller i molnet. Den är utformad för att vara en utökningsbar plattform som gör att du kan ansluta olika videoinferensmoduler som Cognitive Services-moduler eller anpassade slutsatsdragningsmoduler som har tränats med dina egna data med hjälp av maskininlärning med öppen källkod eller [Azure Machine Learning][maskininlärning].
Använd klientbiblioteket för Video Analyzer Edge för att:
- Förenkla interaktioner med Microsoft Azure IoT SDK:er
- Konstruera pipelinetopologier och livepipelines programmatiskt
Nyckellänkar:
Komma igång
Installera paketet
Installera Video Analyzer-klientbiblioteket för Typescript med npm:
npm install @azure/video-analyzer-edge
Förutsättningar
- TypeScript v3.6.
- Du behöver en aktiv Azure-prenumerationoch en IoT-enhetsanslutningssträng för att använda det här paketet.
- Om du vill interagera med Azure IoT Hub måste du köra
npm install azure-iothub
- Du måste använda den version av SDK som motsvarar den version av Video Analyzer Edge-modulen som du använder.
SDK | Video Analyzer Edge-modul |
---|---|
1.0.0-beta.3 | 1.1 |
1.0.0-beta.2 | 1.0 |
1.0.0-beta.1 | 1.0 |
Skapa en pipelinetopologi och göra begäranden
Gå till Exempel för startkod.
Vi garanterar att alla klientinstansmetoder är trådsäkra och oberoende av varandra (riktlinje). Detta säkerställer att rekommendationen att återanvända klientinstanser alltid är säker, även över trådar.
Viktiga begrepp
Pipelinetopologi jämfört med livepipeline
En pipelinetopologi är en skiss eller mall för instansiering av livepipelines. Den definierar parametrarna för pipelinen med platshållare som värden för dem. En live-pipeline refererar till en pipelinetopologi och anger parametrarna. På så sätt kan du ha flera livepipelines som refererar till samma topologi men med olika värden för parametrar. Mer information finns i pipelinetopologier och livepipelines.
Exempel
Skapa en pipelinetopologi
Om du vill skapa en pipelinetopologi måste du definiera källor och mottagare.
const rtspSource: RtspSource = {
//Create a source for your pipeline topology
name: "rtspSource",
endpoint: {
url: "${rtspUrl}",
"@type": "#Microsoft.VideoAnalyzer.UnsecuredEndpoint",
credentials: {
username: "${rtspUserName}",
password: "${rtspPassword}",
"@type": "#Microsoft.VideoAnalyzer.UsernamePasswordCredentials"
}
} as UnsecuredEndpoint,
"@type": "#Microsoft.VideoAnalyzer.RtspSource"
};
const nodeInput: NodeInput = {
//Create an input for your sink
nodeName: "rtspSource"
};
const videoSink: VideoSink = {
name: "videoSink",
inputs: [nodeInput],
videoName: "video",
localMediaCachePath: "/var/lib/videoanalyzer/tmp/",
localMediaCacheMaximumSizeMiB: "1024",
"@type": "#Microsoft.VideoAnalyzer.VideoSink"
};
const pipelineTopology: PipelineTopology = {
name: "jsTestTopology",
properties: {
description: "description for jsTestTopology",
parameters: [
{ name: "rtspUserName", type: "String", default: "testUsername" },
{ name: "rtspPassword", type: "SecretString", default: "testPassword" },
{ name: "rtspUrl", type: "String" }
],
sources: [rtspSource],
sinks: [videoSink]
}
};
Skapa en live-pipeline
Om du vill skapa en live-pipelineinstans måste du ha en befintlig pipelinetopologi.
const livePipeline: LivePipeline = {
name: "jsLivePipelineTest",
properties: {
description: "description",
topologyName: pipelineTopologyName,
parameters: [{ name: "rtspUrl", value: "rtsp://sample.com" }]
}
};
Anropa en direktmetod
Om du vill anropa en direktmetod på enheten måste du först definiera begäran med hjälp av Video Analyzer Edge SDK och sedan skicka den metodbegäran med hjälp av IoT SDK:ns CloudToDeviceMethod
.
import { createRequest } from "@azure/video-analyzer-edge";
import { Client } from "azure-iothub";
const deviceId = process.env.iothub_deviceid;
const moduleId = process.env.iothub_moduleid;
const connectionString = process.env.iothub_connectionstring;
const iotHubClient = Client.fromConnectionString(connectionString); //Connect to your IoT Hub
const pipelineTopologySetRequest = createRequest("pipelineTopologySet", pipelineTopology);
const setPipelineTopResponse = await iotHubClient.invokeDeviceMethod(deviceId, moduleId, {
methodName: pipelineTopologySetRequest.methodName,
payload: pipelineTopologySetRequest.payload
});
Felsökning
- När du skapar en metodbegäran kommer du ihåg att kontrollera stavningen av namnet på metoden
Nästa steg
Bidragande
Det här projektet välkomnar bidrag och förslag. De flesta bidrag kräver att du godkänner ett licensavtal för deltagare (CLA) som förklarar att du har rätt att, och faktiskt gör det, ge oss rätten att använda ditt bidrag. Mer information finns i https://cla.microsoft.com.
Om du stöter på problem kan du öppna ett problem på vår Github-.
När du skickar en pull-begäran avgör en CLA-robot automatiskt om du behöver tillhandahålla ett CLA och dekorera PR på rätt sätt (t.ex. etikett, kommentar). Följ bara anvisningarna från roboten. Du behöver bara göra detta en gång för alla lagringsplatser med vår CLA.
Det här projektet har antagit Microsoft Open Source Code of Conduct. Mer information finns i Vanliga frågor och svar om uppförandekod eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.
Azure SDK for JavaScript