Tutorial: Perekaman dan pemutaran video berbasis peristiwa

edge icon
Atau, lihat topik di bawah Memuat aplikasi video di layanan.


Catatan

Kami menghentikan layanan pratinjau Azure Video Analyzer, Anda disarankan untuk mentransisikan aplikasi Anda dari Video Analyzer sebelum 1 Desember 2022.

Azure Video Analyzer for Media tidak terpengaruh oleh penghentian ini. Ia sekarang berganti nama menjadi Azure Video Indexer. Klik di sini untuk membaca lebih lanjut.

Tindakan Diperlukan: Untuk meminimalkan gangguan pada beban kerja Anda, transisikan aplikasi Anda dari Video Analyzer per saran yang dijelaskan dalam panduan ini sebelum 1 Desember 2022. Setelah 1 Desember 2022, akun Azure Video Analyzer Anda tidak akan berfungsi lagi. Mulai 2 Mei 2022 Anda tidak akan dapat membuat akun Video Analyzer baru.

Dalam tutorial ini, Anda akan belajar cara menggunakan Azure Video Analyzer untuk secara selektif merekam bagian dari sumber video langsung ke Azure Video Analyzer di cloud. Kasus penggunaan ini disebut sebagai perekaman video berbasis peristiwa (EVR) dalam tutorial ini. Untuk merekam bagian dari video langsung, Anda akan menggunakan model AI deteksi objek untuk mencari objek dalam video dan merekam klip video hanya saat jenis objek tertentu terdeteksi. Anda juga akan belajar tentang cara memutar ulang klip video yang direkam dengan menggunakan Azure Video Analyzer. Kemampuan ini berguna untuk berbagai skenario di mana ada kebutuhan untuk menyimpan arsip klip video yang menarik.

Jika Anda tidak memiliki langganan Azure, buat akun gratis Azure sebelum memulai.

Pra-pembacaan yang disarankan

Baca artikel ini sebelum Anda memulai:

Prasyarat

Prasyarat untuk tutorial ini adalah:

Menyiapkan sumber daya Azure

Deploy to Azure

Proses penyebaran akan memakan waktu sekitar 20 menit. Setelah selesai, Anda akan memiliki sumber daya Azure tertentu yang disebarkan dalam langganan Azure, termasuk:

  1. Akun Video Analyzer - Layanan cloud ini digunakan untuk mendaftarkan modul edge Video Analyzer, serta untuk memutar kembali video yang direkam dan analitik video.
  2. Akun penyimpanan - Untuk menyimpan video yang direkam dan analitik video.
  3. Identitas Terkelola - Ini adalah identitas terkelola yang ditetapkan pengguna yang digunakan untuk mengelola akses ke akun penyimpanan di atas.
  4. Komputer virtual - Ini adalah komputer virtual yang akan berfungsi sebagai perangkat edge simulasi Anda.
  5. IoT Hub - Ini bertindak sebagai hub pesan pusat untuk komunikasi dua arah antara aplikasi IoT Anda, modul IoT Edge dan perangkat yang dikelolanya.

Selain sumber daya yang disebutkan di atas, item berikut juga dibuat dalam berbagi file 'deployment-output' di akun penyimpanan Anda, untuk digunakan dalam mulai cepat dan tutorial:

  • appsettings.json - File ini berisi string koneksi perangkat dan properti lainnya yang diperlukan untuk menjalankan aplikasi contoh di Visual Studio Code.
  • env.txt - File ini berisi variabel lingkungan yang akan Anda perlukan untuk membuat manifes penyebaran menggunakan Visual Studio Code.
  • deployment.json - Ini adalah manifes penyebaran yang digunakan oleh templat untuk menyebarkan modul edge ke perangkat edge yang disimulasikan.

Tip

Jika Anda mengalami masalah saat membuat semua sumber daya Azure yang diperlukan, silakan gunakan langkah-langkah manual dalam mulai cepat ini.

Gambaran Umum

Rekaman video berbasis peristiwa mengacu pada proses perekaman video yang dipicu oleh suatu peristiwa. Peristiwa itu dapat dihasilkan dari:

  • Pemrosesan sinyal video itu sendiri, misalnya, saat mendeteksi objek bergerak dalam video.
  • Sumber independen, misalnya, pembukaan pintu.

Atau, Anda dapat memicu perekaman hanya ketika layanan inferensi mendeteksi bahwa peristiwa tertentu telah terjadi. Dalam tutorial ini, Anda akan menggunakan video kendaraan yang bergerak di jalan bebas hambatan dan merekam klip video setiap kali truk terdeteksi.

Pipeline

Diagram adalah representasi bergambar dari alur dan modul tambahan yang menyelesaikan skenario yang diinginkan. Empat modul Azure IoT Edge dilibatkan:

  • Azure Video Analyzer pada modul Azure IoT Edge.
  • Modul edge yang menjalankan model AI di belakang titik akhir HTTP. Modul AI ini menggunakan modelYOLOv3 yang mampu mendeteksi banyak jenis objek.
  • Modul kustom untuk menghitung dan memfilter objek, yang disebut sebagai Penghitung Objek dalam diagram. Anda akan membangun Penghitung Objek dan menyebarkannya dalam tutorial ini.
  • Modul simulator RTSP untuk menyimulasikan kamera RTSP.

Seperti yang ditunjukkan diagram, Anda akan menggunakan simpul sumber RTSP dalam alur untuk merekam video langsung simulasi lalu lintas di jalan raya dan mengirimkan video tersebut ke dua jalur:

  • Jalur pertama adalah ke simpul ekstensi HTTP. Simpul mengambil sampel bingkai video ke nilai yang Anda tetapkan menggunakan bidang samplingOptions dan kemudian merelai bingkai, sebagai gambar, ke modul AI YOLOv3, yang merupakan pendeteksi objek. Simpul menerima hasil, yang merupakan objek (kendaraan dalam lalu lintas) yang dideteksi oleh model. Simpul ekstensi HTTP kemudian menerbitkan hasil melalui simpul sink pesan Azure IoT Hub ke hub Azure IoT Edge.

  • Modul objectCounter disiapkan untuk menerima pesan dari hub Azure IoT Edge, yang mencakup hasil deteksi objek (kendaraan dalam lalu lintas). Modul memeriksa pesan-pesan ini dan mencari objek dari jenis tertentu, yang dikonfigurasi melalui pengaturan. Saat objek seperti ditemukan, modul ini mengirimkan pesan ke hub Azure IoT Edge. Pesan "objek ditemukan" tersebut kemudian dirutekan ke simpul sumber Azure IoT Hub dari alur. Setelah menerima pesan seperti itu, simpul sumber Azure IoT Hub di alur memicu simpul pemroses gerbang sinyal. Simpul prosesor gerbang sinyal kemudian terbuka untuk waktu yang dikonfigurasi. Video mengalir melalui gerbang ke simpul sink video selama durasi tersebut. Bagian dari streaming langsung tersebut kemudian direkam melalui node sink video ke video di akun Video Analyzer Anda. Video yang akan digunakan dalam tutorial ini adalah video sampel persimpangan jalan raya.

Dalam tutorial ini, Anda akan:

  1. Siapkan lingkungan pengembangan Anda.
  2. Sebarkan modul edge yang diperlukan.
  3. Buat dan sebarkan alur langsung.
  4. Menafsirkan hasilnya.
  5. Membersihan sumber daya.

Menyiapkan lingkungan pengembangan Anda

Dapatkan kode sampel

  1. Kloning repositori sampel AVA C#.

  2. Mulai Visual Studio Code, lalu buka folder tempat repositori diunduh.

  3. Pada Visual Studio Code, telusuri ke folder src/cloud-to-device-console-app folder lalu buat file dengan nama appsettings.json. File ini berisi pengaturan yang diperlukan untuk menjalankan program.

  4. Telusuri berbagi file dalam penyimpanan akun yang dibuat dalam langkah penyiapan di atas, dan letakkan file appsettings.json file di berbagi file "deployment-output". Klik pada file, lalu tekan tombol "Unduh". Konten harus terbuka di tab browser baru, yang akan tampak seperti:

    {
        "IoThubConnectionString" : "HostName=xxx.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX",
        "deviceId" : "avasample-iot-edge-device",
        "moduleId" : "avaedge"
    }
    

    String koneksi IoT Hub memungkinkan Anda menggunakan Visual Studio Code untuk mengirim perintah ke modul tepi melalui Azure IoT Hub. Salin file JSON di atas ke dalam src/cloud-to-device-console-app/appsettings.json.

  5. Selanjutnya, telusuri ke folder src/edge dan buat file bernama .env. File ini berisi properti yang digunakan Visual Studio Code untuk menyebarkan modul ke perangkat edge.

  6. Telusuri berbagi file dalam penyimpanan akun yang dibuat dalam langkah penyiapan di atas, dan letakkan file env.txt di berbagi file "deployment-output". Klik pada file, lalu tekan tombol "Unduh". Konten harus terbuka di tab browser baru, yang akan tampak seperti:

         SUBSCRIPTION_ID="<Subscription ID>"
         RESOURCE_GROUP="<Resource Group>"
         AVA_PROVISIONING_TOKEN="<Provisioning token>"
         VIDEO_INPUT_FOLDER_ON_DEVICE="/home/localedgeuser/samples/input"
         VIDEO_OUTPUT_FOLDER_ON_DEVICE="/var/media"
         APPDATA_FOLDER_ON_DEVICE="/var/lib/videoanalyzer"
         CONTAINER_REGISTRY_USERNAME_myacr="<your container registry username>"
         CONTAINER_REGISTRY_PASSWORD_myacr="<your container registry password>"
    

    Salin file JSON dari env.txt ke dalam src/edge/.env.

Menyambungkan ke IoT Hub

  1. Pada Visual Studio Code, atur string koneksi IoT Hub dengan memilih ikon Tindakan lainnya di samping panel AZURE IOT HUB di sudut kiri bawah. Salin string dari file src/cloud-to-device-console-app/appsettings.json.

    Catatan

    Anda mungkin diminta untuk memberikan informasi titik akhir bawaan untuk Azure IoT Hub. Untuk mendapatkan informasi tersebut, di portal Microsoft Azure, navigasikan ke Azure IoT Hub Anda dan cari opsi Titik akhir bawaan di panel navigasi kiri. Klik di sana dan cari titik akhir yang kompatibel dengan Hub Kejadian di bawah bagian titik akhir yang kompatibel dengan Hub Kejadian. Salin dan gunakan teks di dalam kotak. Titik akhir akan terlihat seperti ini: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

  2. Dalam waktu sekitar 30 detik, refresh Azure IoT Hub di bagian kiri bawah. Anda akan melihat perangkat edge avasample-iot-edge-device, yang seharusnya sudah menyebarkan modul berikut:

    • Azure Stack Edge (nama modul edgeHub)
    • Agen Azure Stack Edge (nama modul edgeHub)
    • Video Analyzer (nama modul avaedge)
    • Simulator RTSP (nama modul rtspsim)

Bersiap untuk memantau modul

Saat Anda menggunakan jalankan mulai cepat atau tutorial ini, peristiwa akan dikirim ke IoT Hub. Untuk melihat peristiwa ini, ikuti langkah-langkah ini:

  1. Buka panel Explorer pada panel Visual Studio Code, dan cari Azure IoT Hub di bagian sudut kiri bawah.

  2. Perluas node Perangkat.

  3. Klik kanan avasample-iot-edge-device, dan pilih Mulai Pemantauan Titik Akhir Peristiwa Bawaan.

    Catatan

    Anda mungkin diminta untuk memberikan informasi titik akhir bawaan untuk Azure IoT Hub. Untuk mendapatkan informasi tersebut, di portal Microsoft Azure, navigasikan ke Azure IoT Hub Anda dan cari opsi Titik akhir bawaan di panel navigasi kiri. Klik di sana dan cari titik akhir yang kompatibel dengan Hub Kejadian di bawah bagian titik akhir yang kompatibel dengan Hub Kejadian. Salin dan gunakan teks di dalam kotak. Titik akhir akan terlihat seperti ini: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

Memeriksa file sampel

Di Visual Studio Code, telusuri src/edge. Anda akan melihat file .env yang Anda buat dan beberapa file templat penyebaran. Templat ini menentukan modul edge mana yang akan Anda sebarkan ke perangkat edge (VM Linux Azure). File .env berisi nilai untuk variabel yang digunakan dalam templat ini, seperti info masuk Azure Video Analyzer.

Buka src/edge/deployment.objectCounter.template.json. Ada empat entri di bawah bagian modul yang sesuai dengan item yang tercantum di bagian "Gambaran Umum" sebelumnya

  • avaedge: Ini adalah modul Azure Video Analyzer.
  • yolov3: Ini adalah modul AI yang dibangun dengan menggunakan model YOLO v3.
  • rtspsim: Ini adalah simulator RTSP.
  • objectCounter: Ini adalah modul yang mencari objek tertentu di hasil dari yolov3.

Untuk modul objectCounter, lihat string (${MODULES.objectCounter}) yang digunakan untuk nilai "gambar". Ini didasarkan pada tutorial tentang pengembangan modul Azure IoT Edge. Visual Studio Code secara otomatis mengenali bahwa kode untuk modul objectCounter berada di bawah src/edge/modules/objectCounter.

Baca bagian ini tentang cara mendeklarasikan rute dalam manifes penyebaran Azure IoT Edge. Kemudian periksa rute di file JSON templat. Perhatikan cara:

Catatan

Memeriksa properti yang diinginkan untuk modul objectCounter, yang disiapkan untuk mencari objek yang ditandai sebagai "truk" dengan tingkat keyakinan setidaknya 50%.

Selanjutnya, jelajahi folder src/cloud-to-device-console-app. Di sini Anda akan melihat file appsettings.json yang Anda buat bersama dengan beberapa file lainnya:

  • c2d-console-app.csproj: File proyek untuk Visual Studio Code.
  • operations.json: File ini mencantumkan berbagai operasi yang akan Anda jalankan.
  • Program.cs: Sampel kode program, yang:
    • Memuat pengaturan aplikasi.

    • Menggunakan metode langsung yang diekspos oleh modul Azure Video Analyzer. Anda dapat menggunakan modul untuk menganalisis aliran video langsung dengan menggunakan metode langsung.

    • Jeda untuk memeriksa output dari program di jendela TERMINAL dan kejadian yang dihasilkan oleh modul di jendela OUTPUT.

    • Gunakan metode langsung untuk membersihkan sumber daya.

Membuat dan menyebarkan manifes penyebaran IoT Edge

Manifes penyebaran menentukan modul apa yang disebarkan ke perangkat edge dan pengaturan konfigurasi untuk modul tersebut. Ikuti langkah-langkah ini untuk membuat manifes dari file templat, lalu menyebarkannya ke perangkat edge.

Menggunakan Visual Studio Code, ikuti instruksi berikut untuk masuk ke Docker. Kemudian pilih Bangun dan Dorong Solusi IoT Edge. Gunakan src/edge/deployment.objectCounter.template.json untuk langkah ini.

Build and push IoT Edge solution

Tindakan ini membangun modul objectCounter untuk penghitungan objek dan mendorong gambar ke Azure Container Registry Anda.

  • Periksa apakah Anda memiliki variabel lingkungan CONTAINER_REGISTRY_USERNAME_myacr dan CONTAINER_REGISTRY_PASSWORD_myacr yang ditentukan dalam file .env.

Langkah ini membuat manifes penyebaran Azure IoT Edge di src/edge/config/deployment.objectCounter.amd64.json. Klik kanan file tersebut, dan pilih Buat Penyebaran untuk Satu Perangkat.

Create deployment for single device

Jika ini adalah tutorial pertama Anda dengan Azure Video Analyzer, Visual Studio Code meminta Anda untuk memasukkan string koneksi Azure IoT Hub. Anda dapat menyalinnya dari file appsettings.json.

Catatan

Anda mungkin diminta untuk memberikan informasi titik akhir bawaan untuk Azure IoT Hub. Untuk mendapatkan informasi tersebut, di portal Microsoft Azure, navigasikan ke Azure IoT Hub Anda dan cari opsi Titik akhir bawaan di panel navigasi kiri. Klik di sana dan cari titik akhir yang kompatibel dengan Hub Kejadian di bawah bagian titik akhir yang kompatibel dengan Hub Kejadian. Salin dan gunakan teks di dalam kotak. Titik akhir akan terlihat seperti ini: Endpoint=sb://iothub-ns-xxx.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=XXX;EntityPath=<IoT Hub name>

Selanjutnya, Visual Studio Code meminta Anda untuk memilih perangkat Azure IoT Hub. Pilih perangkat Azure IoT Edge Anda, yang seharusnya avasample-iot-edge-device.

Pada tahap ini, penyebaran modul edge ke perangkat Azure IoT Edge Anda telah dimulai. Dalam waktu sekitar 30 detik, refresh Azure IoT Hub di bagian kiri bawah di Visual Studio Code. Anda akan melihat bahwa ada enam modul yang disebarkan bernama $edgeAgent, $edgeHub avaedge, rtspsim, yolov3, dan objectCounter.

Four modules deployed

Jalankan program

  1. Di Visual Studio Code, buka tab Ekstensi (atau tekan Ctrl+Shift+X) dan cari Azure IoT Hub.

  2. Klik kanan dan pilih Pengaturan Ekstensi.

    Extension Settings

  3. Cari dan aktifkan "Tampilkan Pesan Verbose".

    Show Verbose Message

  4. Buka src/cloud-to-device-console-app/operations.json.

  5. Di bawah simpul pipelineTopologySet, edit berikut ini:

    "pipelineTopologyUrl" : "https://raw.githubusercontent.com/Azure/video-analyzer/main/pipelines/live/topologies/evr-hubMessage-video-sink/topology.json"

  6. Selanjutnya, di bawah simpul livePipelineSet dan pipelineTopologyDelete, pastikan nilai topologyName cocok dengan nilai properti nama di topologi alur di atas:

    "pipelineTopologyName" : "EVRtoVideoSinkOnObjDetect"

  7. Buka topologi alur di browser, dan lihat videoName - videoName dikodekan secara permanen ke sample-evr-video. Hal ini dapat diterima untuk tutorial. Dalam produksi, Anda akan berhati-hati untuk memastikan bahwa setiap kamera RTSP unik direkam ke sumber video dengan nama unik.

  8. Mulai sesi penelusuran kesalahan dengan memilih F5. Anda akan melihat beberapa pesan yang ditampilkan di jendela TERMINAL.

  9. File operations.json dimulai dengan panggilan ke pipelineTopologyList dan livePipelineList. Jika Anda telah membersihkan sumber daya setelah mulai cepat atau tutorial sebelumnya, tindakan ini menghasilkan daftar kosong dan kemudian dijeda sejenak untuk memilih Enter, seperti yang ditunjukkan:

    --------------------------------------------------------------------------
    Executing operation pipelineTopologyList
    -----------------------  Request: pipelineTopologyList  --------------------------------------------------
    {
      "@apiVersion": "1.1"
    }
    ---------------  Response: pipelineTopologyList - Status: 200  ---------------
    {
      "value": []
    }
    --------------------------------------------------------------------------
    Executing operation WaitForInput
    Press Enter to continue
    
  10. Setelah Anda memilih Enter di jendela TERMINAL, rangkaian panggilan metode langsung berikutnya dibuat:

    • Panggilan ke pipelineTopologySet dengan menggunakan pipelinetopologyUrl sebelumnya

    • Panggilan ke livePipelineSet dengan menggunakan isi berikut

      {
        "@apiVersion": "1.1",
        "name": "Sample-Pipeline-1",
        "properties": {
          "topologyName": "EVRtoVideoSinkOnObjDetect",
          "description": "Sample topology description",
          "parameters": [
            {
              "name": "rtspUrl",
              "value": "rtsp://rtspsim:554/media/camera-300s.mkv"
            },
            {
              "name": "rtspUserName",
              "value": "testuser"
            },
            {
              "name": "rtspPassword",
              "value": "testpassword"
            }
          ]
        }
      }
      
    • Panggilan ke livePipelineActivate untuk memulai alur langsung dan memulai alur video

    • Panggilan kedua ke livePipelineList untuk menunjukkan bahwa alur langsung dalam keadaan berjalan

  11. Output di jendela TERMINAL sekarang dijeda pada permintaan Tekan Enter untuk melanjutkan. Jangan pilih Enter saat ini. Gulir ke atas untuk melihat payload respons JSON untuk metode langsung yang Anda gunakan.

  12. Jika sekarang Anda beralih ke jendela OUTPUT di Visual Studio Code, Anda akan melihat pesan yang dikirim ke Azure IoT Hub oleh modul Azure Video Analyzer.

    Pesan-pesan ini dibahas di bagian berikut.

  13. Alur langsung terus berjalan dan merekam video. Simulator RTSP terus mengulang video sumber. Untuk berhenti merekam, kembali ke jendela TERMINAL dan pilih Enter. Rangkaian panggilan berikutnya dilakukan untuk membersihkan sumber daya dengan menggunakan:

    • Panggilan ke livePipelineDeactivate untuk menonaktifkan alur langsung.
    • Panggilan ke livePipelineDelete untuk menghapus alur langsung.
    • Panggilan ke pipelineTopologyDelete untuk menghapus topologi.
    • Panggilan terakhir ke pipelineTopologyList untuk menunjukkan bahwa daftar sekarang kosong.

Menginterpretasikan hasil

Saat Anda menjalankan alur langsung, modul Azure Video Analyzer mengirimkan kejadian diagnostik dan operasional tertentu ke hub Azure IoT Edge. Kejadian ini adalah pesan yang Anda lihat di jendela OUTPUT Visual Studio Code. Mereka berisi bagian isi dan bagian applicationProperties. Untuk memahami apa yang diwakili oleh bagian ini, lihat Membuat dan membaca pesan Azure IoT Hub.

Dalam pesan berikut, properti aplikasi dan konten isi ditentukan oleh modul Azure Video Analyzer.

Kejadian diagnostik

Kejadian MediaSessionDidirikan

Saat alur langsung diaktifkan, simpul sumber RTSP mencoba untuk menyambung ke server RTSP yang berjalan pada kontainer simulator RTSP. Jika berhasil, RTSP mencetak kejadian ini:

[IoTHubMonitor] [9:42:18 AM] Message received from [avasample-iot-edge-device/avaadge]:
{
  "body": {
    "sdp": "SDP:\nv=0\r\no=- 1586450538111534 1 IN IP4 XXX.XX.XX.XX\r\ns=Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server\r\ni=media/camera-300s.mkv\r\nt=0 0\r\na=tool:LIVE555 Streaming Media v2020.03.06\r\na=type:broadcast\r\na=control:*\r\na=range:npt=0-300.000\r\na=x-qt-text-nam:Matroska video+audio+(optional)subtitles, streamed by the LIVE555 Media Server\r\na=x-qt-text-inf:media/camera-300s.mkv\r\nm=video 0 RTP/AVP 96\r\nc=IN IP4 0.0.0.0\r\nb=AS:500\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0029;sprop-parameter-sets=XXXXXXXXXXXXXXXXXXXXXX\r\na=control:track1\r\n"
  },
  "applicationProperties": {
    "dataVersion": "1.0",
    "topic": "/subscriptions/{subscriptionID}/resourceGroups/{resource-group-name}/providers/microsoft.media/videoanalyzers/{ava-account-name}",
    "subject": "/edgeModules/avaedge/livePipelines/Sample-Pipeline-1/sources/rtspSource",
    "eventType": "Microsoft.VideoAnalyzers.Diagnostics.MediaSessionEstablished",
    "eventTime": "2021-04-09T09:42:18.1280000Z"
  }
}
  • Pesan adalah kejadian Diagnostik (MediaSessionEstablished). Ini menunjukkan bahwa simpul sumber RTSP (subjek) membuat koneksi dengan simulator RTSP dan mulai menerima umpan langsung (simulasi).
  • Bagian subjek di applicationProperties mereferensikan simpul dalam topologi alur dari tempat pesan dibuat. Dalam kasus ini, pesan berasal dari simpul sumber RTSP.
  • Bagian eventType di applicationProperties menunjukkan bahwa ini adalah kejadian Diagnostik.
  • Bagian eventTime menunjukkan waktu terjadinya kejadian.
  • Bagian isi berisi data tentang kejadian Diagnostik, yang dalam kasus ini adalah detail SDP.

Kejadian operasional

Setelah alur berjalan beberapa saat, akhirnya Anda akan mendapatkan kejadian dari modul objectCounter.

[IoTHubMonitor] [5:53:44 PM] Message received from [avasample-iot-edge-device/objectCounter]:
{
  "body": {
    "count": 2
  },
  "applicationProperties": {
    "eventTime": "2020-05-17T17:53:44.062Z"
  }
}

Bagian applicationProperties berisi waktu kejadian. Kali ini modul objectCounter mengamati bahwa hasil dari modul yolov3 berisi objek-objek yang diinginkan (truk).

Anda mungkin melihat lebih banyak kejadian ini muncul saat truk lain terdeteksi di video.

Kejadian RecordingStarted

Setelah Penghitung Objek mengirimkan kejadian, Anda akan langsung melihat kejadian dengan jenis Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingStarted:

[IoTHubMonitor] [5:53:46 PM] Message received from [avasample-iot-edge-device/avaedge]:
{
  "body": {
    "outputType": "videoName",
    "outputLocation": "sample-evr-video"
  },
  "applicationProperties": {
    "topic": "/subscriptions/{subscriptionID}/resourceGroups/{resource-group-name}/providers/microsoft.media/videoanalyzers/{ava-account-name}",
    "subject": "/edgeModules/avaedge/livePipelines/Sample-Pipeline-1/sinks/videoSink",
    "eventType": "Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingStarted",
    "eventTime": "2021-04-09T09:42:38.1280000Z",
    "dataVersion": "1.0"
  }
}

Bagian subjek di applicationProperties mereferensikan simpul sink video di alur langsung, yang menghasilkan pesan ini. Bagian isi berisi informasi tentang lokasi output. Dalam kasus ini adalah nama sumber video Azure Video Analyzer tempat video direkam.

Kejadian RecordingAvailable

Seperti namanya, kejadian RecordingStarted dikirim saat rekaman dimulai, tetapi data media mungkin belum diunggah ke sumber daya video. Saat simpul sink video telah mengunggah media, simpul tersebut memancarkan kejadian jenis Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingAvailable:

[IoTHubMonitor] [[9:43:38 AM] Message received from [avasample-iot-edge-device/avaedge]:
{
  "body": {
    "outputType": "videoName",
    "outputLocation": "sample-evr-video"
  },
  "applicationProperties": {
    "topic": "/subscriptions/{subscriptionID}/resourceGroups/{resource-group-name}/providers/microsoft.media/videoanalyzers/{ava-account-name}",
    "subject": "/edgeModules/avaedge/livePipelines/Sample-Pipeline-1/sinks/videoSink",
    "eventType": "Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingAvailable",
    "eventTime": "2021-04-09T09:43:38.1280000Z",
    "dataVersion": "1.0"
  }
}

Kejadian ini menunjukkan bahwa ada cukup data yang ditulis ke sumber daya video untuk pemutar atau klien untuk memulai pemutaran video. Bagian subjek di applicationProperties mereferensikan node sink video di alur langsung, yang menghasilkan pesan ini. Bagian isi berisi informasi tentang lokasi output. Dalam hal ini, informasi tersebut adalah nama sumber daya Azure Video Analyzer tempat video direkam.

Kejadian RecordingStopped

Saat Anda menonaktifkan alur langsung, simpul sink video berhenti merekam media. Alur langsung memancarkan kejadian jenis Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingStopped:

[IoTHubMonitor] [11:33:31 PM] Message received from [avasample-iot-edge-device/avaedge]:
{
  "body": {
    "outputType": "videoName",
    "outputLocation": "sample-evr-video"
  },
  "applicationProperties": {
    "topic": "/subscriptions/{subscriptionID}/resourceGroups/{resource-group-name}/providers/microsoft.media/videoanalyzers/{ava-account-name}",
    "subject": "/livePipelines/Sample-Pipeline-1/sinks/videoSink",
    "eventType": "Microsoft.VideoAnalyzers.Pipeline.Operational.RecordingStopped",
    "eventTime": "2021-04-10T11:33:31.051Z",
    "dataVersion": "1.0"
  }
}

Kejadian ini menunjukkan bahwa rekaman telah berhenti. Bagian subjek di applicationProperties mereferensikan node sink video di alur langsung, yang menghasilkan pesan ini. Bagian isi berisi informasi tentang lokasi output. Dalam hal ini, informasi tersebut adalah nama sumber daya Azure Video Analyzer tempat video direkam.

Memutar kembali rekaman

Anda dapat memeriksa sumber daya video Video Analyzer yang dibuat oleh alur langsung dengan cara masuk ke portal Microsoft Azure dan melihat video tersebut.

  1. Buka browser web Anda, dan buka portal Microsoft Azure. Masukkan info masuk Anda untuk masuk ke portal. Tampilan default adalah dasbor layanan Anda.

  2. Temukan akun Azure Video Analyzer Anda di antara sumber daya yang Anda miliki di langganan, dan buka panel akun.

  3. Pilih Video dalam daftar Azure Video Analyzer.

  4. Anda akan menemukan video yang tercantum dengan nama sample-evr-video. Ini adalah nama yang dipilih dalam file topologi alur Anda.

  5. Pilih video tersebut.

  6. Halaman detail video akan terbuka dan pemutaran akan dimulai secara otomatis.

Catatan

Karena sumber video adalah kontainer yang menyimulasikan umpan kamera, tanda waktu dalam video terkait dengan saat Anda mengaktifkan alur langsung dan saat menonaktifkan alur langsung.

Membersihkan sumber daya

Jika Anda berniat untuk mencoba mulai cepat atau tutorial lain, simpan sumber daya yang Anda buat. Jika tidak, buka portal Microsoft Azure, buka grup sumber daya Anda, pilih grup sumber daya tempat Anda menjalankan mulai cepat ini, dan hapus semua sumber daya.

Langkah berikutnya