Ingest & Add Jobs

Every footage job runs on a UFootageCaptureData asset. Getting raw footage into the project as that asset is ingest, and Epic's Live Link Hub — which bundles Capture Manager — is the engine that does it. Getting assets into the queue is Add Jobs..., the single entry point in the MHA Manager toolbar — or the auto-queue watcher, which needs no dialog at all.

Live Link Hub

Live Link Hub's Capture Manager ingests takes straight into the project as Capture Data
Live Link Hub — Capture Manager view with takes selected, ingesting into the Unreal project

Live Link Hub is Epic's first-party capture application and the recommended input for MHA Manager. It bundles Capture Manager: connect your capture source (Live Link Face on iPhone, a stereo head-mounted camera, or an existing take archive), import the takes, and ingest them into your Unreal project. Each take lands in the Content Browser as a UFootageCaptureData asset under /Game/CaptureManager/Imports/<Actor>/ — exactly what every job runs on, with no manual asset assembly.

Drive it from Live Link Hub's own window, or from the External Footage source of the Add Jobs dialog below. Either way, turn on Auto-Queue Ingested Takes and every take Live Link Hub delivers is classified and queued automatically — capture in one window, watch jobs appear in the other.

Live Link Hub is a separate Epic download and depends on the Live Link / Virtual Production plugins. See Epic's Live Link Hub and MetaHuman Animator capture documentation for device setup and recording — that side of the workflow is Epic's, not this plugin's.

The three sources

The Add Jobs dialog: pick a source at the top, tick takes in the tree below
Add Jobs dialog with the Source picker — Project Assets, Audio, External Footage (Live Link Hub) — and the Project Assets tree of FootageCaptureData assets below
Source What it queues
Project Assets One job per FootageCaptureData asset already in the project. The default panel.
Audio Audio-driven jobs from project SoundWaves, WAV files on disk, or a Wwise container. Requires UE 5.8.
External Footage (Live Link Hub) Raw take folders on disk, scanned and then ingested by Live Link Hub. Requires the CaptureManagerEditor plugin (UE 5.7+) and an installed Live Link Hub.
Nothing is queued until you confirm (or double-click a single take). The dialog only collects a selection — the batch tab runs the enqueue afterwards, so cancelling leaves the queue untouched.

Project Assets

Every FootageCaptureData asset in the project, shown as a tree that mirrors its content path — so an Imports/<Actor>/<Take> layout reads as actor folders with takes underneath. Search filters the tree, checkboxes pick takes (a folder checkbox toggles everything under it), each row is labelled Stereo or Mono, and the footer counts what is checked against the total. Double-clicking a take queues just that one.

Show thumbnails (below the source picker, off by default) adds a first-frame preview to each row. It is off because decoding a frame per take is slow on large projects; thumbnails are only decoded once the box is ticked.

Each checked take becomes one job, typed automatically: path-name tokens classify grid/calib as Stereo Calibration and identity/dna as Identity Create, while Mono and Stereo come from the asset itself. See Naming Conventions for the patterns and Job Types for what each one does.

Audio

Audio jobs need no footage, no calibration, and no identity — a voice track is the whole input. Three sub-sources feed them:

Sub-source Behavior
Project Searches a content folder recursively and queues one job per SoundWave asset found. Each job references the asset directly — nothing is copied or re-imported.
Import Searches a root folder on disk recursively and queues one job per WAV file. The WAVs stay where they are; each job keeps only its path and imports the wave beside the Performance at solve time.
Wwise Queues one job per Sound under a Wwise container, resolved live over WAAPI. See Wwise Audio.

Whichever sub-source is active, the preview list below it is the same: every discovered item with a checkbox, a check-all toggle, and a checked count. Items already in the queue are skipped, so re-running against the same folder adds nothing.

External Footage (Live Link Hub)

External Footage: the scanned tree groups takes by folder, with kind and actor per take
Add Jobs dialog on the External Footage source: footage root, fallback actor, schema and destination line, and the scanned take tree with Kind / Take / Actor columns

For footage that is not in the project yet. Point the dialog at a footage root on disk; it walks the folder itself — a plain filesystem scan, because Live Link Hub is not running yet — and classifies every take it finds. You check the ones to bring in, and the confirmed set is handed to Live Link Hub as ingest device requests.

Take kind What the scan matched
Stereo A folder holding two videos whose base names match the schema's stereo patterns.
Mono A single video file.
Archive A take folder in an existing capture archive layout.
Audio A loose WAV, when Include .wav audio as audio takes is on. Scan-only — audio takes are queued directly in the editor and never go through Live Link Hub. A WAV that belongs to a stereo take is always that take's audio track, never a take of its own.

Takes the engine would silently drop are still listed, greyed out with the reason — so a mislaid take shows up as a problem instead of just going missing. The actor for each take comes from its folder depth (see the schema below); takes that sit too shallow to carry an actor segment fall back to the dialog's fallback actor field.

Describing your footage layout

Out of the box, the scan assumes each take is a folder, its parent folder names the actor, and footage is .mp4 or .mov. If your stage lays footage out differently, ship the rules alongside it: drop a file named MHAIngestSchema.json at the footage root and the dialog picks it up automatically, reporting which rules it used.

{
  "version": 1,
  "path_template": "{actor}/{session}/{take}",
  "video_extensions": ["mp4", "mov"],
  "stereo_patterns": ["*_top", "*_bot"]
}
Key Default Meaning
version 1 Schema version. Anything other than 1 is refused; the built-in defaults are used and the dialog shows a warning.
path_template {actor}/{take} Matched from the end of the path: {take} is always the last folder, and only {actor}'s distance above it matters. {actor}/{take} therefore means "the take's parent folder", however deep the root is; an Actor / Session / Take stage ships {actor}/{session}/{take}. Leave {actor} out entirely and every take uses the dialog's fallback actor.
video_extensions ["mp4", "mov"] Which file extensions count as footage. Leading dot optional, case ignored.
stereo_patterns (empty) Wildcards that a folder's two video base names must match, one each, for the folder to count as a stereo take — e.g. *_top and *_bot for a top / bottom head-mounted rig. Case is ignored. Empty accepts any folder holding exactly two videos, the same rule the engine's own auto-discovery uses.
Only the keys you include are overridden; everything else keeps its default. A file that cannot be parsed falls back to the built-in defaults instead of failing the scan, and the dialog says so.

Auto-queue on ingest

The Ingest section of Global Settings
Global Settings, Ingest section: Auto-Queue Ingested Takes, Auto-Start Batch on Ingest, and Watch Folder

As takes arrive from Live Link Hub / Capture Manager, the Ingest section of Global Settings can watch the project and queue them the moment they appear in the Content Browser — no dialog needed:

Setting What it does
Auto-Queue Ingested Takes Watches the project for newly created Footage Capture Data assets and adds each to the queue automatically. Takes already in the queue are not re-added.
Auto-Start Batch on Ingest Starts the batch when auto-queued takes arrive and no batch is running. Takes arriving mid-batch are queued and started on the next idle trigger.
Watch Folder (optional) A content-path prefix to limit the watch, e.g. /Game/CaptureManager/Imports. Empty watches everywhere under /Game.

What happens to a queued take

However a take enters the queue, it is classified automatically and readied to process:

  • Its job type is derived from the take — path-name tokens drive grid/calib -> Stereo Calibration and identity/dna -> Identity Create, while mono / stereo / audio come from the asset itself.
  • Mono takes get a first-frame framing probe that auto-enables body tracking when the whole body is in shot.
  • Dependent assets (calibration, identity) are auto-discovered where the folder layout allows, so a stereo take lands ready or clearly marked for what it still needs.
Keep grid, calib, identity, and dna out of folder and take names that are not those take types — those tokens drive classification, and a misnamed performance take will be queued as the wrong job. See Naming Conventions. Once jobs are in the queue, Per-Job Options covers what you can change per take before starting the batch.