Sdílet prostřednictvím


Zastaralé Klientská knihovna Azure Video Analyzer Edge pro JavaScript

Zastaralé Službu Azure Video Analyzer verze Preview vyřazujeme. Doporučujeme, abyste do 1. prosince 2022 převést aplikace z video analyzeru. Tato sada SDK se už neudržuje.

Azure Video Analyzer je [služba Azure Applied AI Service][applied-ai-service], která poskytuje platformu pro vytváření inteligentních videoaplikací, které můžou zahrnovat hraniční i cloudovou infrastrukturu. Tato platforma nabízí možnost zachytávat, zaznamenávat a analyzovat živé video a publikovat výsledky, analýzu videa a videa do služeb Azure na hraničních zařízeních nebo v cloudu. Je navržená jako rozšiřitelná platforma, která umožňuje připojit různé hraniční moduly pro odvozování videí, jako jsou moduly Cognitive Services, nebo vlastní moduly odvozování, které byly vytrénovány s vlastními daty pomocí opensourcového strojového učení nebo [Azure Machine Learning][machine-learning].

Pomocí klientské knihovny pro Video Analyzer Edge můžete:

  • Zjednodušení interakce se sadami Microsoft Azure IoT SDK
  • Vytváření topologií kanálů a živých kanálů prostřednictvím kódu programu

Klíčové odkazy:

Začínáme

Instalace balíčku

Nainstalujte klientskou knihovnu Video Analyzer pro TypeScript pomocí npm:

npm install @azure/video-analyzer-edge

Požadavky

  • TypeScript verze 3.6.
  • K použití tohoto balíčku potřebujete aktivní předplatné Azure a připojovací řetězec zařízení IoT.
  • Pokud chcete pracovat s Azure IoT Hub budete muset spustit příkaz .npm install azure-iothub
  • Budete muset použít verzi sady SDK, která odpovídá verzi modulu Edge Video Analyzer, kterou používáte.
Sada SDK Modul Edge video analyzeru
1.0.0-beta.3 1.1
1.0.0-beta.2 1.0
1.0.0-beta.1 1.0

Vytvoření topologie kanálu a vytváření požadavků

Navštivte prosím příklady počátečního kódu.

Zaručujeme, že všechny metody instance klienta jsou bezpečné pro přístup z více vláken a nezávislé na sobě (pokyny). Tím se zajistí, že doporučení opakovaně používat instance klienta je vždy bezpečné, a to i napříč vlákny.

Klíčové koncepty

Topologie kanálu vs. živý kanál

Topologie kanálu je podrobný plán nebo šablona pro vytváření instancí živých kanálů. Definuje parametry kanálu pomocí zástupných symbolů jako hodnot pro ně. Živý kanál odkazuje na topologii kanálu a určuje parametry. Díky tomu můžete mít několik živých kanálů odkazujících na stejnou topologii, ale s různými hodnotami parametrů. Další informace najdete v tématu Topologie kanálů a živé kanály.

Příklady

Vytvoření topologie kanálu

Pokud chcete vytvořit topologii kanálu, musíte definovat zdroje a jímky.

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

Vytvoření živého kanálu

Pokud chcete vytvořit živou instanci kanálu, musíte mít existující topologii kanálu.

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

Vyvolání přímé metody

Pokud chcete na svém zařízení vyvolat přímou metodu, musíte nejprve definovat požadavek pomocí sady Edge SDK video analyzeru a pak odeslat požadavek této metody pomocí sady IoT SDK CloudToDeviceMethod.

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

Řešení potíží

  • Při vytváření požadavku metody nezapomeňte zkontrolovat pravopis názvu metody.

Další kroky

Přispívání

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete tady: https://cla.microsoft.com

Pokud narazíte na nějaké problémy, otevřete problém na našem GitHubu.

Při odesílání žádosti o přijetí změn robot CLA automaticky určí, jestli je potřeba poskytnout smlouvu CLA, a příslušným způsobem žádost o přijetí změn upraví (např. přidáním jmenovky nebo komentáře). Stačí postupovat podle pokynů robota. Pro všechna úložiště používající naši smlouvu CLA to stačí udělat jenom jednou.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování. V případě jakýchkoli dotazů nebo připomínek kontaktujte opencode@microsoft.com.