Delen via


Verouderd. Azure Video Analyzer Edge-clientbibliotheek voor JavaScript

Verouderd. De preview-service van Azure Video Analyzer wordt buiten gebruik gesteld. U wordt aangeraden uw toepassingen tegen 01 december 2022 over te zetten van Video Analyzer. Deze SDK wordt niet meer onderhouden.

Azure Video Analyzer is een [Azure Applied AI Service][applied-ai-service] die een platform biedt waarmee u intelligente videotoepassingen kunt bouwen die zowel edge- als cloudinfrastructuren kunnen omvatten. Het platform biedt de mogelijkheid om livevideo's vast te leggen, op te nemen en te analyseren, samen met het publiceren van de resultaten, video- en videoanalyses naar Azure-services aan de rand of in de cloud. Het is ontworpen als een uitbreidbaar platform, zodat u verschillende edge-modules voor videodeductie kunt verbinden, zoals Cognitive Services-modules of aangepaste deductiemodules die zijn getraind met uw eigen gegevens met behulp van opensource-machine learning of [Azure Machine Learning][machine-learning].

Gebruik de clientbibliotheek voor Video Analyzer Edge om het volgende te doen:

Sleutelkoppelingen:

Slag

Het pakket installeren

Installeer de Video Analyzer-clientbibliotheek voor Typescript met npm:

npm install @azure/video-analyzer-edge

Voorwaarden

  • TypeScript v3.6.
  • U hebt een actief Azure-abonnement nodigen een IoT-apparaatverbindingsreeks om dit pakket te kunnen gebruiken.
  • Als u wilt communiceren met Azure IoT Hub, moet u npm install azure-iothub uitvoeren
  • U moet de versie van de SDK gebruiken die overeenkomt met de versie van de Edge-module van Video Analyzer die u gebruikt.
SDK Video Analyzer Edge-module
1.0.0-beta.3 1.1
1.0.0-beta.2 1.0
1.0.0-beta.1 1.0

Een pijplijntopologie maken en aanvragen maken

Ga naar de Voorbeelden voor starterscode.

We garanderen dat alle methoden voor clientexemplaren thread-veilig en onafhankelijk van elkaar zijn (richtlijn). Dit zorgt ervoor dat de aanbeveling voor het hergebruik van clientexemplaren altijd veilig is, zelfs voor threads.

Sleutelbegrippen

Pijplijntopologie versus livepijplijn

Een pijplijntopologie is een blauwdruk of sjabloon voor het instantiëren van livepijplijnen. Hiermee worden de parameters van de pijplijn gedefinieerd met behulp van tijdelijke aanduidingen als waarden. Een live-pijplijn verwijst naar een pijplijntopologie en geeft de parameters op. Op deze manier kunt u meerdere live-pijplijnen laten verwijzen naar dezelfde topologie, maar met verschillende waarden voor parameters. Ga voor meer informatie naar pijplijntopologieën en live-pijplijnen.

Voorbeelden

Een pijplijntopologie maken

Als u een pijplijntopologie wilt maken, moet u bronnen en sinks definiëren.

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]
  }
};

Een live-pijplijn maken

Als u een livepijplijnexemplaren wilt maken, moet u een bestaande pijplijntopologie hebben.

const livePipeline: LivePipeline = {
  name: "jsLivePipelineTest",
  properties: {
    description: "description",
    topologyName: pipelineTopologyName,
    parameters: [{ name: "rtspUrl", value: "rtsp://sample.com" }]
  }
};

Een directe methode aanroepen

Als u een directe methode op uw apparaat wilt aanroepen, moet u eerst de aanvraag definiëren met behulp van de Video Analyzer Edge SDK en die methodeaanvraag verzenden met behulp van de CloudToDeviceMethodvan de IoT SDK.

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
});

Probleemoplossing

  • Wanneer u een methodeaanvraag maakt, moet u de spelling van de naam van de methode controleren

Volgende stappen

Bijdragen

Dit project verwelkomt bijdragen en suggesties. Voor de meeste bijdragen moet u akkoord gaan met een Licentieovereenkomst voor inzenders (CLA) waarin wordt aangegeven dat u het recht hebt om, en daadwerkelijk, ons de rechten te verlenen om uw bijdrage te gebruiken. Ga naar https://cla.microsoft.comvoor meer informatie.

Als u problemen ondervindt, opent u een probleem op onze Github-.

Wanneer u een pull-aanvraag indient, bepaalt een CLA-bot automatisch of u een CLA moet opgeven en de pull-aanvraag op de juiste wijze moet inrichten (bijvoorbeeld label, opmerking). Volg gewoon de instructies van de bot. U hoeft dit slechts eenmaal te doen voor alle opslagplaatsen met behulp van onze CLA.

Dit project heeft de Microsoft Open Source-gedragscodeaangenomen. Zie de veelgestelde vragen over gedragscodes voor meer informatie of neem contact op met opencode@microsoft.com met eventuele aanvullende vragen of opmerkingen.