Skip to content

Plugin Quick Start Guide

This guide helps you get started with CVEDIA-RT plugins quickly.

What are Plugins?

CVEDIA-RT plugins are modular components that extend the platform's functionality. Each plugin provides specific capabilities like:

  • Input plugins - Connect to cameras, video files, and streams
  • Inference plugins - Run AI models on various hardware
  • Output plugins - Export data to different destinations
  • Processing plugins - Transform and analyze data
  • Tracking plugins - Track objects and analyze behavior

Basic Plugin Usage

1. Loading a Plugin

Plugins are loaded automatically when CVEDIA-RT starts. They are discovered from the Plugins/ directory.

2. Using Plugins in Lua Scripts

Factory signatures and methods are plugin-specific. Do not use a placeholder factory name or assume that every plugin supports a generic configure method. Consult the generated Lua API for the installed RT release before adapting an example.

-- Source-backed Input example.
local instance = api.thread.getCurrentInstance()
local input = api.factory.input.create(instance, "VideoInput")
input:saveConfig({uri = "rtsp://camera.example.com/stream"})
input:setSourceFromConfig()

The release-pinned Input API exposes create, saveConfig, and setSourceFromConfig as shown. Other plugins have different factories and contracts; the category pages below provide plugin-specific guidance. Check each page's evidence status and the generated API for the installed release before adapting an example.

Plugin Categories

Most Common Plugins

Use Case Recommended Plugin Quick Setup
IP Camera Input GStreamerReader Set RTSP URL
Video File Input FFmpegReader Set file path
NVIDIA GPU Inference TensorRT (via Engines) Set model path
Object Tracking Tracker Enable tracking
Data Export WriteData Set output format
MQTT Integration MQTT Configure broker

By Platform

Windows

  • All plugins except platform-specific ones
  • Use Screencap for desktop capture

Linux

  • All plugins available
  • Platform-specific plugins for embedded devices

NVIDIA Jetson

Configuration Patterns

JSON Configuration

Most plugins accept JSON configuration:

{
  "pluginName": {
    "parameter1": "value1",
    "parameter2": 123,
    "nested": {
      "option": true
    }
  }
}

Lua Configuration

The object method used to apply configuration is plugin-specific. For Input, use saveConfig as shown above; do not substitute the generic example below as executable code.

local config = {
  parameter1 = "value1",
  parameter2 = 123,
  nested = {
    option = true
  }
}

-- Pass this table only to the configuration method documented by the target plugin.

Common Workflows

Basic Video Analytics Pipeline

Build a pipeline by selecting compatible Input, Inference, Tracking, Zone, and Output plugins, then use the generated API for each installed component. Generic cross-plugin snippets are intentionally omitted because factory signatures and configuration methods differ.

Multi-Camera Setup

Create each Input module with api.factory.input.create, save its source configuration with saveConfig, and call setSourceFromConfig. Confirm the companion Inference and Output APIs in the generated release-specific interface before building a multi-camera workflow.

Troubleshooting

Plugin Not Loading

  1. Check plugin is in Plugins/ directory
  2. Verify dependencies are available
  3. Check CVEDIA-RT logs for errors

Configuration Issues

  1. Validate JSON syntax
  2. Check parameter names match documentation
  3. Verify data types (string vs number vs boolean)

Performance Issues

  1. Check hardware requirements
  2. Reduce input resolution or frame rate
  3. Use appropriate inference precision (FP16 vs FP32)

Next Steps

  1. Browse by category - Find plugins for your specific needs
  2. Check examples - Look at plugin-specific examples
  3. Read configuration docs - Understand all available options
  4. Join community - Get help from other users

See Also