Condividi tramite


Deprecato. Libreria client edge di Analizzatore video di Azure per JavaScript

Deprecato. È consigliabile ritirare il servizio di anteprima di Analizzatore video di Azure. È consigliabile eseguire la transizione delle applicazioni dall'analizzatore video entro il 01 dicembre 2022. Questo SDK non viene più gestito.

Analizzatore video di Azure è un [servizio di intelligenza artificiale applicato di Azure][applied-ai-service] che offre una piattaforma per creare applicazioni video intelligenti che possono estendersi su infrastrutture perimetrali e cloud. La piattaforma offre la possibilità di acquisire, registrare e analizzare video live insieme alla pubblicazione dei risultati, dei video e dell'analisi video nei servizi di Azure all'perimetro o nel cloud. È progettato per essere una piattaforma estendibile, consentendo di connettere moduli perimetrali di inferenza video diversi, ad esempio moduli di Servizi cognitivi, o moduli di inferenza personalizzati sottoposti a training con i propri dati usando Machine Learning open source o [Azure Machine Learning][machine-learning].

Usare la libreria client per Video Analyzer Edge per:

  • Semplificare le interazioni con gli SDK IoT di Microsoft Azure
  • Creare topologie di pipeline e pipeline in tempo reale a livello di codice

Collegamenti chiave:

Introduttiva

Installare il pacchetto

Installare la libreria client di Analizzatore video per Typescript con npm:

npm install @azure/video-analyzer-edge

Prerequisiti

  • TypeScript v3.6.
  • Per usare questo pacchetto è necessaria una sottoscrizione di Azure attivae una stringa di connessione del dispositivo IoT.
  • Per interagire con l'hub IoT di Azure, è necessario eseguire npm install azure-iothub
  • Sarà necessario usare la versione dell'SDK corrispondente alla versione del modulo edge di Analizzatore video in uso.
SDK Modulo perimetrale analizzatore video
1.0.0-beta.3 1.1
1.0.0-beta.2 1.0
1.0.0-beta.1 1.0

Creazione di una topologia della pipeline ed esecuzione di richieste

Per il codice di avvio, visitare il esempi di .

Si garantisce che tutti i metodi dell'istanza client siano thread-safe e indipendenti l'uno dall'altro (linee guida). In questo modo si garantisce che la raccomandazione di riutilizzare le istanze client sia sempre sicura, anche tra thread.

Concetti chiave

Topologia della pipeline e pipeline in tempo reale

Una topologia pipeline è un progetto o un modello per creare un'istanza di pipeline in tempo reale. Definisce i parametri della pipeline usando i segnaposto come valori. Una pipeline in tempo reale fa riferimento a una topologia della pipeline e specifica i parametri. In questo modo è possibile avere più pipeline in tempo reale che fanno riferimento alla stessa topologia, ma con valori diversi per i parametri. Per altre informazioni, vedere topologie di pipeline e pipeline in tempo reale.

Esempi

Creazione di una topologia della pipeline

Per creare una topologia della pipeline è necessario definire origini e sink.

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

Creazione di una pipeline in tempo reale

Per creare un'istanza della pipeline in tempo reale, è necessario avere una topologia di pipeline esistente.

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

Chiamata di un metodo diretto

Per richiamare un metodo diretto nel dispositivo, è prima necessario definire la richiesta usando Video Analyzer Edge SDK, quindi inviare tale richiesta di metodo usando il CloudToDeviceMethoddi 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
});

Risoluzione dei problemi

  • Quando si crea una richiesta di metodo, ricordarsi di controllare l'ortografia del nome del metodo

Passaggi successivi

Contribuire

Questo progetto accoglie contributi e suggerimenti. La maggior parte dei contributi richiede l'accettazione di un Contratto di licenza collaboratore (CLA) che dichiara di avere il diritto e, in realtà, concedere a Microsoft i diritti per l'uso del contributo. Per informazioni dettagliate, visitare https://cla.microsoft.com.

Se si verificano problemi, aprire un problema nel GitHub.

Quando si invia una richiesta pull, un bot CLA determinerà automaticamente se è necessario fornire un cla e decorare la richiesta pull in modo appropriato (ad esempio, etichetta, commento). Seguire semplicemente le istruzioni fornite dal bot. Dovrai eseguire questa operazione una sola volta in tutti i repository usando la nostra cla.

Questo progetto ha adottato la codice di comportamento Microsoft Open Source. Per altre informazioni, vedere domande frequenti sul codice di condotta o contattare opencode@microsoft.com con eventuali domande o commenti aggiuntivi.