Partager via


Action déconseillée. Bibliothèque de client Azure Video Analyzer Edge pour .NET

Action déconseillée. Nous retirons le service Azure Video Analyzer en préversion. Nous vous conseillons de 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 géré.

Azure Video Analyzer est un service Azure Applied AI qui fournit une plateforme pour vous permettre de créer des applications vidéo intelligentes qui peuvent s’étendre à la fois aux infrastructures de périphérie et 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, l’analytique vidéo et vidéo, sur les services Azure à la périphérie ou dans le cloud. Il est conçu pour être une plateforme extensible, 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é entraînés avec vos propres données à l’aide du Machine Learning open source ou d’Azure Machine Learning.

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

| Documentation produitMéthodes directes | Pipelines | | Code sourceÉchantillons

Prise en main

Il s’agit d’un Kit de développement logiciel (SDK) de modèles uniquement. Toutes les opérations clientes sont effectuées à l’aide des SDK Microsoft Azure IoT. Ce Kit de développement logiciel (SDK) fournit des modèles que vous pouvez utiliser pour interagir avec les kits SDK Azure IoT.

Authentifier le client

Le client provient du Kit de développement logiciel (SDK) Azure IoT. Vous devez obtenir une chaîne de connexion d’appareil IoT pour authentifier le Kit de développement logiciel (SDK) Azure IoT. Pour plus d’informations, consultez : https://github.com/Azure/azure-iot-sdk-csharp.

string connectionString = System.Environment.GetEnvironmentVariable("iothub_connectionstring", EnvironmentVariableTarget.User);
var serviceClient = ServiceClient.CreateFromConnectionString(connectionString);

Installer le package

Installez la bibliothèque de client Video Analyzer Edge pour .NET avec NuGet :

dotnet add package Azure.Media.VideoAnalyzer.Edge --prerelease

Installez le sdk Azure IoT Hub pour .NET avec NuGet :

dotnet add package Microsoft.Azure.Devices

Prérequis

  • Vous avez besoin d’un abonnement Azure actif et d’une chaîne de connexion d’appareil IoT pour utiliser ce package.

  • Vous devez utiliser la version du Kit de développement logiciel (SDK) qui correspond à la version du module Video Analyzer Edge que vous utilisez.

    Kit SDK Module de périphérie Video Analyzer
    1.0.0-beta.5 1,1
    1.0.0-beta.4 1.0
    1.0.0-beta.3 1.0
    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

Consultez exemples de code de démarrage.

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 en utilisant des espaces réservés comme valeurs pour eux. 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.

CloudToDeviceMethod

fait CloudToDeviceMethod partie du SDk azure-iot-hub. Cette méthode vous permet de communiquer des notifications unidirectionnelles à un appareil dans votre hub IoT. Dans notre cas, nous voulons communiquer différentes méthodes telles que PipelineTopologySetRequest et PipelineTopologyGetRequest. Pour utiliser, CloudToDeviceMethod vous devez passer un paramètre : MethodName puis définir la charge utile JSON de cette méthode.

Le paramètre MethodName est le nom de la demande que vous envoyez. Veillez à utiliser la propriété prédéfinie MethodName de chaque méthode. Par exemple : PipelineTopologySetRequest.MethodName.

Pour définir la charge utile Json de la méthode cloud, utilisez la fonction de la méthode de requête de GetPayloadAsJson() pipeline. Par exemple : directCloudMethod.SetPayloadJson(PipelineTopologySetRequest.GetPayloadAsJson())

Sécurité des threads

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

Concepts supplémentaires

Options | du client Accès à la réponse | Opérations | de longue duréeGestion des défaillances | Diagnostics | Moqueur | Durée de vie du client

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.

Définir des paramètres

pipelineTopologyProperties.Parameters.Add(new ParameterDeclaration("rtspUserName", ParameterType.String)
{
    Description = "rtsp source user name.",
    Default = "exampleUserName"
});
pipelineTopologyProperties.Parameters.Add(new ParameterDeclaration("rtspPassword", ParameterType.SecretString)
{
    Description = "rtsp source password.",
    Default = "examplePassword"
});
pipelineTopologyProperties.Parameters.Add(new ParameterDeclaration("rtspUrl", ParameterType.String)
{
    Description = "rtsp Url"
});

Définir une source

pipelineTopologyProps.Sources.Add(new RtspSource("rtspSource", new UnsecuredEndpoint("${rtspUrl}")
{
    Credentials = new UsernamePasswordCredentials("${rtspUserName}", "${rtspPassword}")
})
);

Définir un récepteur

var nodeInput = new List<NodeInput>
{
    new NodeInput("rtspSource")
};
pipelineTopologyProps.Sinks.Add(new VideoSink("videoSink", nodeInput, "video", "/var/lib/videoanalyzer/tmp/", "1024"));

Définir les propriétés de la topologie et créer une topologie

var pipelineTopologyProps = new PipelineTopologyProperties
{
    Description = "Continuous video recording to a Video Analyzer video",
};
SetParameters(pipelineTopologyProps);
SetSources(pipelineTopologyProps);
SetSinks(pipelineTopologyProps);
return new PipelineTopology("ContinuousRecording")
{
    Properties = pipelineTopologyProps
};

Création d’un pipeline en direct

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

var livePipelineProps = new LivePipelineProperties
{
    Description = "Sample description",
    TopologyName = topologyName,
};

livePipelineProps.Parameters.Add(new ParameterDefinition("rtspUrl", "rtsp://sample.com"));

return new LivePipeline("livePIpeline")
{
    Properties = livePipelineProps
};

Appel d’une méthode directe

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

var setPipelineTopRequest = new PipelineTopologySetRequest(pipelineTopology);

var directMethod = new CloudToDeviceMethod(setPipelineTopRequest.MethodName);
directMethod.SetPayloadJson(setPipelineTopRequest.GetPayloadAsJson());

var setPipelineTopResponse = await _serviceClient.InvokeDeviceMethodAsync(_deviceId, _moduleId, directMethod);

Pour essayer différentes topologies de pipeline avec le Kit de développement logiciel (SDK), consultez les exemples officiels.

Dépannage

  • Lors de l’envoi d’une demande de méthode à l’aide du IoT Hub n’oubliez pas de CloudToDeviceMethod taper directement le nom de la demande de méthode. Utilisez à la place MethodRequestName.MethodName

Étapes suivantes

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, 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.

Quand vous envoyez une demande de tirage (pull request), un bot CLA détermine automatiquement si vous devez fournir un contrat CLA et agrémenter la demande de tirage de façon appropriée (par exemple, avec une étiquette ou un commentaire). Suivez simplement les instructions fournies par le bot. Vous ne devez effectuer cette opération qu’une seule fois sur tous les dépôts utilisant notre contrat CLA.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d'informations, consultez la FAQ du Code de conduite ou contactez opencode@microsoft.com pour toute question ou commentaire supplémentaire.

Impressions