共用方式為


已取代。 適用于 JavaScript 的 Azure 影片分析器 Edge 用戶端程式庫

已取代。 我們即將淘汰 Azure 影片分析器預覽服務,建議您在 2022 年 12 月 1 日之前將應用程式轉換出影片分析器。 此 SDK 不再維護。

Azure 影片分析器是 [Azure Applied AI Service][applied-ai-service],可提供平臺供您建置可跨越邊緣和雲端基礎結構的智慧型視訊應用程式。 平臺提供擷取、錄製和分析即時影片的功能,以及將結果、影片和影片分析發佈至邊緣或雲端中的 Azure 服務。 它是設計成可延伸的平臺,可讓您連接不同的影片推斷邊緣模組,例如認知服務模組,或使用開放原始碼機器學習或 [Azure Machine Learning][機器學習] 來訓練您自己的資料自訂推斷模組。

使用影片分析器 Edge 的用戶端程式庫來:

重要連結:

開始使用

安裝套件

使用 npm 安裝 Typescript 的影片分析器用戶端程式庫:

npm install @azure/video-analyzer-edge

必要條件

  • TypeScript v3.6。
  • 您需要作用中的 Azure 訂用帳戶和 IoT 裝置連接字串,才能使用此套件。
  • 若要與Azure IoT 中樞互動,您必須執行npm install azure-iothub
  • 您必須使用對應至您使用之影片分析器 Edge 模組版本的 SDK 版本。
SDK 影片分析器邊緣模組
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
});

疑難排解

  • 建立方法要求時,請記得檢查方法名稱的拼字

下一步

參與

此專案歡迎參與和提供建議。 大部分的參與都要求您同意「參與者授權合約 (CLA)」,宣告您有權且確實授與我們使用投稿的權利。 如需詳細資料,請前往 https://cla.microsoft.com

如果您遇到任何問題,請在 Github上提出問題。

當您提交提取要求時,CLA Bot 會自動判斷您是否需要提供 CLA,並適當地裝飾 PR (例如標籤、註解)。 請遵循 bot 提供的指示。 您只需要使用我們的 CLA 在所有存放庫上執行此動作一次。

此專案採用 Microsoft Open Source Code of Conduct (Microsoft 開放原始碼管理辦法)。 如需詳細資訊,請參閱管理辦法常見問題,或連絡 opencode@microsoft.com 任何其他問題或意見。