Veraltet. Azure Video Analyzer Edge-Clientbibliothek für JavaScript
Veraltet. Wir setzen den Vorschaudienst für Azure Video Analyzer ab, Sie werden empfohlen, Ihre Anwendungen bis zum 01. Dezember 2022 von der Video Analyzer zu wechseln. Dieses SDK wird nicht mehr verwaltet.
Azure Video Analyzer ist ein [Azure Applied AI Service][applied-ai-service], der eine Plattform für Sie bietet, um intelligente Videoanwendungen zu erstellen, die sowohl Edge- als auch Cloudinfrastrukturen umfassen können. Die Plattform bietet die Möglichkeit, Livevideos zusammen mit der Veröffentlichung der Ergebnisse, Video- und Videoanalysen, in Azure-Diensten am Edge oder in der Cloud aufzuzeichnen und zu analysieren. Es ist eine erweiterbare Plattform, mit der Sie verschiedene Video-Inferencing-Edgemodule wie Cognitive Services-Module oder benutzerdefinierte Ableitungsmodule verbinden können, die mit Ihren eigenen Daten trainiert wurden, entweder mit Open-Source Machine Learning oder [Azure Machine Learning][Machine Learning].
Verwenden Sie die Clientbibliothek für Video Analyzer Edge, um:
- Vereinfachen der Interaktionen mit den Microsoft Azure IoT-SDKs
- Programmgesteuertes Erstellen von Pipelinetopologien und Live-Pipelines
Wichtige Links:
Erste Schritte
Installieren des Pakets
Installieren Sie die Video Analyzer-Clientbibliothek für Typescript mit npm:
npm install @azure/video-analyzer-edge
Voraussetzungen
- TypeScript v3.6.
- Sie benötigen ein aktives Azure-Abonnementund eine IoT-Geräteverbindungszeichenfolge, um dieses Paket zu verwenden.
- Um mit Azure IoT Hub zu interagieren, müssen Sie
npm install azure-iothub
- Sie müssen die Version des SDK verwenden, die der Version des verwendeten Video Analyzer-Edgemoduls entspricht.
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 |
Erstellen einer Pipelinetopologie und Erstellen von Anforderungen
Bitte besuchen Sie die Examples für Den Startcode.
Wir garantieren, dass alle Clientinstanzmethoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.
Schlüsselkonzepte
Pipelinetopologie im Vergleich zur Livepipeline
Eine Pipelinetopologie ist ein Blueprint oder eine Vorlage zum Instanziieren von Livepipelinen. Sie definiert die Parameter der Pipeline mithilfe von Platzhaltern als Werte für sie. Eine Livepipeline verweist auf eine Pipelinetopologie und gibt die Parameter an. Auf diese Weise können Sie über mehrere Livepipelinen verfügen, die auf dieselbe Topologie verweisen, aber mit unterschiedlichen Werten für Parameter. Weitere Informationen finden Sie unter Pipelinetopologien und Livepipelines.
Beispiele
Erstellen einer Pipelinetopologie
Zum Erstellen einer Pipelinetopologie müssen Sie Quellen und Senken definieren.
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]
}
};
Erstellen einer Livepipeline
Zum Erstellen einer Livepipelineinstanz müssen Sie über eine vorhandene Pipelinetopologie verfügen.
const livePipeline: LivePipeline = {
name: "jsLivePipelineTest",
properties: {
description: "description",
topologyName: pipelineTopologyName,
parameters: [{ name: "rtspUrl", value: "rtsp://sample.com" }]
}
};
Aufrufen einer direkten Methode
Um eine direkte Methode auf Ihrem Gerät aufzurufen, müssen Sie zuerst die Anforderung mithilfe des Video Analyzer Edge SDK definieren, und senden Sie dann diese Methodenanforderung mithilfe der CloudToDeviceMethod
des 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
});
Fehlerbehebung
- Denken Sie beim Erstellen einer Methodenanforderung daran, die Schreibweise des Namens der Methode zu überprüfen.
Nächste Schritte
Beitragend
Dieses Projekt begrüßt Beiträge und Vorschläge. Die meisten Beiträge erfordern, dass Sie einem Mitwirkenden-Lizenzvertrag (CLA) zustimmen, der erklärt, dass Sie das Recht haben, uns tatsächlich die Rechte zur Nutzung Ihres Beitrags zu gewähren. Weitere Informationen finden Sie unter https://cla.microsoft.com.
Wenn Probleme auftreten, öffnen Sie bitte ein Problem auf unserem Github-.
Wenn Sie eine Pullanfrage einreichen, bestimmt ein CLA-Bot automatisch, ob Sie eine CLA bereitstellen und die PR entsprechend dekorieren müssen (z. B. Bezeichnung, Kommentar). Folgen Sie einfach den Anweisungen des Bots. Sie müssen dies nur einmal über alle Reposs hinweg tun, indem Sie unsereN CLA verwenden.
Dieses Projekt hat den Microsoft Open Source Code of Conductübernommen. Weitere Informationen finden Sie im Code of Conduct FAQ oder wenden Sie sich an opencode@microsoft.com mit weiteren Fragen oder Kommentaren.
Azure SDK for JavaScript