Agent DVR: 插件
安裝插件
安裝插件的最簡單方法是通過遠程網絡門戶。連接後,點擊左上角的服務器圖標,然後在“系統”下導航到“插件”。在這裡,您可以從右上角的下拉菜單中選擇要使用的插件,然後點擊“安裝”開始使用。
偏好手動安裝?沒問題!您可以從源代碼 構建插件,然後將構建的輸出複製到Agent/Plugins/PLUGINNAME。這種方法可以讓您更好地控制安裝過程。
可用插件
Agent DVR擁有先進的視頻處理功能,如CodeProject AI集成,以及高級物體跟踪、音頻識別和計數檢測器。為了進一步提升您的體驗,我們提供了一系列插件,您可以在AgentDVR中使用以擴展其功能。
插件列表
實時延遲
天氣
根據您的位置,在實時視頻上添加天氣狀態覆蓋。如果天氣變化(例如即將來臨的風暴或超過風力或溫度限制),則觸發事件。您可以自定義天氣數據的佈局和顯示模式,從僅有圖標到完整詳細信息。
完整信息:
{icon}{main}:{description} 風力:{wind} 陣風:{gust} 溫度:{temp} 體感溫度:{feelsLike} 濕度:{humidity} UVI:{uvi}
僅圖標:
{icon}
單行顯示:
{main} {wind} {temp} {humidity} UVI:{uvi}
觸發事件:高溫,陣風,狀態
支援:視頻
配置插件
準備好利用插件的功能了嗎?只需添加設備(攝像機和/或麥克風),然後進入其編輯設置。在右上角的下拉菜單中尋找「插件」選項卡。在這裡,您可以選擇所需的插件,並點擊「...」按鈕將其配置為符合您的需求。
一些插件會觸發事件,您可以將動作附加到這些事件上。例如,天氣插件在突風超過指定值時(可在插件中配置)會觸發「Gust」事件。編輯攝像機並轉到「動作」選項卡,您可以選擇如何回應此事件-例如,響起警報或開始錄製。只需在「如果」選擇框中選擇插件名稱:事件-即「天氣:Gust」,然後指定一個動作。
創建您自己的外掛程式
插件是您可以添加到Agent DVR的動態模組,以增強其音頻和視頻處理能力。使用插件,可以在Agent DVR中應用實時效果、覆蓋物、觸發事件並觸發警報,從而實現高級自定義操作。
要開始為Agent DVR創建插件,請從https://github.com/ispysoftware/AgentDVR-Plugins克隆我們的開源插件。您需要Visual Studio的最新版本來構建它們。
我們建議從演示插件開始。請確保您已安裝最新版本的Agent。構建演示插件後,將所有文件從輸出文件夾複製到Agent\Plugins\Demo\。重新啟動Agent DVR,編輯一個攝像機,然後轉到插件選項卡。啟用插件,從下拉菜單中選擇演示,並單擊“...”按鈕進行配置。
演示插件完全跨平台兼容,展示了您可以使用插件構建的豐富功能。它包括實時視頻效果、圖形覆蓋、實時音量控制以及與Agent DVR的事件子系統集成。插件菜單提供了各種輸入控件操作方式的見解。
開發人員的插件注意事項:
配置:Agent DVR 使用 JSON 和一個類文件進行設置存儲。要配置設置,請編輯 config.cs 文件。
Agent DVR 的配置渲染依賴於 .json 文件。編輯 json 目錄中的 config_en.json 以進行 UI 顯示,您可以添加多個作為選項卡呈現的部分。json 中的 'bindto' 鍵字段與配置字段相關聯。Agent DVR 自動化控制渲染、設置存儲和更新。
將 "live": true
添加到 json 項目中可立即更新,無需等待點擊 OK 按鈕,這對於實時調整非常有用。'轉換器' 字段使用 Utils.cs 中的 'PopulateResponse' 進行值格式化。
媒體支持: 選擇處理 "視頻"、"音頻" 或兩者。Main.cs 中的 'Supports' 字段可以是硬編碼的。
持續處理: 來自設備的每個視頻和音頻幀都會被發送到插件進行分析或處理,正如演示中所示。
運動/警報處理: 通過在演示插件中利用 'ProcessEvent' 方法在運動或警報時處理幀。這允許僅在這些事件期間進行幀處理。
自定義事件: 您的插件中的 'GetCustomEvents' 方法應該返回一個生成的自定義事件列表。這些事件將出現在 Agent DVR UI 的 'If' 列表下的操作中。使用 'Result' 項目來觸發這些事件,指定動作名稱和可選的 MSG、Tag、Filename 和 AIJSON。
警報、偵測和標記: 通過添加具有 "alert" 或 "detect" 事件名稱的 Result 來引發警報或偵測事件。使用 'tag' 事件名稱標記正在進行的錄製,並根據需要設置標籤。
API 呼叫: Agent DVR 會使用設備信息和本地伺服器埠來初始化插件,這對於設備的 API 命令非常有用。屬性 AppDataPath 和 AppPath 也會被設置為顯示或文件保存位置。
分發: 創建了一個很酷或很有用的插件嗎?與我們分享,並為社區做出貢獻!