Guides

    AAF and XML Roundtrips With Generated Media

    Transcode on ingest, XML for picture, AAF for audio, and the handles a mixer needs when the media started as generated MP4s.

    Versely Team8 min read

    Premiere and Resolve will import a generated MP4. That is not a roundtrip. A roundtrip is a timeline that leaves, comes back from colour or mix, and still conforms. Long-GOP H.264 with AAC, missing colour tags, and filenames that change on regen is how that roundtrip becomes a bin of media-offline.

    Adobe documents two export paths that matter here: Final Cut Pro XML for picture interchange, and AAF for Avid Media Composer and Avid Pro Tools. Adobe's own AAF page is explicit that those files have not been tested with other AAF implementations. Resolve imports AAF, EDL, and XML, and can deliver a Premiere XML. Those are the pipes. Generated media has to be rewritten before it enters them.

    Versely's editor is EDL-based, and the edl it stores is the cloud editor's own project format, not an interchange file. Saving a draft keeps a re-renderable cut on Versely. It does not hand a colourist or a mixer a timeline. The actual roundtrip starts after you have exported media they can open.

    Why generated MP4s choke a roundtrip

    The file the model gave you is a delivery codec wearing an editorial filename.

    • Long-GOP H.264. Fine for playback. Painful to scrub, painful to reverse, painful when a colourist needs to step a frame. Intra-frame finishing codecs (ProRes, DNxHR) exist because this is a solved problem.
    • Edit lists and a moov atom at the tail. Premiere and Resolve can import the file and still show a one-frame offset, a sync slip, or a duration that does not match the container. The handoff notes on moov and edit lists are the same bugs, seen from the other end of the roundtrip.
    • Missing or computer-RGB colour tags. Untagged pixels get guessed. Guessed 709 versus guessed sRGB will not show up as offline media. It will show up as a grade that will not sit.
    • AAC, often not 48 kHz. Mix stages expect PCM at 48 kHz. AAC in the MP4 is a preview track.
    • Native audio welded to picture. A trim in the NLE trims the sound. A mixer who receives embedded, handle-less audio has nothing to fade or de-click.
    • Unstable names. A regen is a new file. XML and AAF relink by path and name unless you have already renamed.

    You can cut a first assembly in the AI video editor. You cannot send that assembly, as generated MP4s, to a colourist and a mixer and call it a roundtrip.

    Transcode on ingest, not at the vendor

    The vendor will transcode anyway if you send them H.264. You will pay for that in time, in a codec you did not choose, and in a colour tag they had to guess.

    Do it once, on the way into editorial:

    1. Pick the take. Rename to your shot_id. Hash the original and keep it.
    2. Transcode to an intra-frame finishing codec, same frame rate as the sequence, 48 kHz PCM, with handles in the file (a second or two beyond the cut). Versely sequences default to 25 fps; most models that expose a rate offer 24. Resolve the 24-versus-25 mismatch before you mint the finishing media, not in the AAF.
    3. Build the editorial proxy from that finishing file, not from the original MP4.
    4. Cut on the proxy. Online is a relink to the finishing file, not a second transcode of the MP4.

    If the original MP4 is the only copy you kept, you do not have a roundtrip source. You have a delivery codec you will decode again every time someone needs a frame.

    Audio from the generation is a guide. If the mixer is doing the mix, they need the audio as files they can fade, not as a stereo pair trapped in the picture. Split it on ingest: picture to the video path, sound to a 48 kHz PCM copy that can travel in the AAF.

    XML for picture, AAF for audio

    Use both. One file that "does everything" is how video effects, speed ramps, and audio handles each fail in a different tool.

    Picture, XML. Export a Final Cut Pro XML (or Resolve's Premiere XML on the way back) that describes the video tracks, source in/out, and reel or filename. The colourist relinks to the finishing codec, grades, and returns rendered shots plus an XML that puts them back on your timeline. Speed ramps, nested sequences, and plugin effects are the usual casualties; flatten anything you are not willing to rebuild. A reference movie travels with the XML so the colourist can see the cut, not guess it.

    Audio, AAF. Adobe's AAF export is the path toward Pro Tools and Media Composer. Two settings decide whether the mixer can work:

    • Copy complete audio files, do not embed. Embedded audio is trimmed to the edit, often compressed, and locked in the AAF container. The mixer cannot get back to the original handles. Copy-out gives them files.
    • Handles in the AAF, not only in your head. A second or two either side of each edit is the useful range. Eight frames is a dissolve pad on the picture. It is not a mix handle. Limiters, fades, and de-clicks all need run-up.

    Adobe also documents OMF export for Pro Tools. If the mixer asks for OMF, send OMF. Do not argue AAF versus OMF on the day of delivery. Ask on the lock date.

    Send a picture-lock reference with no mix, or with mix muted, so the mixer is not chasing a bounce you already printed. Loudness is their target, not a limiter you baked into the reference. J-cuts and L-cuts have to be in the AAF as split edits. If picture and sound always change on the same frame in the XML, the mixer cannot recover a split you never cut.

    The roundtrip map

    One job, one diagram, taped above the desk:

    1. Generate. Save the take. Rename. Hash.
    2. Ingest transcode. Finishing codec + 48 kHz PCM, handles in the file.
    3. Proxy. From the finishing file. Cut here.
    4. Picture lock. Freeze shot_ids and hashes. Reference movie out.
    5. Picture XML → colour. Colourist relinks to finishing files, returns graded renders + XML.
    6. AAF → mix. Copy-out audio, handles on. Mixer returns stems (dialogue, music, FX, mix) spotted to the locked picture.
    7. Layback. Graded picture + mix stems. That is the delivery candidate, not the original MP4.

    If a shot regenerates after step 4, stop. That is a change-list item, a new hash, a new transcode, a new proxy, and a new XML/AAF for the region that changed. Relinking the new MP4 into an old AAF is how the mixer's handles point at silence.

    Keep native-audio shots on their own bus in the AAF so a welded take is obvious. Shots you generated dry, with VO and music added in the editor, should arrive at mix as separate files: picture, VO, music. attach_audio_to_video in mix mode is a Versely-side convenience. It is not a stem delivery.

    FAQ

    Can I skip the ingest transcode if Resolve plays the MP4?

    You can cut. You will pay later. The roundtrip fails at relink, at frame-step, at audio sample rate, and at the first speed change. Transcode on ingest is cheaper than transcode-on-panic the night before the mix.

    Why not one AAF for picture and sound?

    Because the colourist and the mixer do not want the same file, and AAF's picture support is not why you picked it. XML carries the picture cut. AAF carries the audio cut with handles. Sending both, plus a reference movie, is the map. Sending one "simplifies" the handoff until someone is offline.

    How many handle frames should the AAF carry?

    Ask the mixer. If they have not answered, a second or two at sequence rate is a working default (25 frames is one second on a 25 fps timeline; 50 is two). That is a different number from the 8–12 frame pad you want on generated picture so a dissolve has media. Do not send handle-less embeds and tell them the original MP4 is "available if needed."

    Does Versely export AAF or FCP XML?

    No. The stored editor project is not an interchange timeline. Export the media, conform it in Premiere or Resolve, and roundtrip from there. The Versely draft is how you iterate the cut before that handoff, including a 480p preview pass with a short per-user cooldown, not how you talk to Pro Tools.