Compartir a través de


En desuso. Biblioteca cliente de Azure Video Analyzer Edge para JavaScript

En desuso. Estamos retirando el servicio de versión preliminar de Azure Video Analyzer, se recomienda realizar la transición y retirar las aplicaciones de Video Analyzer antes del 1 de diciembre de 2022. Este SDK ya no se mantiene.

Azure Video Analyzer es un [Azure Applied AI Service][applied-ai-service] que proporciona una plataforma para crear aplicaciones de vídeo inteligentes que pueden abarcar infraestructuras perimetrales y en la nube. La plataforma ofrece la capacidad de capturar, grabar y analizar vídeo en directo junto con la publicación de los resultados, el análisis de vídeo y vídeo, en los servicios de Azure en el perímetro o en la nube. Está diseñado para ser una plataforma extensible, lo que le permite conectar diferentes módulos perimetrales de inferencia de vídeo, como módulos de Cognitive Services, o módulos de inferencia personalizados que se han entrenado con sus propios datos mediante aprendizaje automático de código abierto o [Azure Machine Learning][machine-learning].

Use la biblioteca cliente de Video Analyzer Edge para:

  • Simplificación de las interacciones con los SDK de IoT de Microsoft Azure
  • Construcción mediante programación de topologías de canalización y canalizaciones dinámicas

Vínculos principales:

Introducción

Instalar el paquete

Instale la biblioteca cliente de Video Analyzer para Typescript con npm:

npm install @azure/video-analyzer-edge

Prerrequisitos

  • TypeScript v3.6.
  • Necesita una suscripción de Azure activa y una cadena de conexión de dispositivo IoT para usar este paquete.
  • Para interactuar con Azure IoT Hub deberá ejecutarnpm install azure-iothub
  • Tendrá que usar la versión del SDK que corresponde a la versión del módulo perimetral de Video Analyzer que está usando.
SDK Módulo perimetral de Video Analyzer
1.0.0-beta.3 1.1
1.0.0-beta.2 1.0
1.0.0-beta.1 1.0

Creación de una topología de canalización y realización de solicitudes

Visite los ejemplos para el código de inicio.

Garantizamos que todos los métodos de instancia de cliente son seguros para subprocesos e independientes entre sí (instrucciones). Esto garantiza que la recomendación de reutilizar instancias de cliente siempre es segura, incluso entre subprocesos.

Conceptos clave

Topología de canalización frente a canalización en vivo

Una topología de canalización es un plano técnico o una plantilla para crear instancias de canalizaciones en directo. Define los parámetros de la canalización mediante marcadores de posición como valores para ellos. Una canalización activa hace referencia a una topología de canalización y especifica los parámetros. De este modo, puede tener varias canalizaciones activas que hacen referencia a la misma topología, pero con valores diferentes para los parámetros. Para más información, visite topologías de canalización y canalizaciones en directo.

Ejemplos

Creación de una topología de canalización

Para crear una topología de canalización, debe definir orígenes y receptores.

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

Creación de una canalización en vivo

Para crear una instancia de canalización en vivo, debe tener una topología de canalización existente.

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

Invocar un método directo

Para invocar un método directo en el dispositivo, primero debe definir la solicitud mediante el SDK de Video Analyzer Edge y, después, enviar esa solicitud de método mediante el SDK de 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
});

Solución de problemas

  • Al crear una solicitud de método, recuerde comprobar la ortografía del nombre del método.

Pasos siguientes

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más detalles, visite https://cla.microsoft.com.

Si tiene algún problema, abra un problema en nuestro Github.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para obtener más información, vea las preguntas más frecuentes sobre el código de conducta o póngase en contacto con opencode@microsoft.com si tiene preguntas o comentarios.