Delen via


Azure Video Analyzer Edge-clientbibliotheek voor Python - versie 1.0.0b4

Afgeschaft. De preview-service van Azure Video Analyzer wordt buiten gebruik gesteld. U wordt geadviseerd om uw toepassingen uiterlijk 1 december 2022 van Video Analyzer over te zetten. Deze SDK wordt niet meer onderhouden.

Azure Video Analyzer is een Azure Applied AI-service die een platform biedt voor het bouwen van intelligente videotoepassingen die zowel edge- als cloudinfrastructuren kunnen omvatten. Het platform biedt de mogelijkheid om live video vast te leggen, op te nemen en te analyseren, samen met het publiceren van de resultaten, video- en videoanalyses naar Azure-services aan de rand of in de cloud. Het is ontworpen als een uitbreidbaar platform, waarmee u verschillende edge-modules voor videodeductie kunt verbinden, zoals Cognitive Services-modules of aangepaste deductiemodules die zijn getraind met uw eigen gegevens met behulp van opensource-machine learning of Azure Machine Learning.

Gebruik de clientbibliotheek voor Video Analyzer Edge voor het volgende:

Pakket (PyPI) | Productdocumentatie | Directe methoden | Pijpleidingen | Broncode | Monsters

Aan de slag

Het pakket installeren

Installeer de Video Analyzer Edge-clientbibliotheek voor Python met pip:

pip install azure-media-videoanalyzer-edge

Vereisten

  • Python 2.7 of 3.6 of hoger is vereist om dit pakket te gebruiken.

  • U hebt een actief Azure-abonnement en een IoT-apparaat connection string nodig om dit pakket te kunnen gebruiken.

  • Als u wilt communiceren met Azure IoT Hub moet u uitvoerenpip install azure-iot-hub

  • U moet de versie van de SDK gebruiken die overeenkomt met de versie van de Video Analyzer Edge-module die u gebruikt.

    SDK Video Analyzer Edge-module
    1.0.0b3 1.1
    1.0.0b2 1.0
    1.0.0b1 1.0

Een pijplijntopologie maken en aanvragen indienen

Ga naar de voorbeelden voor starterscode.

Belangrijkste concepten

Pijplijntopologie versus livepijplijn

Een pijplijntopologie is een blauwdruk of sjabloon voor het maken van live-pijplijnen. Hiermee worden de parameters van de pijplijn gedefinieerd met behulp van tijdelijke aanduidingen als waarden voor de pijplijn. Een live-pijplijn verwijst naar een pijplijntopologie en geeft de parameters op. Op deze manier kunt u meerdere live-pijplijnen hebben die verwijzen naar dezelfde topologie, maar met verschillende waarden voor parameters. Ga voor meer informatie naar pijplijntopologieën en live-pijplijnen.

CloudToDeviceMethod

De CloudToDeviceMethod maakt deel uit van de azure-iot-hub SDk. Met deze methode kunt u meldingen in één richting communiceren met een apparaat in uw IoT-hub. In ons geval willen we verschillende directe methoden communiceren, zoals PipelineTopologySetRequest en PipelineTopologyGetRequest. Als u wilt gebruiken CloudToDeviceMethod , moet u twee parameters doorgeven: method_name en payload.

De eerste parameter, method_name, is de naam van de aanvraag voor de directe methode die u verzendt. Zorg ervoor dat u de vooraf method_name gedefinieerde eigenschap van elke methode gebruikt. Bijvoorbeeld PipelineTopologySetRequest.method_name.

De tweede parameter, , payloadverzendt de volledige serialisatie van de aanvraag voor de pijplijntopologie. Bijvoorbeeld: PipelineTopologySetRequest.serialize()

Voorbeelden

Een pijplijntopologie maken

Als u een pijplijntopologie wilt maken, moet u bronnen en sinks definiëren.

#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)

Een live-pijplijn maken

Als u een live-pijplijn wilt maken, moet u een bestaande pijplijntopologie hebben.

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)

Een directe methode aanroepen

Als u een directe methode op uw apparaat wilt aanroepen, moet u eerst de aanvraag definiëren met behulp van de Video Analyzer Edge SDK en vervolgens die methodeaanvraag verzenden met behulp van de IoT SDK CloudToDeviceMethod.

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)

Als u verschillende pijplijntopologieën met de SDK wilt proberen, raadpleegt u de officiële voorbeelden.

Problemen oplossen

  • Wanneer u een methodeaanvraag verzendt met behulp van de IoT Hub vergeet niet om de naam van CloudToDeviceMethod de methodeaanvraag rechtstreeks in te voeren. Gebruik in plaats daarvan [MethodRequestName.method_name]
  • Zorg ervoor dat u de hele methodeaanvraag serialiseert voordat u deze doorgeeft aan CloudToDeviceMethod

Volgende stappen

Bijdragen

Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar https://cla.microsoft.com voor meer informatie.

Als u problemen ondervindt, opent u een probleem op onze Github.

Wanneer u een pull-aanvraag indient, wordt met een CLA-bot automatisch bepaald of u een CLA moet verschaffen en wordt de pull-aanvraag dienovereenkomstig opgemaakt (bijvoorbeeld met een label of commentaar). Volg gewoon de instructies van de bot. U hoeft dit maar eenmaal te doen voor alle repo's waar gebruik wordt gemaakt van onze CLA.

Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Raadpleeg de Veelgestelde vragen over de gedragscode voor meer informatie of neem contact op met opencode@microsoft.com als u meer vragen of opmerkingen hebt.