Agent DVR: 플러그인
플러그인 설치하기
플러그인을 설치하는 가장 쉬운 방법은 원격 웹 포털을 통해 설치하는 것입니다. 연결된 후, 왼쪽 상단의 서버 아이콘을 클릭하고 시스템 아래에 있는 '플러그인'으로 이동합니다. 여기에서 오른쪽 상단의 드롭다운 메뉴에서 사용하려는 플러그인을 선택하고 '설치'를 클릭하여 시작할 수 있습니다.
수동으로 설치하려는 경우에도 문제 없습니다! 플러그인을 소스에서 빌드 한 다음 빌드된 출력을 Agent/Plugins/PLUGINNAME에 복사할 수 있습니다. 이 방법을 사용하면 설치 과정을 더욱 세밀하게 제어할 수 있습니다.
사용 가능한 플러그인
Agent DVR에는 CodeProject AI 통합을 비롯한 고급 비디오 처리 기능과 고급 객체 추적, 오디오 인식 및 카운팅 감지기와 같은 기능이 탑재되어 있습니다. 사용자 경험을 더욱 향상시키기 위해, AgentDVR에서 기능을 확장할 수 있는 다양한 플러그인을 제공합니다.
플러그인 목록
바코드
게인
실시간 지연
날씨
위치에 기반하여 실시간 비디오에 날씨 상태 오버레이를 추가합니다. 날씨가 변화하는 경우 - 예를 들어 폭풍이 오거나 바람 세기나 온도 제한이 초과되는 경우 - 이벤트를 발생시킵니다. 아이콘만으로부터 전체 세부 정보까지 날씨 데이터의 레이아웃과 표시 모드를 사용자 정의할 수 있습니다.
전체 정보:
{icon}{main}: {description} Wind: {wind} Gust: {gust} Temp: {temp} Feels Like: {feelsLike} Humidity: {humidity} UVI: {uvi}
아이콘만:
{icon}
한 줄:
{main} {wind} {temp} {humidity} UVI: {uvi}
Raised 이벤트: 고온, 돌풍, 상태
지원: 비디오
플러그인 설정하기
플러그인의 기능을 활용할 준비가 되셨나요? 단순히 장치(카메라 및/또는 마이크)를 추가하고 편집 설정으로 이동하세요. 오른쪽 상단의 드롭다운에서 플러그인 탭을 찾으실 수 있습니다. 여기에서 원하는 플러그인을 선택하고 필요에 맞게 구성하기 위해 "..." 버튼을 클릭하면 됩니다.
일부 플러그인은 이벤트를 발생시켜 해당 이벤트에 대한 작업을 할 수 있습니다. 예를 들어, 날씨 플러그인은 설정 가능한 값(플러그인에서 구성 가능)을 초과하는 강풍이 발생할 때 Gust 이벤트를 발생시킵니다. 카메라를 편집하고 작업 탭으로 이동하면 이에 대응할 수 있는 옵션을 제공합니다. 예를 들어, 경보음을 울리거나 녹화를 시작할 수 있습니다. 단순히 플러그인 이름: 이벤트 - 예를 들어 Weather: Gust를 If 선택 상자에 선택하고 작업을 할당하면 됩니다.
자신만의 플러그인을 생성하세요.
플러그인은 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 (Text) 편집기를 사용하고 인코딩을 설정하세요. 필요한 필드를 추가한 후 xsd 파일 디렉토리에서 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\xsd.exe /c config.xsd
명령을 사용하여 C# 클래스 파일을 생성하세요.
Agent의 구성 렌더링 및 XML 업데이트는 .json 파일에 의존합니다. UI 표시를 위해 json 디렉토리의 config_en.json을 편집하세요. 여러 섹션을 탭으로 렌더링할 수 있습니다. json의 'bindto' 필드는 config XML 필드와 연결됩니다. Agent는 컨트롤 렌더링, 설정 저장 및 업데이트를 자동화합니다.
json 항목에 "live": true
를 추가하면 OK 버튼 클릭을 기다리지 않고 즉시 업데이트할 수 있으므로 실시간 조정에 적합합니다. 'converter' 필드는 값 포맷팅을 위해 Utils.cs의 'PopulateResponse'를 활용합니다.
미디어 지원: "video", "audio" 또는 둘 다를 처리할지 선택하세요. Main.cs의 'Supports' 필드를 하드코딩할 수 있습니다.
지속적인 처리: 장치에서 모든 비디오 및 오디오 프레임이 플러그인으로 분석 또는 처리를 위해 전송됩니다. 이는 데모에서 설명한 대로 프레임 처리를 이벤트 중에만 수행합니다.
모션/경고 처리: 데모 플러그인의 'ProcessEvent' 메서드를 활용하여 모션 또는 경고 시 프레임을 처리하세요. 이를 통해 이벤트 중에만 프레임 처리를 수행할 수 있습니다.
사용자 정의 이벤트: 플러그인의 'GetCustomEvents' 메서드는 생성하는 사용자 정의 이벤트 목록을 반환해야 합니다. 이러한 이벤트는 Agent UI의 'If' 목록에서 'Actions' 아래에 표시됩니다. 'Result' 항목을 사용하여 이러한 이벤트를 트리거하고 작업 이름 및 선택적인 MSG, Tag, Filename 및 AIJSON을 지정하세요.
경고, 감지 및 태그: "alert" 또는 "detect" 이벤트 이름을 가진 Result를 추가하여 경고를 발생시키거나 이벤트를 감지하세요. 'tag' 이벤트 이름을 가진 Result로 지속적인 녹화에 태그를 지정하세요.
API 호출: Agent는 장치 정보와 로컬 서버 포트로 플러그인을 초기화합니다. 이는 장치에 대한 API 명령에 유용합니다. 속성 AppDataPath 및 AppPath도 표시 또는 파일 저장 위치로 설정됩니다.
배포: 멋진 또는 유용한 플러그인을 만들었나요? 우리와 공유하여 커뮤니티에 기여하세요!