Biblioteca cliente Azure Video Analyzer Edge para Python - versão 1.0.0b4
Preterido. Estamos a retirar o serviço de pré-visualização do Azure Video Analyzer, é aconselhável fazer a transição das suas aplicações para fora do Video Analyzer até 01 de dezembro de 2022. Este SDK já não é mantido.
O Azure Video Analyzer é um Serviço de IA Aplicado Azure que fornece uma plataforma para construir aplicações de vídeo inteligentes que podem abranger infraestruturas de borda e nuvem. A plataforma oferece a capacidade de capturar, gravar e analisar vídeos ao vivo juntamente com a publicação dos resultados, análises de vídeo e vídeo, aos serviços Azure na borda ou na nuvem. Foi projetado para ser uma plataforma extensível, permitindo-lhe ligar diferentes módulos de borda de inferenização de vídeo, tais como módulos de serviços cognitivos, ou módulos de inferenização personalizados que foram treinados com os seus próprios dados usando aprendizagem automática de código aberto ou Aprendizagem automática Azure.
Utilize a biblioteca do cliente para video analyzer Edge para:
- Simplificar as interações com os SDKs IoT IoT da Microsoft
- Construa programáticamente as topologias de gasodutos e os gasodutos vivos
Pacote (PyPI) | Documentação | do produto Métodos diretos | Gasodutos | Código fonte | Amostras
Introdução
Instale o pacote
Instale a biblioteca de clientes Video Analyzer Edge para Python com pip:
pip install azure-media-videoanalyzer-edge
Pré-requisitos
Python 2.7, ou 3.6 ou mais tarde é obrigado a usar este pacote.
Você precisa de uma subscrição ativa do Azure, e um fio de ligação do dispositivo IoT para usar este pacote.
Para interagir com Hub IoT do Azure terá de correr
pip install azure-iot-hub
Terá de utilizar a versão do SDK que corresponde à versão do módulo Video Analyzer Edge que está a utilizar.
SDK Módulo de borda do analisador de vídeo 1.0.0b3 1.1 1.0.0b2 1.0 1.0.0b1 1.0
Criar uma topologia de pipeline e fazer pedidos
Visite os Exemplos para obter o código inicial.
Conceitos-chave
Pipeline topology vs pipeline live pipeline
Uma topologia de gasoduto é uma planta ou modelo para criar oleodutos vivos. Define os parâmetros do gasoduto utilizando os espaços reservados como valores para eles. Um gasoduto vivo refere-se a uma topologia do gasoduto e especifica os parâmetros. Desta forma é capaz de ter vários oleodutos vivos referenciando a mesma topologia, mas com valores diferentes para parâmetros. Para mais informações visite as topologias do gasoduto e os gasodutos ao vivo.
CloudToDeviceMethod
Faz CloudToDeviceMethod
parte do azure-iot-hub SDk. Este método permite-lhe comunicar notificações de uma forma a um dispositivo no seu hub IoT. No nosso caso, queremos comunicar vários métodos diretos, tais comoPipelineTopologySetRequest
.PipelineTopologyGetRequest
Para utilizar CloudToDeviceMethod
é necessário passar em dois parâmetros: method_name
e payload
.
O primeiro parâmetro, method_name
é o nome do pedido de método direto que está a enviar. Certifique-se de que utiliza a propriedade predefinida method_name
de cada método. Por exemplo, PipelineTopologySetRequest.method_name
.
O segundo parâmetro, payload
envia toda a serialização do pedido de topologia do gasoduto. Por exemplo, PipelineTopologySetRequest.serialize()
Exemplos
Criação de uma topologia de gasodutos
Para criar uma topologia de pipeline é necessário definir fontes e pias.
#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)
Criar um oleoduto ao vivo
Para criar um oleoduto vivo, é necessário ter uma topologia de gasoduto existente.
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)
Invocando um método direto
Para invocar um método direto no seu dispositivo, tem de definir primeiro o pedido utilizando o SDK de borda do analisador de vídeo, em seguida, enviar esse pedido de método utilizando o IoT SDK's 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)
Para experimentar diferentes topologias de gasodutos com o SDK, consulte as Amostras oficiais.
Resolução de problemas
- Ao enviar um pedido de método utilizando o Hub IoT lembre-se de
CloudToDeviceMethod
não digitar o nome do pedido de método diretamente. Utilizar[MethodRequestName.method_name]
, em alternativa - Certifique-se de serializar todo o pedido de método antes de passá-lo para
CloudToDeviceMethod
Passos seguintes
Contribuir
Agradecemos todas as contribuições e sugestões para este projeto. A maioria das contribuições requerem que celebre um Contrato de Licença de Contribuição (CLA) no qual se declare que tem o direito de conceder e que, na verdade, concede-nos os direitos para utilizar a sua contribuição. Para mais detalhes, visite https://cla.microsoft.com.
Se encontrar algum problema, por favor, abra um problema no nosso Github.
Quando submete um pedido Pull, um bot do CLA determina automaticamente se tem de fornecer um CLA e decorar o PR de forma adequada (por exemplo, etiqueta, comentário). Só tem de seguir as instruções fornecidas pelo bot. Apenas terá de fazer isto uma vez em todos os repositórios com o nosso CLA.
Este projeto adotou o Microsoft Open Source Code of Conduct (Código de Conduta do Microsoft Open Source). Para obter mais informações, veja a Code of Conduct FAQ (FAQ do Código de Conduta) ou envie um e-mail para opencode@microsoft.com com quaisquer perguntas ou comentários adicionais.
Azure SDK for Python