Partilhar via


Preterido. Biblioteca de cliente do Azure Video Analyzer Edge para JavaScript

Preterido. Vamos descontinuar 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 do Azure][applied-ai-service] que fornece uma plataforma para criar aplicações de vídeo inteligentes que podem abranger infraestruturas de edge e cloud. A plataforma oferece a capacidade de capturar, gravar e analisar vídeos em direto, juntamente com a publicação dos resultados, análise de vídeo e vídeo, nos serviços do Azure no edge ou na cloud. Foi concebido para ser uma plataforma extensível, permitindo-lhe ligar diferentes módulos edge de inferência de vídeo, como módulos de Serviços Cognitivos ou módulos de inferência personalizados que foram preparados com os seus próprios dados através de machine learning open source ou [Azure Machine Learning][machine-learning].

Utilize a biblioteca de cliente do Video Analyzer Edge para:

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

Ligações principais:

Introdução

Instalar o pacote

Instale a biblioteca de cliente do Video Analyzer para Typescript com npm:

npm install @azure/video-analyzer-edge

Pré-requisitos

  • TypeScript v3.6.
  • Precisa de uma subscrição ativa do Azure e de uma cadeia de ligação de dispositivo IoT para utilizar este pacote.
  • Para interagir com Hub IoT do Azure terá de executarnpm install azure-iothub
  • Terá de utilizar a versão do SDK que corresponde à versão do módulo edge do Video Analyzer que está a utilizar.
SDK Módulo edge do Video Analyzer
1.0.0-beta.3 1.1
1.0.0-beta.2 1.0
1.0.0-beta.1 1.0

Criar uma topologia de pipeline e fazer pedidos

Visite os Exemplos de código inicial.

Garantimos que todos os métodos de instância de cliente são seguros para threads e independentes uns dos outros (orientação). Isto garante que a recomendação de reutilização de instâncias de cliente é sempre segura, mesmo entre threads.

Conceitos-chave

Topologia de pipeline vs pipeline em direto

Uma topologia de pipeline é um esquema ou modelo para instanciar pipelines dinâmicos. Define os parâmetros do pipeline com marcadores de posição como valores para os mesmos. Um pipeline dinâmico faz referência a uma topologia de pipeline e especifica os parâmetros. Desta forma, 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

Criar uma topologia de pipeline

Para criar uma topologia de pipeline, tem de definir origens e sinks.

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

Criar um pipeline dinâmico

Para criar uma instância de pipeline em direto, tem de ter uma topologia de pipeline existente.

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

Invocar um método direto

Para invocar um método direto no seu dispositivo, primeiro tem de definir o pedido com o SDK do Video Analyzer Edge e, em seguida, enviar esse pedido de método com 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
});

Resolução de problemas

  • Ao criar um pedido de método, lembre-se de verificar a ortografia do nome do método

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 tiver problemas, 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.