Udostępnij za pośrednictwem


Biblioteka klienta usługi Azure Video Analyzer Edge dla języka Python — wersja 1.0.0b4

Przestarzałe. Przechodzimy na emeryturę usługi Azure Video Analyzer w wersji zapoznawczej. Zaleca się przeniesienie aplikacji poza usługę Video Analyzer do 01 grudnia 2022 r. Ten zestaw SDK nie jest już obsługiwany.

Azure Video Analyzer to usługa Azure Applied AI Service , która udostępnia platformę do tworzenia inteligentnych aplikacji wideo, które mogą obejmować zarówno infrastrukturę brzegową, jak i chmurową. Platforma oferuje możliwość przechwytywania, rejestrowania i analizowania wideo na żywo oraz publikowania wyników, wideo i analizy wideo, do usług platformy Azure na brzegu lub w chmurze. Jest to platforma rozszerzalna, umożliwiająca łączenie różnych modułów brzegowych wideo, takich jak moduły usług Cognitive Services, lub niestandardowe moduły wnioskowania, które zostały wytrenowane przy użyciu własnych danych przy użyciu uczenia maszynowego typu open source lub usługi Azure Machine Learning.

Użyj biblioteki klienta usługi Video Analyzer Edge, aby:

Pakiet (PyPI) | Dokumentacja | produktu Metody | bezpośrednie Rurociągów | Kod | źródłowy Próbki

Wprowadzenie

Instalowanie pakietu

Zainstaluj bibliotekę klienta usługi Video Analyzer Edge dla języka Python przy użyciu narzędzia pip:

pip install azure-media-videoanalyzer-edge

Wymagania wstępne

  • Do korzystania z tego pakietu wymagany jest język Python w wersji 2.7 lub 3.6 lub nowszej.

  • Do korzystania z tego pakietu potrzebna jest aktywna subskrypcja platformy Azure i parametry połączenia urządzenia IoT.

  • Aby korzystać z Azure IoT Hub, należy uruchomić poleceniepip install azure-iot-hub

  • Należy użyć wersji zestawu SDK odpowiadającej wersji używanego modułu usługi Video Analyzer Edge.

    SDK Moduł krawędzi analizatora wideo
    1.0.0b3 1.1
    1.0.0b2 1.0
    1.0.0b1 1.0

Tworzenie topologii potoku i wykonywanie żądań

Odwiedź stronę Przykłady kodu początkowego.

Kluczowe pojęcia

Topologia potoku a potok na żywo

Topologia potoku to strategia lub szablon do tworzenia potoków na żywo. Definiuje parametry potoku przy użyciu symboli zastępczych jako wartości dla nich. Potok na żywo odwołuje się do topologii potoku i określa parametry. Dzięki temu można mieć wiele potoków na żywo odwołujące się do tej samej topologii, ale z różnymi wartościami parametrów. Aby uzyskać więcej informacji, odwiedź stronę Topologie potoków i potoki na żywo.

CloudToDeviceMethod

Element CloudToDeviceMethod jest częścią zestawu SDk azure-iot-hub. Ta metoda umożliwia komunikację jednokierunkową powiadomienia z urządzeniem w centrum IoT. W naszym przypadku chcemy komunikować się z różnymi metodami bezpośrednimi, takimi jak PipelineTopologySetRequest i PipelineTopologyGetRequest. Aby użyć CloudToDeviceMethod polecenia, należy przekazać dwa parametry: method_name i payload.

Pierwszy parametr , method_nameto nazwa wysyłanego żądania metody bezpośredniej. Upewnij się, że używasz wstępnie zdefiniowanej method_name właściwości każdej metody. Na przykład PipelineTopologySetRequest.method_name.

Drugi parametr payload, wysyła całą serializacji żądania topologii potoku. Na przykład PipelineTopologySetRequest.serialize()

Przykłady

Tworzenie topologii potoku

Aby utworzyć topologię potoku, należy zdefiniować źródła i ujścia.

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

Tworzenie potoku na żywo

Aby utworzyć potok na żywo, musisz mieć istniejącą topologię potoku.

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)

Wywoływanie metody bezpośredniej

Aby wywołać metodę bezpośrednią na urządzeniu, należy najpierw zdefiniować żądanie przy użyciu zestawu SDK usługi Video Analyzer Edge, a następnie wysłać to żądanie metody przy użyciu zestawu SDK CloudToDeviceMethodIoT .

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)

Aby wypróbować różne topologie potoku przy użyciu zestawu SDK, zobacz oficjalne przykłady.

Rozwiązywanie problemów

  • Podczas wysyłania żądania metody przy użyciu IoT Hub pamiętaj, CloudToDeviceMethod aby nie wpisywać bezpośrednio nazwy żądania metody. W zamian należy użyć argumentu [MethodRequestName.method_name]
  • Pamiętaj, aby serializować całe żądanie metody przed przekazaniem go do CloudToDeviceMethod

Następne kroki

Współtworzenie

W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę https://cla.microsoft.com.

Jeśli wystąpią jakiekolwiek problemy, otwórz problem w witrynie GitHub.

Po przesłaniu żądania ściągnięcia robot CLA automatycznie określi, czy musisz przekazać umowę CLA, i doda odpowiednie informacje do tego żądania (na przykład etykietę czy komentarz). Po prostu postępuj zgodnie z instrukcjami robota. Wystarczy zrobić to raz dla wszystkich repozytoriów, w przypadku których jest używana nasza umowa CLA.

W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz artykuł Code of Conduct FAQ (Często zadawane pytania dotyczące kodeksu postępowania). Jeśli będziesz mieć jeszcze jakieś pytania lub komentarze, wyślij wiadomość e-mail na adres opencode@microsoft.com.