Share via


Azure Video Analyzer Edge-klientbibliotek för Python – version 1.0.0b4

Inaktuellt. Vi drar tillbaka förhandsversionstjänsten för Azure Video Analyzer. Du rekommenderas att flytta dina program från Video Analyzer senast den 1 december 2022. Denna SDK underhålls inte längre.

Azure Video Analyzer är en Azure Applied AI-tjänst som tillhandahåller en plattform där du kan skapa intelligenta videoprogram som kan sträcka sig över både gräns- och molninfrastrukturer. Plattformen erbjuder möjligheten att samla in, spela in och analysera livevideo tillsammans med att publicera resultat, video- och videoanalyser till Azure-tjänster vid gränsen eller i molnet. Den är utformad för att vara en utökningsbar plattform som gör att du kan ansluta olika videoinferensmoduler som Cognitive Services-moduler eller anpassade slutsatsdragningsmoduler som har tränats med dina egna data med antingen maskininlärning med öppen källkod eller Azure Machine Learning.

Använd klientbiblioteket för Video Analyzer Edge för att:

Paket (PyPI) | Produktdokumentation | Direktmetoder | Rörledningar | | Källkod Prover

Komma igång

Installera paketet

Installera Video Analyzer Edge-klientbiblioteket för Python med pip:

pip install azure-media-videoanalyzer-edge

Förutsättningar

  • Python 2.7 eller 3.6 eller senare krävs för att använda det här paketet.

  • Du behöver en aktiv Azure-prenumeration och en IoT-enhetsanslutningssträng för att använda det här paketet.

  • Om du vill interagera med Azure IoT Hub måste du körapip install azure-iot-hub

  • Du måste använda den version av SDK som motsvarar den version av Video Analyzer Edge-modulen som du använder.

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

Skapa en pipelinetopologi och göra begäranden

Gå till exempel för startkod.

Viktiga begrepp

Pipelinetopologi jämfört med live-pipeline

En pipelinetopologi är en skiss eller mall för att skapa live-pipelines. Den definierar parametrarna för pipelinen med platshållare som värden för dem. En live-pipeline refererar till en pipelinetopologi och anger parametrarna. På så sätt kan du ha flera live-pipelines som refererar till samma topologi men med olika värden för parametrar. Mer information finns i pipelinetopologier och live-pipelines.

CloudToDeviceMethod

CloudToDeviceMethod är en del av SDK:t azure-iot-hub. Med den här metoden kan du kommunicera envägsmeddelanden till en enhet i din IoT-hubb. I vårt fall vill vi kommunicera olika direkta metoder som PipelineTopologySetRequest och PipelineTopologyGetRequest. Om du vill använda CloudToDeviceMethod måste du skicka in två parametrar: method_name och payload.

Den första parametern, method_name, är namnet på den direkta metodbegäran som du skickar. Se till att använda varje metods fördefinierade method_name egenskap. Till exempel PipelineTopologySetRequest.method_name.

Den andra parametern, payload, skickar hela serialiseringen av pipelinens topologibegäran. Till exempel PipelineTopologySetRequest.serialize()

Exempel

Skapa en pipelinetopologi

Om du vill skapa en pipelinetopologi måste du definiera källor och mottagare.

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

Skapa en live-pipeline

Om du vill skapa en live-pipeline måste du ha en befintlig pipelinetopologi.

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)

Anropa en direktmetod

Om du vill anropa en direktmetod på enheten måste du först definiera begäran med hjälp av Video Analyzer Edge SDK och sedan skicka den metodbegäran med hjälp av IoT SDK:ns 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)

Om du vill prova olika pipelinetopologier med SDK:et kan du läsa de officiella exemplen.

Felsökning

  • När du skickar en metodbegäran med hjälp av IoT Hub ska CloudToDeviceMethod du komma ihåg att inte skriva namnet på metodbegäran direkt. Använd [MethodRequestName.method_name] i stället
  • Se till att serialisera hela metodbegäran innan du skickar den till CloudToDeviceMethod

Nästa steg

Bidra

Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns på https://cla.microsoft.com.

Om du stöter på problem kan du öppna ett ärende på vår Github.

När du skickar en pull-förfrågan avgör en CLA-robot automatiskt om du måste tillhandahålla ett licensavtal för bidrag med lämplig PR (t.ex. etikett eller kommentar). Följ bara robotens anvisningar. Du behöver bara göra detta en gång för alla repor som använder vårt licensavtal för bidrag.

Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Du hittar mer information i Vanliga frågor om uppförandekod eller kontakta opencode@microsoft.com för ytterligare frågor eller kommentarer.