Partager via


Obsolescent. Bibliothèque de client Azure Video Analyzer Edge pour JavaScript

Obsolescent. Nous mettons hors service Azure Video Analyzer en préversion, vous êtes invité à transférer vos applications hors de Video Analyzer d’ici le 1er décembre 2022. Ce Kit de développement logiciel (SDK) n’est plus conservé.

Azure Video Analyzer est un [service d’IA appliqué Azure][applied-ai-service] qui fournit une plateforme pour vous permettre de créer des applications vidéo intelligentes qui peuvent s’étendre à la fois sur les infrastructures de périphérie et de cloud. La plateforme offre la possibilité de capturer, d’enregistrer et d’analyser des vidéos en direct, ainsi que de publier les résultats, la vidéo et l’analytique vidéo, sur les services Azure en périphérie ou dans le cloud. Il est conçu pour être une plateforme extensible, ce qui vous permet de connecter différents modules de périphérie d’inférence vidéo tels que des modules Cognitive Services ou des modules d’inférence personnalisés qui ont été formés avec vos propres données à l’aide du Machine Learning open source ou [Azure Machine Learning][Machine Learning].

Utilisez la bibliothèque cliente pour Video Analyzer Edge pour :

  • Simplifiez les interactions avec les sdk Microsoft Azure IoT
  • Construire par programmation des topologies de pipeline et des pipelines en direct

Liens clés :

Commencer

Installer le package

Installez la bibliothèque de client Video Analyzer pour Typescript avec npm :

npm install @azure/video-analyzer-edge

Conditions préalables

  • TypeScript v3.6.
  • Vous avez besoin d’un abonnement Azure actif et d’une chaîne de connexion d’appareil IoT pour utiliser ce package.
  • Pour interagir avec Azure IoT Hub, vous devez exécuter npm install azure-iothub
  • Vous devez utiliser la version du Kit de développement logiciel (SDK) qui correspond à la version du module edge Video Analyzer que vous utilisez.
KIT SDK Module edge Video Analyzer
1.0.0-beta.3 1.1
1.0.0-beta.2 1.0
1.0.0-beta.1 1.0

Création d’une topologie de pipeline et exécution de requêtes

Visitez les Exemples pour le code de démarrage.

Nous garantissons que toutes les méthodes d’instance clientes sont thread-safe et indépendantes les unes des autres (directive). Cela garantit que la recommandation de réutilisation des instances clientes est toujours sécurisée, même entre les threads.

Concepts clés

Topologie de pipeline et pipeline en direct

Une topologie de pipeline est un blueprint ou un modèle permettant d’instancier des pipelines en direct. Il définit les paramètres du pipeline à l’aide d’espaces réservés comme valeurs. Un pipeline en direct fait référence à une topologie de pipeline et spécifie les paramètres. De cette façon, vous pouvez avoir plusieurs pipelines en direct référençant la même topologie, mais avec des valeurs différentes pour les paramètres. Pour plus d’informations, consultez topologies de pipeline et pipelines en direct.

Exemples

Création d’une topologie de pipeline

Pour créer une topologie de pipeline, vous devez définir des sources et des récepteurs.

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

Création d’un pipeline en direct

Pour créer une instance de pipeline en direct, vous devez disposer d’une topologie de pipeline existante.

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

Appel d’une méthode directe

Pour appeler une méthode directe sur votre appareil, vous devez d’abord définir la requête à l’aide du Kit de développement logiciel (SDK) Video Analyzer Edge, puis envoyer cette demande de méthode à l’aide du CloudToDeviceMethoddu Kit de développement logiciel (SDK) IoT.

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

Dépannage

  • Lors de la création d’une demande de méthode, n’oubliez pas de vérifier l’orthographe du nom de la méthode

Étapes suivantes

Contribuant

Ce projet accueille les contributions et suggestions. La plupart des contributions vous obligent à accepter un contrat de licence contributeur (CLA) déclarant que vous avez le droit, et en fait, de nous accorder les droits d’utilisation de votre contribution. Pour plus d’informations, visitez https://cla.microsoft.com.

Si vous rencontrez des problèmes, ouvrez un problème sur notre Github.

Lorsque vous envoyez une demande de tirage( pull request), un bot CLA détermine automatiquement si vous devez fournir un CLA et décorer correctement la demande de tirage (par exemple, étiquette, commentaire). Suivez simplement les instructions fournies par le bot. Vous n’aurez besoin de le faire qu’une seule fois sur tous les dépôts à l’aide de notre CLA.

Ce projet a adopté le code de conduite Microsoft Open Source. Pour plus d’informations, consultez la FAQ sur le code de conduite ou contactez opencode@microsoft.com avec toutes les questions ou commentaires supplémentaires.