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:
- Upraszczanie interakcji z zestawami SDK usługi Microsoft Azure IoT
- Programowe konstruowanie topologii potoków i potoków na żywo
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ć polecenie
pip 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_name
to 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 CloudToDeviceMethod
IoT .
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.
Azure SDK for Python