Pustaka klien Azure Video Analyzer Edge untuk Python - versi 1.0.0b4

Dihentikan. Kami menghentikan layanan pratinjau Azure Video Analyzer, Anda disarankan untuk mentransisikan aplikasi Anda dari Video Analyzer sebelum 1 Desember 2022. SDK ini tidak lagi dipertahankan.

Azure Video Analyzer adalah Azure Applied AI Service yang menyediakan platform bagi Anda untuk membangun aplikasi video cerdas yang dapat menjangkau infrastruktur tepi dan cloud. Platform ini menawarkan kemampuan untuk menangkap, merekam, dan menganalisis video langsung bersama dengan menerbitkan hasil, analitik video dan video, ke layanan Azure di tepi atau di cloud. Ini dirancang untuk menjadi platform yang dapat diperluas, memungkinkan Anda untuk menghubungkan modul tepi inferensi video yang berbeda seperti modul Cognitive services, atau modul inferensi kustom yang telah dilatih dengan data Anda sendiri menggunakan pembelajaran mesin sumber terbuka atau Azure Machine Learning.

Gunakan pustaka klien untuk Azure Video Analyzer Edge untuk:

  • Menyederhanakan interaksi dengan Microsoft Azure IoT SDK
  • Membangun topologi alur dan alur langsung secara terprogram

Paket (PyPI) | Dokumentasi | produk Metode | langsung Pipa | Kode sumber | Sampel

Memulai

Menginstal paket

Instal pustaka klien Video Analyzer Edge untuk Python dengan pip:

pip install azure-media-videoanalyzer-edge

Prasyarat

  • Python 2.7, atau 3.6 atau yang lebih baru diperlukan untuk menggunakan paket ini.

  • Anda memerlukan langganan Azure aktif, dan string koneksi perangkat IoT untuk menggunakan paket ini.

  • Untuk berinteraksi dengan Azure IoT Hub Anda harus menjalankanpip install azure-iot-hub

  • Anda harus menggunakan versi SDK yang sesuai dengan versi modul Video Analyzer Edge yang Anda gunakan.

    SDK Modul tepi Video Analyzer
    1.0.0b3 1.1
    1.0.0b2 1,0
    1.0.0b1 1,0

Membuat topologi alur dan membuat permintaan

Silakan kunjungi Contoh untuk kode pemula.

Konsep utama

Topologi alur vs alur langsung

Topologi alur adalah cetak biru atau templat untuk membuat alur langsung. Ini mendefinisikan parameter alur menggunakan tempat penampung sebagai nilai untuk mereka. Alur langsung mereferensikan topologi alur dan menentukan parameter. Dengan cara ini Anda dapat memiliki beberapa alur langsung yang mereferensikan topologi yang sama tetapi dengan nilai yang berbeda untuk parameter. Untuk informasi lebih lanjut, kunjungi topologi alur dan alur langsung.

CloudToDeviceMethod

CloudToDeviceMethod adalah bagian dari azure-iot-hub SDk. Metode ini memungkinkan Anda untuk mengomunikasikan pemberitahuan satu arah ke perangkat di hub IoT Anda. Dalam kasus kami, kami ingin mengkomunikasikan berbagai metode langsung seperti PipelineTopologySetRequest dan PipelineTopologyGetRequest. Untuk menggunakan CloudToDeviceMethod , Anda perlu meneruskan dua parameter: method_name dan payload.

Parameter pertama, method_name, adalah nama permintaan metode langsung yang Anda kirim. Pastikan untuk menggunakan properti masing-masing metode yang telah method_name ditentukan sebelumnya. Contohnya:PipelineTopologySetRequest.method_name

Parameter kedua, payload, mengirimkan seluruh serialisasi permintaan topologi alur. Misalnya, PipelineTopologySetRequest.serialize()

Contoh

Membuat topologi alur

Untuk membuat topologi alur, Anda perlu menentukan sumber dan sink.

#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)

Membuat alur langsung

Untuk membuat alur langsung, Anda harus memiliki topologi alur yang ada.

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)

Memanggil metode langsung

Untuk memanggil metode langsung di perangkat, Anda harus terlebih dahulu menentukan permintaan menggunakan Video Analyzer Edge SDK, lalu mengirim permintaan metode tersebut menggunakan 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)

Untuk mencoba topologi alur yang berbeda dengan SDK, silakan lihat Sampel resmi.

Pemecahan Masalah

  • Saat mengirim permintaan metode menggunakan IoT Hub CloudToDeviceMethod ingat untuk tidak mengetikkan nama permintaan metode secara langsung. Sebagai gantinya gunakan [MethodRequestName.method_name]
  • Pastikan untuk membuat serialisasi seluruh permintaan metode sebelum meneruskannya ke CloudToDeviceMethod

Langkah berikutnya

Berkontribusi

Proyek ini menyambut baik kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda menyetujui Perjanjian Lisensi Kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar-benar melakukannya, memberi kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.microsoft.com.

Jika Anda mengalami masalah, silakan buka masalah di Github kami.

Ketika Anda mengirimkan permintaan tarik, CLA-bot akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghias PR dengan tepat (misalnya, label, komentar). Cukup ikuti instruksi yang diberikan oleh bot. Anda hanya perlu melakukan ini sekali di semua repos menggunakan CLA kami.

Proyek ini telah mengadopsi Kode Etik Sumber Terbuka Microsoft. Untuk informasi selengkapnya, lihat Tanya Jawab Umum Kode Etik atau kontak dengan pertanyaan atau komentar opencode@microsoft.com tambahan.