Dela via


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:

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.