되지 않는. JavaScript용 Azure Video Analyzer Edge 클라이언트 라이브러리
되지 않는. Azure Video Analyzer 미리 보기 서비스를 사용 중지하고 있으며, 2022년 12월 1일까지 Video Analyzer에서 애플리케이션을 전환하는 것이 좋습니다. 이 SDK는 더 이상 유지 관리되지 않습니다.
Azure Video Analyzer는 에지 및 클라우드 인프라를 모두 포괄할 수 있는 지능형 비디오 애플리케이션을 빌드할 수 있는 플랫폼을 제공하는 [Azure Applied AI Service][applied-ai-service]입니다. 이 플랫폼은 라이브 비디오를 캡처, 녹화 및 분석하고 결과, 비디오 및 비디오 분석을 에지 또는 클라우드의 Azure 서비스에 게시하는 기능을 제공합니다. 확장 가능한 플랫폼으로 설계되어 오픈 소스 기계 학습 또는 [Azure Machine Learning][기계 학습]을 사용하여 사용자 고유의 데이터로 학습된 Cognitive Services 모듈 또는 사용자 지정 추론 모듈과 같은 다양한 비디오 추론 에지 모듈을 연결할 수 있습니다.
Video Analyzer Edge용 클라이언트 라이브러리를 사용하여 다음을 수행합니다.
- Microsoft Azure IoT SDK와의 상호 작용 간소화
- 프로그래밍 방식으로 파이프라인 토폴로지 및 라이브 파이프라인 구성
키 링크:
- 제품 설명서
- 직접 메서드
- 소스 코드
시작
패키지 설치
npm을 사용하여 Typescript용 Video Analyzer 클라이언트 라이브러리를 설치합니다.
npm install @azure/video-analyzer-edge
필수 구성 요소
- TypeScript v3.6.
- 이 패키지를 사용하려면 활성 Azure 구독및 IoT 디바이스 연결 문자열이 필요합니다.
- Azure IoT Hub와 상호 작용하려면
npm install azure-iothub
실행해야 합니다. - 사용 중인 Video Analyzer 에지 모듈의 버전에 해당하는 SDK 버전을 사용해야 합니다.
SDK | Video Analyzer 에지 모듈 |
---|---|
1.0.0-beta.3 | 1.1 |
1.0.0-beta.2 | 1.0 |
1.0.0-beta.1 | 1.0 |
파이프라인 토폴로지 만들기 및 요청
시작 코드에 대한 예제 방문하세요.
모든 클라이언트 인스턴스 메서드가 스레드로부터 안전하고 서로 독립적임을 보장합니다(지침). 이렇게 하면 스레드 간에도 클라이언트 인스턴스를 다시 사용하는 것이 항상 안전합니다.
주요 개념
파이프라인 토폴로지 및 라이브 파이프라인
파이프라인 토폴로지 라이브 파이프라인을 인스턴스화하기 위한 청사진 또는 템플릿입니다. 자리 표시자를 값으로 사용하여 파이프라인의 매개 변수를 정의합니다. 라이브 파이프라인 파이프라인 토폴로지 참조 및 매개 변수를 지정합니다. 이렇게 하면 동일한 토폴로지와 매개 변수 값이 다른 여러 라이브 파이프라인을 참조할 수 있습니다. 자세한 내용은 파이프라인 토폴로지 및 라이브 파이프라인방문하세요.
예제
파이프라인 토폴로지 만들기
파이프라인 토폴로지 만들기를 위해 원본 및 싱크를 정의해야 합니다.
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]
}
};
라이브 파이프라인 만들기
라이브 파이프라인 인스턴스를 만들려면 기존 파이프라인 토폴로지가 있어야 합니다.
const livePipeline: LivePipeline = {
name: "jsLivePipelineTest",
properties: {
description: "description",
topologyName: pipelineTopologyName,
parameters: [{ name: "rtspUrl", value: "rtsp://sample.com" }]
}
};
직접 메서드 호출
디바이스에서 직접 메서드를 호출하려면 먼저 Video Analyzer Edge SDK를 사용하여 요청을 정의한 다음 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
});
문제 해결
- 메서드 요청을 만들 때 메서드 이름의 맞춤법을 검사해야 합니다.
다음 단계
- 샘플
- Azure IoT Device SDK
- Azure IoTHub 서비스 SDK
기여
이 프로젝트는 기여와 제안을 환영합니다. 대부분의 기여는 귀하가 귀하의 기여를 사용할 권리를 부여할 권리가 있음을 선언하는 CLA(기여자 사용권 계약)에 동의해야 합니다. 자세한 내용은 https://cla.microsoft.com방문하세요.
문제가 발생하면 Github문제를 여세요.
끌어오기 요청을 제출하면 CLA 봇은 CLA를 제공하고 PR을 적절하게 데코레이팅해야 하는지 여부를 자동으로 결정합니다(예: 레이블, 주석). 봇에서 제공하는 지침을 따르기만 하면 됩니다. CLA를 사용하여 모든 리포지토리에서 한 번만 이 작업을 수행해야 합니다.
이 프로젝트는 Microsoft 오픈 소스 행동 강령
Azure SDK for JavaScript