Share via


Veraltet. Azure Video Analyzer Edge-Clientbibliothek für JavaScript

Veraltet. Wir setzen den Azure Video Analyzer-Vorschaudienst zurück, wir empfehlen Ihnen, Ihre Anwendungen nach dem 01. Dezember 2022 zu übertragen. Dieses SDK wird nicht mehr beibehalten.

Azure Video Analyzer ist ein [Azure Applied AI Service][applied-ai-service] mit einer Plattform, auf der Sie intelligente Videoanwendungen erstellen können, die sowohl Edge- als auch Cloudinfrastrukturen umfassen können. Die Plattform bietet die Möglichkeit, Livevideos zu erfassen, aufzuzeichnen und zu analysieren sowie die Ergebnisse, Video- und Videoanalysen, in Azure-Diensten am Edge oder in der Cloud zu veröffentlichen. Es ist als erweiterbare Plattform konzipiert, mit der Sie verschiedene Videorückschluss-Edgemodule wie Cognitive Services-Module oder benutzerdefinierte Rückschlussmodule verbinden können, die mit Ihren eigenen Daten mithilfe von Open Source Machine Learning oder [Azure Machine Learning][Machine Learning] trainiert wurden.

Verwenden Sie die Clientbibliothek für Video Analyzer Edge für Folgendes:

  • Vereinfachen der Interaktionen mit den Microsoft Azure IoT SDKs
  • Programmgesteuertes Erstellen von Pipelinetopologien und Livepipelines

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-Abonnement und eine IoT-Geräteverbindungszeichenfolge, um dieses Paket verwenden zu können.
  • Um mit Azure IoT Hub zu interagieren, müssen Sie ausführennpm install azure-iothub
  • Sie müssen die Version des SDK verwenden, die der Version des verwendeten Video Analyzer-Edgemoduls entspricht.
SDK Video Analyzer-Edgemodul
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 Stellen von Anforderungen

Besuchen Sie die Beispiele für Startcode.

Wir garantieren, dass alle Clientinstanzmethoden threadsicher und voneinander unabhängig sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch threadsübergreifend.

Wichtige Begriffe

Pipelinetopologie im Vergleich zur Livepipeline

Eine Pipelinetopologie ist eine Blaupause oder Vorlage zum Instanziieren von Livepipelines. 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 mehrere Livepipelines verwenden, die auf dieselbe Topologie verweisen, aber unterschiedliche Werte für Parameter aufweisen. 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 benötigen Sie eine vorhandene Pipelinetopologie.

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 dann diese Methodenanforderung mithilfe des IoT SDK CloudToDeviceMethodsenden.

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

Problembehandlung

  • Denken Sie beim Erstellen einer Methodenanforderung daran, die Schreibweise des Namens der Methode zu überprüfen.

Nächste Schritte

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.

Wenn Probleme auftreten, öffnen Sie ein Problem auf unserem Github.

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den FAQ zum Verhaltenskodex, oder wenden Sie sich mit weiteren Fragen oder Kommentaren an opencode@microsoft.com.