# MediaConvert

<!-- meta: type=aws-media-convert; location=Cloud › AWS; category=Step (action); platforms=Joomla and WordPress (where applicable) -->

## Overview

MediaConvert is a **Step (action)** in **Cloud › AWS**. Submits an H.264/AAC MP4 transcoding job to AWS Elemental MediaConvert.

When the flow reaches this step, JOrchestrator executes **MediaConvert** against your linked site or an external integration, using the field values you set on **General** and **Design**. Downstream steps can read the output payload fields defined for this node.

## Why use this node

MediaConvert is a **action step** in the **Cloud › AWS** group. Action steps run in the middle or end of a flow. They perform work on your CMS, call external services, or transform data for the next step.

Typical reasons teams add **MediaConvert** to a flow:

- Automate "MediaConvert" as part of a larger Joomla or WordPress workflow
- Replace manual aws work with a repeatable, logged flow step
- Chain with triggers, logic, and messaging nodes on the same canvas

## Example workflows

Common patterns on the canvas:

1. **Trigger or Webhook** → upstream steps → **MediaConvert** → **Send Email** or CMS update
2. **Scheduled trigger** → **MediaConvert** → **Debug** (while testing) → production action

## How to set it up

Input and output S3 URIs and MediaConvert IAM role ARN. Optionally wait for job completion.

## Good to know

Output bucket must grant MediaConvert write access via the role.

## Properties panel

The designer shows these tabs for this node:

| Tab | Purpose |
|-----|---------|
| **Info** | Plain-language description and output payload fields for downstream steps |
| **General** | Canvas label and read-only node ID |
| **AI** | Optional assistant to help draft settings from plain language |
| **Design** | Node-specific configuration fields |

### System (automatic — not edited by the user)

These fields are managed by the designer or runtime — you do not type into them directly:

| Property key | Label | Type | Required | Visible when | Notes |
|--------------|-------|------|----------|--------------|-------|
| `_nodeId` | Node ID | `node-id` | No | — | — |
| `_payloadFields` | Available Fields | `payload-panel` | No | — | — |

### User-configured — General tab

| Property key | Label | Type | Required | Visible when | Notes |
|--------------|-------|------|----------|--------------|-------|
| `label` | Label | `text` | No | — | Node label |

### User-configured — Design tab

| Property key | Label | Type | Required | Visible when | Notes |
|--------------|-------|------|----------|--------------|-------|
| `inputS3Uri` | Input S3 URI | `payload-text` | **Yes** | — | s3://my-bucket/source/video.mp4 Source file for MediaConvert (must be accessible by the service role). |
| `outputS3Destination` | Output S3 destination | `payload-text` | **Yes** | — | s3://my-bucket/transcoded/ Folder where MediaConvert writes outputs (trailing slash recommended). |
| `roleArn` | IAM role ARN | `payload-text` | **Yes** | — | arn:aws:iam::123456789012:role/MediaConvert_Default_Role MediaConvert service role with S3 read/write on input and output buckets. |
| `queueArn` | Queue ARN (optional) | `payload-text` | No | — | arn:aws:mediaconvert:us-east-1:123456789012:queues/Default |
| `mediaConvertEndpoint` | MediaConvert endpoint URL (optional) | `payload-text` | No | — | https://abc123.mediaconvert.us-east-1.amazonaws.com Leave blank to auto-discover via DescribeEndpoints for the selected region. |
| `region` | AWS region | `select` (`` \| `us-east-1` \| `us-west-2` \| `eu-west-1` \| `eu-central-1` \| `ap-southeast-1` \| `ap-northeast-1`; default: ``) | No | — | Leave blank to use the region from Joomla Node Configuration → AWS. |
| `waitForComplete` | Wait for job to complete | `checkbox` | No | — | — |
| `pollIntervalSeconds` | Poll interval (seconds) | `select` (`10` \| `15` \| `20` \| `30` \| `60`; default: `15`) | No | `waitForComplete === true` | — |
| `maxPollMinutes` | Max wait (minutes) | `select` (`15` \| `30` \| `60` \| `120` \| `240`; default: `60`) | No | `waitForComplete === true` | — |

### CMS site configuration (not on this node's properties panel)

Credentials, API keys, mailers, SMTP, and integration defaults are configured in the CMS plugin under **Node Configuration**, not per step on this node. Link the flow to a domain before testing CMS-backed fields.

## Output payload fields

After this step runs, later nodes can reference these fields using placeholders such as
`{{mediaconvert.success}}`.

| Field key | Type | Description |
|-----------|------|-------------|
| `success` | boolean | Whether the operation completed successfully. |
| `jobId` | string | Cloud transcoding or conversion job ID. |
| `jobArn` | string | AWS job ARN. |
| `status` | string | HTTP status code or operation status string. |
| `inputS3Uri` | string | S3 URI of the input media file. |
| `outputS3Destination` | string | S3 prefix where outputs are written. |
| `outputUri` | string | URI of the transcoded output file. |
| `endpoint` | string | Text value from this node's output. |
| `region` | string | AWS region used for the request. |
| `message` | string | Human-readable status, error, or result summary. |

## Validation rules

- **Input S3 URI** (`inputS3Uri`) must be filled before the flow can be saved.
- **Output S3 destination** (`outputS3Destination`) must be filled before the flow can be saved.
- **IAM role ARN** (`roleArn`) must be filled before the flow can be saved.

## Related nodes

Other steps in the same area of the palette:

- **List S3 files** (`aws-list-s3`) — Cloud › AWS
- **Log to CloudWatch** (`aws-log-cloudwatch`) — Cloud › AWS
- **Retrieve from S3** (`aws-retrieve-s3`) — Cloud › AWS
- **Upload to S3** (`aws-upload-s3`) — Cloud › AWS
