Preterido. Biblioteca de clientes do Analisador de Vídeo do Azure edge para JavaScript

Preterido. Estamos desativando o serviço de visualização do Analisador de Vídeo do Azure. Aconselhamos que você faça a transição de seus aplicativos do Analisador de Vídeo até 01 de dezembro de 2022. Esse SDK não é mais mantido.

O Analisador de Vídeo do Azure é um [Serviço de IA Aplicada do Azure][applied-ai-service] que fornece uma plataforma para você criar aplicativos de vídeo inteligentes que podem abranger infraestruturas de borda e nuvem. A plataforma oferece a capacidade de capturar, gravar e analisar vídeo ao vivo, juntamente com a publicação dos resultados, análise de vídeo e vídeo, nos serviços do Azure na borda ou na nuvem. Ele foi projetado para ser uma plataforma extensível, permitindo que você conecte diferentes módulos de borda de inferência de vídeo, como módulos de serviços cognitivos, ou módulos de inferência personalizados que foram treinados com seus próprios dados usando o aprendizado de máquina de software livre ou [Azure Machine Learning][aprendizado de máquina].

Use a biblioteca de clientes para o Analisador de Vídeo do Edge para:

Links principais:

Introdução

Instalar o pacote

Instale a biblioteca de clientes do Analisador de Vídeo para Typescript com npm:

npm install @azure/video-analyzer-edge

Pré-requisitos

  • TypeScript v3.6.
  • Você precisa de uma assinatura ativa do Azure e de uma cadeia de conexão de dispositivo IoT para usar esse pacote.
  • Para interagir com Hub IoT do Azure você precisará executarnpm install azure-iothub
  • Você precisará usar a versão do SDK que corresponde à versão do módulo de borda do Analisador de Vídeo que você está usando.
. Módulo de borda do Analisador de Vídeo
1.0.0-beta.3 1,1
1.0.0-beta.2 1.0
1.0.0-beta.1 1.0

Criando uma topologia de pipeline e fazendo solicitações

Visite os Exemplos de código inicial.

Garantimos que todos os métodos de instância do cliente sejam thread-safe e independentes uns dos outros (diretriz). Isso garante que a recomendação de reutilize instâncias de cliente seja sempre segura, mesmo entre threads.

Principais conceitos

Topologia de pipeline versus pipeline ao vivo

Uma topologia de pipeline é um blueprint ou modelo para instanciar pipelines dinâmicos. Ele define os parâmetros do pipeline usando espaços reservados como valores para eles. Um pipeline dinâmico faz referência a uma topologia de pipeline e especifica os parâmetros. Dessa forma, você pode ter vários pipelines dinâmicos referenciando a mesma topologia, mas com valores diferentes para parâmetros. Para obter mais informações, visite topologias de pipeline e pipelines dinâmicos.

Exemplos

Criando uma topologia de pipeline

Para criar uma topologia de pipeline, você precisa definir fontes e coletores.

const rtspSource: RtspSource = {
  //Create a source for your pipeline topology
  name: "rtspSource",
  endpoint: {
    url: "${rtspUrl}",
    "@type": "#Microsoft.VideoAnalyzer.UnsecuredEndpoint",
    credentials: {
      username: "${rtspUserName}",
      password: "${rtspPassword}",
      "@type": "#Microsoft.VideoAnalyzer.UsernamePasswordCredentials"
    }
  } as UnsecuredEndpoint,
  "@type": "#Microsoft.VideoAnalyzer.RtspSource"
};

const nodeInput: NodeInput = {
  //Create an input for your sink
  nodeName: "rtspSource"
};

const videoSink: VideoSink = {
  name: "videoSink",
  inputs: [nodeInput],
  videoName: "video",
  localMediaCachePath: "/var/lib/videoanalyzer/tmp/",
  localMediaCacheMaximumSizeMiB: "1024",
  "@type": "#Microsoft.VideoAnalyzer.VideoSink"
};

const pipelineTopology: PipelineTopology = {
  name: "jsTestTopology",
  properties: {
    description: "description for jsTestTopology",
    parameters: [
      { name: "rtspUserName", type: "String", default: "testUsername" },
      { name: "rtspPassword", type: "SecretString", default: "testPassword" },
      { name: "rtspUrl", type: "String" }
    ],
    sources: [rtspSource],
    sinks: [videoSink]
  }
};

Criando um pipeline ao vivo

Para criar uma instância de pipeline dinâmica, você precisa ter uma topologia de pipeline existente.

const livePipeline: LivePipeline = {
  name: "jsLivePipelineTest",
  properties: {
    description: "description",
    topologyName: pipelineTopologyName,
    parameters: [{ name: "rtspUrl", value: "rtsp://sample.com" }]
  }
};

Invocando um método direto

Para invocar um método direto em seu dispositivo, primeiro você precisa definir a solicitação usando o SDK do Analisador de Vídeo do Edge e, em seguida, enviar essa solicitação de método usando o SDK do CloudToDeviceMethodIoT.

import { createRequest } from "@azure/video-analyzer-edge";
import { Client } from "azure-iothub";

const deviceId = process.env.iothub_deviceid;
const moduleId = process.env.iothub_moduleid;
const connectionString = process.env.iothub_connectionstring;
const iotHubClient = Client.fromConnectionString(connectionString); //Connect to your IoT Hub

const pipelineTopologySetRequest = createRequest("pipelineTopologySet", pipelineTopology);
const setPipelineTopResponse = await iotHubClient.invokeDeviceMethod(deviceId, moduleId, {
  methodName: pipelineTopologySetRequest.methodName,
  payload: pipelineTopologySetRequest.payload
});

Solução de problemas

  • Ao criar uma solicitação de método, lembre-se de verificar a ortografia do nome do método

Próximas etapas

Contribuição

Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.microsoft.com.

Se você encontrar algum problema, abra um problema em nosso Github.

Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.

Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para saber mais, confira as Perguntas frequentes sobre o Código de Conduta ou contate o opencode@microsoft.com caso tenha outras dúvidas ou comentários.