关于 Agent DVR: 插件

安装插件

安装插件的最简单方法是通过远程 Web 门户。连接后,点击左上角的服务器图标,然后在“系统”下找到“插件”。在这里,您可以从右上角的下拉菜单中选择要使用的插件,然后点击“安装”开始使用。

喜欢手动安装?没问题!您可以从源代码 构建插件,然后将构建的输出复制到Agent/Plugins/PLUGINNAME。这种方法可以更好地控制安装过程。

可用插件

Agent DVR 预装了高级视频处理功能,如 CodeProject AI 集成,以及高级物体跟踪、音频识别和计数探测器。为了进一步增强您的体验,我们提供了一系列插件,您可以在 AgentDVR 中使用以扩展其功能。

插件列表

条形码
从摄像头扫描几乎任何条形码(仅限Windows)。

触发事件:已识别条形码
支持:视频

截图
增益
对来自音频设备的音频应用实时频带滤波器。

触发事件:无
支持:音频

截图
实时延迟
为实时音频和视频添加延迟(用于体育分析)。

触发事件:无
支持:视频,音频

截图
天气
根据您的位置,在实时视频上添加天气状态叠加图层。如果天气变化(例如即将来临的风暴或超过风力阵风或温度限制),则触发事件。您可以自定义天气数据的布局和显示模式,从仅有图标到完整详细信息。
天气配置采用格式字符串来布局信息。以下是一些示例格式字符串:

完整信息:

{icon}{main}:{description}
 风力:{wind} 阵风:{gust}
 温度:{temp} 体感温度:{feelsLike}
 湿度:{humidity} 紫外线指数:{uvi}

仅图标:

{icon}

一行显示:

{main} {wind} {temp} {humidity} 紫外线指数:{uvi}

触发事件:高温,阵风,状态
支持:视频

截图
如果您在摄像头上使用类似Listen的音频插件,则需要编辑摄像头,选择音频选项卡,然后点击配置麦克风。从那里,您可以访问音频设备的插件选项卡。或者,您可以点击服务器图标,编辑设备,然后从该列表中编辑麦克风。

配置插件

准备好利用插件的强大功能了吗?只需添加设备(摄像头和/或麦克风),然后进入其编辑设置。在右上角的下拉菜单中找到“插件”选项卡。在这里,您可以选择所需的插件,然后点击“...”按钮根据您的需求进行配置。

一些插件会触发事件,您可以将操作与之关联。例如,天气插件会在阵风超过指定值时(可在插件中配置)触发“阵风”事件。编辑摄像头并导航到“操作”选项卡,您可以选择如何响应此事件 - 例如,触发警报或开始录制。只需在“如果”选择框中选择插件名称:事件 - 例如“天气:阵风”,然后分配一个操作。

创建您自己的插件

插件是您可以添加到Agent的动态模块,以增强其音频和视频处理能力。使用插件,可以在Agent中应用实时效果、叠加、触发事件和触发警报,从而实现高级自定义操作。

要开始为Agent DVR创建插件,应将其开发为.Net Standard 2.0项目,以在所有平台上兼容。首先克隆我们的开源插件:https://github.com/ispysoftware/AgentDVR-Plugins。您需要最新版本的Visual Studio来构建它们。

我们建议以演示插件为基础开始。确保您安装了最新版本的Agent。构建演示插件后,将Demo\bin\Debug\netstandard2.0目录中的所有文件复制到Agent\Plugins\Demo\目录中。重新启动Agent,编辑摄像头,转到插件选项卡。启用插件,从下拉列表中选择Demo,然后点击“...”按钮进行配置。

演示插件完全跨平台兼容,并展示了您可以使用插件构建的广泛功能。它包括实时视频效果、图形叠加、实时音量控制以及与Agent的事件子系统集成。插件菜单提供了各种输入控件操作的见解。


开发者插件说明:

配置:Agent混合使用XML、XSD和JSON进行设置存储和渲染。要编辑config.xsd文件,请使用Visual Studio的XML(文本)编辑器进行编码。在添加必要字段后,使用命令C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\xsd.exe /c config.xsd在xsd文件目录中生成C#类文件。

Agent的配置渲染和XML更新依赖于.json文件。在json目录中编辑config_en.json以进行UI显示,您可以添加多个作为选项卡呈现的部分。json中的键“bindto”字段链接到配置XML字段。Agent自动化控件渲染、设置存储和更新。

在json条目中添加"live": true将启用即时更新,无需等待“确定”按钮的点击,非常适合实时调整。'converter'字段使用Utils.cs中的'PopulateResponse'进行值格式化。

媒体支持:选择处理“video”、“audio”或两者。Main.cs中的'Supports'字段可以硬编码。

连续处理:将设备的每个视频和音频帧发送到插件进行分析或处理,正如演示中所示。

运动/警报处理:通过在演示插件中利用'ProcessEvent'方法,在运动或警报时处理帧。这样可以仅在这些事件期间进行帧处理。

自定义事件:您的插件中的'GetCustomEvents'方法应返回其生成的自定义事件列表。然后,这些事件将出现在Agent UI的“If”列表的“Actions”下。使用'Result'项触发这些事件,指定操作名称和可选的MSG、Tag、Filename和AIJSON。

警报、检测和标记:通过添加具有“alert”或“detect”eventName的Result来引发警报或检测事件。使用'tag'eventName对正在进行的录制进行标记,并根据需要设置标记。

API调用:Agent使用设备信息和本地服务器端口初始化插件,对于设备的API命令非常有用。属性AppDataPath和AppPath也用于显示或文件保存位置。

分发:创建了一个酷炫或有用的插件?与我们分享并为社区做出贡献!