Compartilhar via


Deprecado. Biblioteca de clientes do Analisador de Vídeo do Azure Edge para JavaScript

Deprecado. Estamos desativando o serviço de visualização do Analisador de Vídeo do Azure, você é aconselhado a fazer a transição de seus aplicativos para fora 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][machine learning].

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

  • Simplificar as interações com os SDKs de IoT do Microsoft Azure
  • Construir programaticamente topologias de pipeline e pipelines dinâmicos

Links de chave:

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 Azuree uma cadeia de conexão de dispositivo IoT para usar esse pacote.
  • Para interagir com o Hub IoT do Azure, você precisará executar npm 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.
SDK 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 o Exemplos para obter o 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

Um de 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 ao vivo faz referência a uma topologia de pipeline e especifica os parâmetros. Dessa forma, você pode ter vários pipelines dinâmicos fazendo referência à 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 ao vivo, 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 no Edge e, em seguida, enviar essa solicitação de método usando o CloudToDeviceMethoddo SDK do IoT.

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
});

Solucionando problemas

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

Próximas etapas

  • exemplos de
  • do SDK do Dispositivo IoT do Azure
  • do SDK do Serviço IoTHub do Azure

Contribuindo

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

Se você encontrar problemas, abra um problema em nosso github.

Ao enviar uma solicitação de pull, um CLA-bot determinará automaticamente se você precisa fornecer um CLA e decorar a PR adequadamente (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 usando nosso CLA.

Este projeto adotou oCódigo de Conduta de Software Livre da Microsoft. Para obter mais informações, consulte as perguntas frequentes sobre o Código de Conduta ou entre em contato com opencode@microsoft.com com perguntas ou comentários adicionais.