Python 用 Azure Video Analyzer Edge クライアント ライブラリ - バージョン 1.0.0b4
非推奨になりました。 Azure Video Analyzer プレビュー サービスは廃止されます。2022 年 12 月 1 日までに、Video Analyzer からアプリケーションを移行することをお勧めします。 この SDK は維持されなくなりました。
Azure Video Analyzer は、エッジ インフラストラクチャとクラウド インフラストラクチャの両方にまたがるインテリジェントなビデオ アプリケーションを構築するためのプラットフォームを提供する Azure Applied AI サービス です。 このプラットフォームでは、ライブ ビデオをキャプチャ、記録、分析し、結果、ビデオ、ビデオ分析をエッジまたはクラウドの Azure サービスに公開する機能が提供されます。 これは拡張可能なプラットフォームとして設計されており、Cognitive Services モジュールなどのさまざまなビデオ推論エッジ モジュールや、オープンソースの機械学習または Azure Machine Learning を使用して独自のデータでトレーニングされたカスタム推論モジュールを接続できます。
Video Analyzer Edge のクライアント ライブラリを使用して、次の操作を行います。
- Microsoft Azure IoT SDK との対話を簡素化する
- プログラムによってパイプライン トポロジとライブ パイプラインを構築する
パッケージ (PyPI) | 製品ドキュメント | ダイレクト メソッド | パイプライン | ソースコード | サンプル
作業の開始
パッケージをインストールする
pip を使用して、Python 用 Video Analyzer Edge クライアント ライブラリをインストールします。
pip install azure-media-videoanalyzer-edge
前提条件
このパッケージを使用するには、Python 2.7 または3.6 以降が必要です。
このパッケージを使用するには、アクティブな Azure サブスクリプションと IoT デバイス接続文字列が必要です。
Azure IoT Hubを操作するには、 を実行する必要があります
pip install azure-iot-hub
使用している Video Analyzer Edge モジュールのバージョンに対応する SDK のバージョンを使用する必要があります。
SDK Video Analyzer エッジ モジュール 1.0.0b3 1.1 1.0.0b2 1.0 1.0.0b1 1.0
パイプライン トポロジの作成と要求の作成
スターター コードの 例 に関するページを参照してください。
主要な概念
パイプライン トポロジとライブ パイプライン
パイプライン トポロジは、ライブ パイプラインを作成するためのブループリントまたはテンプレートです。 プレースホルダーを値として使用して、パイプラインのパラメーターを定義します。 ライブ パイプラインはパイプライン トポロジを参照し、パラメーターを指定します。 これにより、同じトポロジを参照する複数のライブ パイプラインを作成できますが、パラメーターの値は異なります。 詳細については、 パイプライン トポロジとライブ パイプラインに関するページを参照してください。
CloudToDeviceMethod
CloudToDeviceMethod
は azure-iot-hub SDk の一部です。 この方法を使用すると、IoT ハブ内のデバイスに一方向の通知を通信できます。 ここでは、 や PipelineTopologyGetRequest
などPipelineTopologySetRequest
、さまざまな直接的な方法を伝えたいと考えています。 を使用CloudToDeviceMethod
するには、 と payload
の 2 つのパラメーターmethod_name
を渡す必要があります。
最初のパラメーター は、 method_name
送信するダイレクト メソッド要求の名前です。 各メソッドの定義済み method_name
プロパティを使用してください。 たとえば、「 PipelineTopologySetRequest.method_name
」のように入力します。
2 番目のパラメーター は、 payload
パイプライン トポロジ要求のシリアル化全体を送信します。 たとえば、PipelineTopologySetRequest.serialize()
のように指定します。
例
パイプライン トポロジの作成
パイプライン トポロジを作成するには、ソースとシンクを定義する必要があります。
#Parameters
user_name_param = ParameterDeclaration(name="rtspUserName",type="String",default="testusername")
password_param = ParameterDeclaration(name="rtspPassword",type="SecretString",default="testpassword")
url_param = ParameterDeclaration(name="rtspUrl",type="String",default="rtsp://www.sample.com")
#Source and Sink
source = RtspSource(name="rtspSource", endpoint=UnsecuredEndpoint(url="${rtspUrl}",credentials=UsernamePasswordCredentials(username="${rtspUserName}",password="${rtspPassword}")))
node = NodeInput(node_name="rtspSource")
sink = VideoSink(name="videoSink", inputs=[node], video_name="video", local_media_cache_path="/var/lib/videoanalyzer/tmp/", local_media_cache_maximum_size_mi_b="1024");
pipeline_topology_properties = PipelineTopologyProperties()
pipeline_topology_properties.parameters = [user_name_param, password_param, url_param]
pipeline_topology_properties.sources = [source]
pipeline_topology_properties.sinks = [sink]
pipeline_topology = PipelineTopology(name=pipeline_topology_name,properties=pipeline_topology_properties)
ライブ パイプラインの作成
ライブ パイプラインを作成するには、既存のパイプライン トポロジが必要です。
url_param = ParameterDefinition(name="rtspUrl", value=pipeline_url)
pass_param = ParameterDefinition(name="rtspPassword", value="secret_password")
live_pipeline_properties = LivePipelineProperties(description="Sample pipeline description", topology_name=pipeline_topology_name, parameters=[url_param])
live_pipeline = LivePipeline(name=live_pipeline_name, properties=live_pipeline_properties)
ダイレクト メソッドの呼び出し
デバイスでダイレクト メソッドを呼び出すには、まず Video Analyzer Edge SDK を使用して要求を定義してから、IoT SDK の CloudToDeviceMethod
を使用してそのメソッド要求を送信する必要があります。
set_method_request = PipelineTopologySetRequest(pipeline_topology=pipeline_topology)
direct_method = CloudToDeviceMethod(method_name=set_method_request.method_name, payload=set_method_request.serialize())
registry_manager = IoTHubRegistryManager(connection_string)
registry_manager.invoke_device_module_method(device_id, module_d, direct_method)
SDK でさまざまなパイプライン トポロジを試すには、公式の サンプルを参照してください。
トラブルシューティング
- IoT Hub を使用してメソッド要求を送信する場合は
CloudToDeviceMethod
、メソッド要求名を直接入力しないことを忘れないでください。 代わりに[MethodRequestName.method_name]
を使用してください - に渡す前に、必ずメソッド要求全体をシリアル化してください
CloudToDeviceMethod
次のステップ
共同作成
このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、 https://cla.microsoft.com を参照してください。
問題が発生した場合は、 GitHub で問題を開いてください。
pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。
このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳細については、「倫理規定の FAQ」をご覧ください。追加の質問やコメントがある場合は opencode@microsoft.com にお問い合わせください。
Azure SDK for Python