Export checks and troubleshooting
Every video export checks its clips before rendering, works around a clip that won't decode, and validates the finished MP4 before it is marked ready. When something still fails, DemoTake tells you which scene, at what time, and why.
A video that looks finished but won't play is worse than an export that fails loudly. So DemoTake checks its own work. Every video export (16:9, 9:16, 4:3, 1:1 and the Reviewer Pack video) runs the same four steps, and a job only shows as ready after the last one passes.
- Check every clipfirst, middle, last frame
- Compatible copyonly if a clip won't decode
- Render
- Check the finished videoopens, length, size, frames
- Ready
1. Check every clip
Before rendering, DemoTake decodes sample frames from every clip the cut uses: the first, middle and last frame of each stretch of recording that ends up in the video. It reads each one the way the render will, from the nearest keyframe, so a damaged frame shows up now rather than halfway through a long export. This preflight is read-only. It never changes the take.
2. A compatible copy, when a clip won't decode
If a clip can't be decoded, DemoTake makes a compatible H.264 copy of that one clip and reads from the copy instead. The row says A clip couldn't be read, so DemoTake is preparing a compatible copy… while it works, and the copy is checked again before rendering. The same happens if a frame fails in the middle of the render: DemoTake copies that clip and renders again from the same plan.
Your recording is never modified. Copies live in DemoTake's cache, not in the take, are reused on the next export, and are cleared after a week without use. When an export used one, the finished row says so:
"Sign in" was read from a compatible copy because the original couldn't be read. The recording wasn't changed.
In the rare case that some frames can't be read even for the copy, the copy holds the last good frame over the gap. Copy Details on that row lists how many seconds were held.
3. Check the finished video
When the render is done, DemoTake opens the MP4 and checks that:
- it opens and has a video track;
- its length matches the edit, within one frame;
- its size matches the format, for example 1080 × 1920 for 9:16;
- its first, middle and last frames decode.
If any check fails, DemoTake deletes the file and marks the export failed, rather than leaving a broken video in your library. GIFs, screenshots and guides are image outputs and skip this step.
File size
With Keep under a size on in the Export sheet's Video file section, DemoTake also compares the finished file with the size you asked for. If it came out too big, DemoTake encodes it again at a lower bitrate. A file that is still over the size after that is kept, and the export completes with a warning on its row, such as "48.3 MB · Upload-friendly · over the 45 MB target".
For a take set up for a TikTok review, each finished row also says whether the file fits TikTok's limit (MP4 or MOV, at most 50 MB), for example "Fits TikTok (at most 50 MB)", or "Too large for TikTok" with what to do. See Formats and sizes.
When an export fails
A failed row says in plain words what happened, names the scene by its number and title, and gives the time in the finished video. The technical detail stays out of the way behind Copy Details.
- 16:9 · 2 minutes agoFailed
Scene 3 “Calendar selection” couldn’t be read at 0:42. DemoTake tried a compatible copy and that failed too.
- 9:16 · 2 minutes agoShow in Finder · Open
“Sign in” was read from a compatible copy because the original couldn’t be read. The recording wasn’t changed.
Copy Details puts a full report on the clipboard, ready for a bug report:
Export exp_5d0c · 16:9 · take take_8f2c · failed
DemoTake export diagnosis
Stage: render
Problem: decode
Scene: Scene 3 “Calendar selection” (scn_41b7)
Clip: media/seg_9a2e.mov (seg_9a2e)
Codec: HEVC (hvc1), 2880×1800
Source time: 12.417 s into the scene's recording
Output time: 0:42 (42.350 s)
Error: AVFoundationErrorDomain -11821 — Cannot Decode
Compatible copy: tried — failed: the compatible copy failed to decode while renderingThe report names the stage (preflight, render, compatible copy or final check), the kind of problem, the scene and clip, the clip's codec and pixel size, the time in the recording and in the output, and the system error domain and code.
Troubleshooting failed exports
| The row says | What to do |
|---|---|
| Scene … couldn't be read at … | Export again. If the same scene fails every time, retake that scene. The other scenes keep their footage and edits. |
| There isn't enough free disk space to finish this export. | Free up space on your Mac and export again. Exports are written into your library at ~/Movies/DemoTake. |
| The recording for Scene … is missing from the take | The scene's recording file is no longer in the take package, for example after files were moved by hand. Put it back, or retake the scene. |
| The finished video didn't pass DemoTake's final check (…) | The brackets say which check failed. Export again, and use Copy Details if it keeps happening. |
| The export stopped in Scene … at … | Export again. If it repeats, send the Copy Details text to support@demotake.my. |
| This export stopped before it finished. | The export was made by an earlier version that kept less detail. Export again for a full report. |
| over the … MB target or Too large for … | Lower the size in Keep under a size, or choose Upload-friendly quality, and export again. A shorter cut also helps. |
Two more situations look like export problems but aren't:
- Black frames in the video. The preflight reports frames that decode but are almost entirely black. That means the recording itself shows nothing there, often because the window wasn't drawing. DemoTake cuts blank stretches from the edit automatically; see Footage review and Choosing a window.
- The Export sheet asks you to activate. After the free trial ends, exporting needs a license. Your takes and edits are untouched.
Checks from your agent
Agents get the same checks, and the same diagnosis, as structured data:
export_preflightruns the clip check on its own, without exporting. It returns one result per clip: scene, clip file, codec, the ranges used, the frames sampled and, for a failing clip, a diagnosis.export_validatechecks a finished video by job id or by path.export_statusreports a job. A failed job carriesdiagnosis; a finished one listsfallbacks(clips read from a compatible copy), itsvalidationand its file size, withover_limitwhen it is overmax_mb.
{
"job_id": "exp_5d0c",
"format": "16:9",
"status": "failed",
"error": "Scene 3 “Calendar selection” couldn’t be read at 0:42. DemoTake tried a compatible copy and that failed too.",
"diagnosis": {
"stage": "render",
"kind": "decode",
"scene_number": 3,
"scene_title": "Calendar selection",
"clip_file": "media/seg_9a2e.mov",
"source_time": 12.417,
"output_time": 42.35,
"codec": "HEVC (hvc1)",
"error_domain": "AVFoundationErrorDomain",
"error_code": -11821,
"fallback_attempted": true,
"details": "DemoTake export diagnosis\nStage: render\n…"
}
}export_render runs the whole pipeline, so an agent that waits for its render gets a checked video or a diagnosis, never a silent failure.
Next
- Formats and sizes
- Retakes and checkpoints
- Troubleshooting for recording and permission problems