Ai-Media MXL Live Captions for AMPP
Features and Setup
Ai-Media MXL Live Captions is a Grass Valley AMPP application that adds live closed captions, and optionally a Lexi voice track, to an MXL program feed. In the current AMPP system, MXL components like this sit between AMPP Output - MXL and AMPP Input - MXL workflows on the same processing node:
AMPP Output MXL → Ai-Media MXL Live Captions → AMPP Input MXL
↕
Ai-Media iCap / Lexi (cloud)Video passes through untouched. Captions are inserted into the ancillary data flow, with upstream ancillary data including other languages of captions passed through. Audio either passes through, or is replaced with a Lexi voice track if you turn that on.
Features at a Glance
| Feature | What it gives you |
|---|---|
| Live captions via iCap | Captions from Ai-Media's iCap network (Lexi automatic captions, human captioners, or both) inserted into the program's ancillary data in real time. |
| Two caption formats | CEA-608/708 (SMPTE ST 334) for North American / ATSC workflows, or OP-47 / EBU Teletext for EMEA, Australia and other Teletext markets. You can switch between them on a running workload with no restart. |
| Up to six caption services | Six caption services (languages), numbered 1-6, e.g. English plus translations. |
| Lexi and Lexi Translate job control | Start, stop, pause and resume your Lexi and Lexi Translate cloud jobs from inside AMPP, and see whether each one is running. |
| Lexi voice track | Replace the program audio on the output with a Lexi voice track, for example a Lexi Translate synthesized voice in another language. |
| Test captions | Looping test captions so you can check the caption path end to end before any live captions are connected. |
| Status for tally and monitoring | iCap connection status, MXL input health, and per-language caption activity, available on the Control page and over AMPP Control for tally lights. |
| Existing captions preserved | Caption data already in the incoming feed is carried through when nothing new is being captioned, and other ancillary data passes through unchanged. |
| Program always passes through | If a caption or voice feature can't run (no iCap login, an unsupported audio format, a cloud outage), only that feature stops. Program video and audio keep flowing. |
Before You Start
You need:
- An AMPP Linux processing node that runs AMPP Output - MXL and AMPP Input - MXL, with the MXL domain at
/dev/shm/mxlregistered under System Manager → Docker volumes. The path is fixed; it must be the same one Output - MXL and Input - MXL use. - An AMPP Output - MXL workload publishing the program's video, audio and ancillary data flows. Note the three flow UUIDs.
- For live captions: an iCap encoder account (company, username and password) and iCap access codes for the caption services you'll use.
- For Lexi job control or the voice track: an EEGCloud API key and your Lexi / Lexi Translate job IDs from
eegcloud.tv.
iCap and EEGCloud are two separate logins. The iCap account connects this workload to the caption network. The EEGCloud API key lets AMPP start and stop your Lexi jobs.
Setting It Up
1. Add the Workload
In Resource Manager → Add Workload, pick a Linux node and choose Ai-Media MXL Live Captions. Start Output - MXL first, so the input flows already exist.
| Setting | Required? | What to enter |
|---|---|---|
| Input video / audio / ancillary flow UUID | Yes | The three flow UUIDs published by AMPP Output - MXL. |
| Output video / audio / ancillary flow UUID | Yes | Three new UUIDs of your choice for the captioned output flows. Each must be unique on the node. |
| iCap Company / Username / Password | For live captions | Your iCap encoder account. Leave Company empty to run without iCap (for example, test captions only). |
| EEGCloud (Lexi/Translate) API Key | For Lexi job control | Your EEGCloud API key. Only the key, not a personal EEGCloud login. |
| Test Captions? | No | Start with looping test captions on. You can also toggle this later. |
| Substitute Audio Flow with Lexi Voice? | No | Start with the Lexi voice track replacing program audio. You can also toggle this later. |
| GV MXL Input Compatibility Mode? | Yes, for AMPP | Currently required to bridge a gap between the MXL standard for ancillary data packing and the GV MXL Input parser. Grass Valley has acknowledged the issue in MXL Input. Turn on for all AMPP use (it is on by default) until Ai-Media or Grass Valley support confirms it is no longer needed. Without it, AMPP Input MXL cannot decode the inserted captions. |
Note: The iCap password and EEGCloud API key fields are plain text fields in AMPP today, not masked secret fields, and AMPP shows them again when you reload or relaunch the workload. Treat access to the workload settings accordingly.
2. Connect AMPP Input - MXL
On AMPP Input - MXL, use Discover Flow and select the group named <your workload name>_AIM. It contains the captioned video, audio and ancillary data flows together, so you don't need to type the three output UUIDs.
3. Choose the Caption Format
New workloads output CEA-608/708. For Teletext markets, open the Config page (see Where to find the controls), set Caption Coding to OP-47, and fill in a row per caption service:
| Field | Example | Notes |
|---|---|---|
| Service | 1 | Caption service 1-6. Services must run in order from 1 with no gaps (1 and 2 is fine; 1 and 3 is not). |
| Page (hex) | 801 | Teletext magazine and page, 100-8ff. |
| Language | eng | ISO 639 language code. |
Optional Teletext settings: which field(s) carry OP-47 on interlaced video (default both), and whether to disable Teletext terminators (default off, i.e. terminators on).
The change takes effect immediately, with no restart, and the workload remembers it across restarts.
To check Teletext captions in AMPP, set the Caption Decoder to Teletext (WST) mode and give it the same page number. The decoder does not detect the page by itself.
4. Check the Caption Path with Test Captions
Turn on Test Captions on the Config page, the Control page, or the Resource Manager Control tab. Looping test captions appear on the output in whichever format you selected. When live captions arrive from iCap, test captions switch off automatically; turn them back on if you want them again.
5. Go Live
With iCap credentials set, the workload logs in to iCap as an encoder, sends program audio to the caption network, and inserts the captions it receives. Start your Lexi jobs from the Control page (below), or schedule captioners as usual in iCap.
Lexi and Lexi Translate Job Control
Assign each Lexi or Lexi Translate job to one of the six caption services on the Config page (Lexi / Translate Job IDs). Paste the job ID from eegcloud.tv. You don't need to say whether it's a Lexi or a Translate job; AMPP works that out from the ID.
From the Control page you can then:
- Start / Stop a single job, or Start All / Stop All.
- See each job's State:
N/A(no job assigned),inactive(assigned but not running),on(running), orunknown(status couldn't be checked), plus whether it's Paused. - See whether AMPP can reach EEGCloud and whether the API key was accepted.
Over AMPP Control you can also pause / resume a Lexi job and send a speaker change. Lexi Translate jobs don't support pause, resume or speaker change.
Jobs follow the workload. When you stop the workload, AMPP turns off its assigned Lexi jobs, so you're not left with jobs running against a workload that isn't there. When the workload starts again, it turns back on the jobs you had started. If the workload is killed rather than stopped cleanly, jobs may keep running; stop them from the Control page or eegcloud.tv.
Creating Lexi jobs and choosing their languages and voices is done on
eegcloud.tv, not in AMPP.
Lexi Voice Track
Turn on Lexi Voice Substitution (Config page, or Substitute Audio Flow with Lexi Voice? at launch) to replace the program audio on the output flow with the Lexi voice feed, for example a Lexi Translate job producing speech in another language.
- The voice is mono, sent to both channels of the output audio.
- When iCap is disconnected or no voice is being sent, the output audio is silence, not the original program audio.
- The original program audio is still sent to iCap for captioning, and is still available from AMPP Output - MXL for any other use.
- Toggling it takes effect on the running workload without affecting video or captions.
The voice data will come from a Lexi Translate job running on S2 which must have voice settings enabled in its instance page on EEGCloud.
Status and Tally
The Control page and AMPP Control show:
| Status | Meaning |
|---|---|
| iCap status | inactive (no credentials), connection pending, authentication failed, or connected. |
| iCap captions active | Captions have arrived from iCap on at least one service in the last 16 seconds. |
| Caption activity by language | The same, per caption service 1-6. Meant for tally lights. |
| MXL input active | Video, audio and ancillary data each received within the last 2 seconds. |
| Test captions, caption coding, Lexi job states | The current settings above. |
| Version | The application version the workload is running. |
AMPP Control integrations can subscribe to the encoderstate and captionactivity notifications. Each command's full parameters are documented in the AMPP Control UI.
Where to Find the Controls
| Where | What it's for |
|---|---|
| Resource Manager workload → Control tab | Quick runtime controls through AMPP Control. |
The workload's link in Resource Manager, or https://<your AMPP platform>/mocha/application/<workload id>/config (and /control) | The Config page (credentials, caption format, Lexi job IDs, toggles) and Control page (status, Lexi start/stop). |
AMPP Control (/ampp/control/) | The full command set, for integrations and automation. |
The Config and Control pages ask you to sign in with your AMPP login.
What's Remembered Across a Restart
| Setting | Survives a workload restart? |
|---|---|
| Caption format and Teletext pages | Yes |
| Test captions on/off | Yes |
| Lexi voice track on/off | Yes |
| Lexi job IDs, and which jobs you had started | Yes |
| iCap credentials changed on the Config page | No — reverts to the launch settings. Update the workload settings for a permanent change. |
| EEGCloud API key changed on the Config page | No — same as iCap credentials. |
Requirements and Limitations
- Video: 23.976, 29.97 and 59.94 fps progressive essence have been tested.
- Audio: 32-bit float MXL audio, which is what AMPP Output - MXL publishes. If the audio flow is in another format, captioning audio and the voice track switch off with an error, and program audio still passes through.
- Captioning audio: channel 1 of the program audio flow is sent to iCap.
- Flow setup: the three input flow UUIDs are entered by hand at Add Workload. Only the output side supports Discover Flow.
- Credentials: the iCap password and EEGCloud API key are stored as plain text in the workload settings (see Add the workload).
- Lexi servers: Lexi control always uses
eegcloud.tv. On-premises Lexi isn't supported yet.