次の方法で共有


廃止。 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 サービスに公開する機能を提供します。 これは拡張可能なプラットフォームとして設計されており、Cognitive Services モジュールなどのさまざまなビデオ推論エッジ モジュールや、オープンソースの機械学習または [Azure Machine Learning][機械学習] を使用して独自のデータでトレーニングされたカスタム推論モジュールを接続できます。

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 Service SDK を する

貢献

このプロジェクトは、投稿と提案を歓迎します。 ほとんどの投稿では、お客様が投稿を使用する権利を当社に付与する権利を有し、実際に行うことを宣言する共同作成者ライセンス契約 (CLA) に同意する必要があります。 詳細については、https://cla.microsoft.comを参照してください。

問題が発生した場合は、Githubで問題を開いてください。

プル要求を送信すると、CLA ボットは、CLA を提供し、PR を適切に装飾する必要があるかどうかを自動的に判断します (ラベル、コメントなど)。 ボットによって提供される指示に従うだけです。 これは、CLA を使用するすべてのリポジトリで 1 回だけ行う必要があります。

このプロジェクトでは、Microsoft オープン ソースの行動規範を採用しています。 詳細については、行動規範に関する FAQ を参照するか、その他の質問やコメントを opencode@microsoft.com にお問い合わせください。