Partilhar via


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 correrpip 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, payloadenvia 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.