Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 , der eine Plattform zum Erstellen intelligenter Videoanwendungen bietet, 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 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
Paket (PyPI) | Produktdokumentation | Direkte Methoden | Pipelines | Quellcode | Proben
Erste Schritte
Installieren des Pakets
Installieren Sie die Video Analyzer Edge-Clientbibliothek für Python mit pip:
pip install azure-media-videoanalyzer-edge
Voraussetzungen
Für die Verwendung dieses Pakets ist Python 2.7 bzw. 3.6 oder höher erforderlich.
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ühren
pip install azure-iot-hub
Sie müssen die Version des SDK verwenden, die der Version des verwendeten Video Analyzer Edge-Moduls entspricht.
SDK Video Analyzer-Edgemodul 1.0.0b3 1.1 1.0.0b2 1.0 1.0.0b1 1.0
Erstellen einer Pipelinetopologie und Stellen von Anforderungen
Besuchen Sie die Beispiele für Startcode.
Wichtige Begriffe
Pipelinetopologie im Vergleich zur Livepipeline
Eine Pipelinetopologie ist eine Blaupause oder Vorlage zum Erstellen 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.
CloudToDeviceMethod
Ist CloudToDeviceMethod
Teil des azure-iot-hub-SDk. Mit dieser Methode können Sie One-Way-Benachrichtigungen an ein Gerät in Ihrem IoT Hub kommunizieren. In unserem Fall möchten wir verschiedene direkte Methoden wie PipelineTopologySetRequest
und PipelineTopologyGetRequest
kommunizieren. Zum Verwenden CloudToDeviceMethod
müssen Sie zwei Parameter übergeben: method_name
und payload
.
Der erste Parameter , method_name
ist der Name der direkten Methodenanforderung, die Sie senden. Stellen Sie sicher, dass Sie die vordefinierte method_name
Eigenschaft jeder Methode verwenden. Beispiel: PipelineTopologySetRequest.method_name
.
Der zweite Parameter sendet payload
die gesamte Serialisierung der Pipelinetopologieanforderung. Zum Beispiel, PipelineTopologySetRequest.serialize()
Beispiele
Erstellen einer Pipelinetopologie
Zum Erstellen einer Pipelinetopologie müssen Sie Quellen und Senken definieren.
#Parameters
user_name_param = ParameterDeclaration(name="rtspUserName",type="String",default="testusername")
password_param = ParameterDeclaration(name="rtspPassword",type="SecretString",default="testpassword")
url_param = ParameterDeclaration(name="rtspUrl",type="String",default="rtsp://www.sample.com")
#Source and Sink
source = RtspSource(name="rtspSource", endpoint=UnsecuredEndpoint(url="${rtspUrl}",credentials=UsernamePasswordCredentials(username="${rtspUserName}",password="${rtspPassword}")))
node = NodeInput(node_name="rtspSource")
sink = VideoSink(name="videoSink", inputs=[node], video_name="video", local_media_cache_path="/var/lib/videoanalyzer/tmp/", local_media_cache_maximum_size_mi_b="1024");
pipeline_topology_properties = PipelineTopologyProperties()
pipeline_topology_properties.parameters = [user_name_param, password_param, url_param]
pipeline_topology_properties.sources = [source]
pipeline_topology_properties.sinks = [sink]
pipeline_topology = PipelineTopology(name=pipeline_topology_name,properties=pipeline_topology_properties)
Erstellen einer Livepipeline
Zum Erstellen einer Livepipeline benötigen Sie eine vorhandene Pipelinetopologie.
url_param = ParameterDefinition(name="rtspUrl", value=pipeline_url)
pass_param = ParameterDefinition(name="rtspPassword", value="secret_password")
live_pipeline_properties = LivePipelineProperties(description="Sample pipeline description", topology_name=pipeline_topology_name, parameters=[url_param])
live_pipeline = LivePipeline(name=live_pipeline_name, properties=live_pipeline_properties)
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 CloudToDeviceMethod
senden.
set_method_request = PipelineTopologySetRequest(pipeline_topology=pipeline_topology)
direct_method = CloudToDeviceMethod(method_name=set_method_request.method_name, payload=set_method_request.serialize())
registry_manager = IoTHubRegistryManager(connection_string)
registry_manager.invoke_device_module_method(device_id, module_d, direct_method)
Informationen zum Testen verschiedener Pipelinetopologien mit dem SDK finden Sie in den offiziellen Beispielen.
Problembehandlung
- Denken Sie beim Senden einer Methodenanforderung mithilfe der IoT Hub
CloudToDeviceMethod
daran, den Namen der Methodenanforderung nicht direkt einzugeben. Verwenden Sie stattdessen[MethodRequestName.method_name]
. - Stellen Sie sicher, dass Sie die gesamte Methodenanforderung serialisieren, bevor Sie sie an übergeben.
CloudToDeviceMethod
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.
Azure SDK for Python