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:
- dokumentacja produktu
- Metody bezpośrednie
- kod źródłowy
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 CloudToDeviceMethod
zestawu 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
- przykładów
- zestaw SDK urządzeń usługi Azure IoT
- zestaw SDK usługi Azure IoTHub
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.
Azure SDK for JavaScript