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 :
- Simplifier les interactions avec les Kits de développement logiciel (SDK) Microsoft Azure IoT
- Construire par programmation des topologies de pipeline et des pipelines en direct
| 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 CloudToDeviceMethod
dé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 placeMethodRequestName.MethodName
Étapes suivantes
- Exemples
- Kit de développement logiciel (SDK) d’appareil Azure IoT
- Kit de développement logiciel (SDK) azure IoTHub Service
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.
Azure SDK for .NET