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 CloudToDeviceMethod
di 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.
Azure SDK for JavaScript