Udostępnij za pośrednictwem


Przestarzałe. Biblioteka klienta usługi Azure Video Analyzer Edge dla języka JavaScript

Przestarzałe. Wycofaliśmy usługę Azure Video Analyzer w wersji zapoznawczej. Zaleca się przeniesienie aplikacji poza usługę Video Analyzer do 01 grudnia 2022 r. Ten zestaw SDK nie jest już obsługiwany.

Azure Video Analyzer to usługa [Azure Applied AI Service][applied-ai-service], która zapewnia platformę do tworzenia inteligentnych aplikacji wideo, które mogą obejmować zarówno infrastrukturę brzegową, jak i chmurową. Platforma oferuje możliwość przechwytywania, rejestrowania i analizowania wideo na żywo wraz z publikowaniem wyników, analiz wideo i wideo, do usług platformy Azure na urządzeniach brzegowych lub w chmurze. Jest ona przeznaczona do rozszerzenia platformy, umożliwiając łączenie różnych modułów brzegowych z wnioskowaniem wideo, takich jak moduły usług Cognitive Services, lub niestandardowe moduły wnioskowania, które zostały wytrenowane przy użyciu własnych danych przy użyciu uczenia maszynowego typu open source lub [Azure Machine Learning][uczenie maszynowe].

Użyj biblioteki klienta usługi Video Analyzer Edge, aby:

  • Upraszczanie interakcji z zestawami SDK usługi Microsoft Azure IoT
  • Programowe konstruowanie topologii potoków i potoków na żywo

Kluczowe linki:

Wprowadzenie

Instalowanie pakietu

Zainstaluj bibliotekę klienta usługi Video Analyzer dla języka Typescript za pomocą narzędzia npm:

npm install @azure/video-analyzer-edge

Warunki wstępne

  • TypeScript v3.6.
  • Do korzystania z tego pakietu potrzebne są aktywne subskrypcji platformy Azurei parametry połączenia urządzenia IoT.
  • Aby korzystać z usługi Azure IoT Hub, musisz uruchomić npm install azure-iothub
  • Należy użyć wersji zestawu SDK odpowiadającej wersji używanego modułu brzegowego usługi Video Analyzer.
Zestaw SDK Moduł brzegowy usługi Video Analyzer
1.0.0-beta.3 1.1
1.0.0-beta.2 1.0
1.0.0-beta.1 1.0

Tworzenie topologii potoku i tworzenie żądań

Odwiedź Przykłady kodu początkowego.

Gwarantujemy, że wszystkie metody wystąpienia klienta są bezpieczne wątkowo i niezależne od siebie (wytyczne). Dzięki temu zalecenie ponownego obsługi wystąpień klienta jest zawsze bezpieczne, nawet w wątkach.

Kluczowe pojęcia

Topologia potoku a potok na żywo

Topologia potoku to strategia lub szablon do tworzenia wystąpień potoków na żywo. Definiuje parametry potoku przy użyciu symboli zastępczych jako wartości dla nich. Potok na żywo odwołuje się do topologii potoku i określa parametry. Dzięki temu można mieć wiele potoków na żywo odwołujące się do tej samej topologii, ale z różnymi wartościami parametrów. Aby uzyskać więcej informacji, odwiedź topologie potoków i potoków na żywo.

Przykłady

Tworzenie topologii potoku

Aby utworzyć topologię potoku, należy zdefiniować źródła i ujścia.

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

Tworzenie potoku na żywo

Aby utworzyć wystąpienie potoku na żywo, musisz mieć istniejącą topologię potoku.

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

Wywoływanie metody bezpośredniej

Aby wywołać metodę bezpośrednią na urządzeniu, należy najpierw zdefiniować żądanie przy użyciu zestawu SDK usługi Video Analyzer Edge, a następnie wysłać to żądanie metody przy użyciu CloudToDeviceMethodzestawu SDK 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
});

Rozwiązywanie problemów

  • Podczas tworzenia żądania metody pamiętaj, aby sprawdzić pisownię nazwy metody

Następne kroki

Przyczyniając się

Ten projekt z zadowoleniem przyjmuje wkład i sugestie. Większość kontrybucja wymaga zgody na umowę licencyjną współautora (CLA), deklarując, że masz prawo, a w rzeczywistości przyznaj nam prawa do korzystania z twojego wkładu. Aby uzyskać szczegółowe informacje, odwiedź stronę https://cla.microsoft.com.

Jeśli wystąpią jakiekolwiek problemy, otwórz problem w witrynie Github.

Po przesłaniu żądania ściągnięcia bot CLA automatycznie określi, czy musisz podać cla i odpowiednio ozdobić żądanie ściągnięcia (np. etykieta, komentarz). Po prostu postępuj zgodnie z instrukcjami dostarczonymi przez bota. Należy to zrobić tylko raz we wszystkich repozytoriach przy użyciu naszego CLA.

Ten projekt przyjął kodeks postępowania firmy Microsoft typu open source. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com z dodatkowymi pytaniami lub komentarzami.