다음을 통해 공유


되지 않는. 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용 클라이언트 라이브러리를 사용하여 다음을 수행합니다.

키 링크:

시작

패키지 설치

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 오픈 소스 행동 강령채택했습니다. 자세한 내용은 행동 강령 FAQ를 참조하거나 추가 질문이나 의견을 opencode@microsoft.com 문의하세요.