Configuration

Moderator can read its initial configuration from a text file. By default it tries to use /usr/local/antmedia/conf/moderator.conf as a global file for all applications, unless a more specific file is found with the name pattern /usr/local/antmedia/conf/moderator-[lowercased application name].conf.

If none of these configuration files exist, default settings will be used.

The location of the configuration file can be overridden using the JVM argument -Dmoderator.config.file=/var/tmp/my.conf which can be specified in the AMS service startup file.

The configuration file is parsed using TypeSafe Config library. The simplest syntax is treating the file as key=value pairs per line or key = [value1, value2] for lists.

Below is the list of configuration values parsed from the config file.

moderator.enabled

Enables or disables the moderation functionality for the plugin.

Values: true, false Default: true

Example:

moderator.enabled = true

moderator.labels

The list of moderation labels that should trigger the moderation action.

Values: Smoking, see Amazon Rekognition documentation for the complete list Default: no default

Example:

moderator.labels = [ "Smoking", "Alcohol" ]

moderator.frame.sampling.rate

Defines how many frames to skip before processing one. For example, a value of 30 means every 30th frame will be processed, which helps reduce AWS costs while maintaining effective moderation.

Values: Positive integers (1, 2, 3, …) Default: 30

Example:

moderator.frame.sampling.rate = 30

moderator.aws.region

Specifies the AWS region where the Rekognition service is located.

Values: Valid AWS region identifiers Default: us-east-1

Example:

moderator.aws.region = us-east-1

moderator.aws.access.key.id

AWS access key ID for authentication with AWS services.

Values: Valid AWS access key ID string

moderator.aws.secret.access.key

AWS secret access key for authentication with AWS services.

Values: Valid AWS secret access key string

moderator.confidence.threshold

Minimum confidence threshold for moderation results. Results below this threshold will be considered unreliable and may be filtered out.

Values: Decimal numbers between 0.0 and 1.0 Default: 0.7

Example:

moderator.confidence.threshold = 0.8

moderator.stream.ids

List of specific stream IDs to moderate. If empty, all streams will be moderated.

Values: List of stream ID strings or single stream ID string Default: [] (empty list, which means all streams will be moderated)

Example:

# Single stream
moderator.stream.ids = stream123

# Multiple streams
moderator.stream.ids = ["stream123", "stream456", "stream789"]

moderator.action

Action to take when moderation detects inappropriate content.

Values: String describing the action Default: log

Example:

moderator.action = log

moderator.notify.webhook.url

URL for webhook notifications when moderation events occur.

Values: Valid HTTP/HTTPS URL string or null Default: null

Example:

moderator.notify.webhook.url = https://example.com/webhook/moderator

Payload:

{   "streamId": "myStream",
    "image": "null or base64 encoded frame if moderator.notify.webhook.include.image is enabled",
    "labels": [
      {
        "confidence": 20.9185,
        "label": "Smoking"
      }
    ],

}

moderator.notify.webhook.include.image

Flag to indicate if the notification webhook payload should include a base64 encoded JPEG screenshot

Values: true, false Default: false

Example:

moderator.notify.webhook.include.image = true

moderator.capture.image

Flag to indicate if the screenshot of the moderated stream should be saved to disk in JPEG format. It is effective only if the moderation action is stop. The directory where the file is saved is controlled by moderator.capture.image.directory

Values: true, false Default: false

Example:

moderator.capture.image = true

moderator.capture.image.directory

The directory where moderated screenshots are saved if moderator.capture.image is enabled. Created automatically if not existing.

Default: . (ie. Ant Media Server installation directory) Example:

moderator.capture.image.directory = /var/tmp/moderation