Obsolescente. Biblioteca cliente de Azure Video Analyzer Edge para JavaScript
Obsolescente. Estamos retirando el servicio de versión preliminar de Azure Video Analyzer, se recomienda realizar la transición de las aplicaciones fuera de Video Analyzer antes del 1 de diciembre de 2022. Este SDK ya no se mantiene.
Azure Video Analyzer es un [Servicio de IA aplicado de Azure][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 el aprendizaje automático de código abierto o [Azure Machine Learning][machine-learning].
Use la biblioteca cliente para Video Analyzer Edge para:
- Simplificación de las interacciones con los SDK de Microsoft Azure IoT de
- Construcción mediante programación de topologías de canalización y canalizaciones dinámicas
Vínculos clave:
- documentación del producto de
- métodos directos
- código fuente
Empezar
Instalación del 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 activay una cadena de conexión de dispositivo IoT para usar este paquete.
- Para interactuar con Azure IoT Hub, deberá ejecutar
npm install azure-iothub
- Deberá 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 el Ejemplos para obtener código de inicio.
Garantizamos que todos los métodos de instancia de cliente sean seguros para subprocesos e independientes entre sí (guía). 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 dinámica
Una topología de canalización de es un plano técnico o plantilla para crear instancias de canalizaciones dinámicas. 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 en directo que hacen referencia a la misma topología, pero con valores diferentes para los parámetros. Para obtener 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 directo
Para crear una instancia de canalización activa, 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, a continuación, enviar esa solicitud de método mediante la CloudToDeviceMethod
del SDK de 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
});
Solución de problemas
- Al crear una solicitud de método, recuerde comprobar la ortografía del nombre del método.
Pasos siguientes
- ejemplos de
- del SDK de dispositivo IoT de Azure
- sdk del servicio Azure IoTHub
Contribuyendo
Este proyecto da la bienvenida a las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia de colaborador (CLA) declarando que tiene derecho a, y en realidad, concedanos los derechos para usar su contribución. Para obtener más información, visite https://cla.microsoft.com.
Si tiene algún problema, abra un problema en nuestra github.
Al enviar una solicitud de incorporación de cambios, un bot CLA determinará automáticamente si necesita proporcionar un CLA y decorar la solicitud de incorporación de cambios de forma adecuada (por ejemplo, etiqueta, comentario). Solo tiene que seguir las instrucciones proporcionadas por el bot. Solo tendrá que hacerlo una vez en todos los repositorios mediante nuestro CLA.
Este proyecto ha adoptado el código abierto de conducta de Microsoft. Para obtener más información, consulte las preguntas más frecuentes sobre el código de conducta o póngase en contacto con opencode@microsoft.com con preguntas o comentarios adicionales.
Azure SDK for JavaScript