{"course":{"slug":"ai-video","title":"Video with AI","url":"https://addaly.com/learn/ai-video","level":"intermediate","track":"create"},"lesson":{"slug":"conforming-and-project-setup","title":"Decide the frame rate before you import anything","url":"https://addaly.com/learn/ai-video/conforming-and-project-setup","position":50,"of":66,"minutes":9,"answer":"A timeline has one frame rate and one resolution, and every clip that does not match is resampled to fit.","keyIdea":"A timeline has one frame rate and one resolution, and every clip that does not match is resampled to fit, so the settings you choose before importing determine whether your footage judders for the rest of the project."},"body":{"format":"markdown","text":"## The ten minutes that save an afternoon\n\nBefore a single clip is imported, four decisions:\n\n1. **Frame rate.** 24 for anything meant to read as film. 25 for PAL-region broadcast. 30 for most social platforms. 60 only if the content is fast and the platform supports it.\n2. **Resolution.** Match your delivery, not your source. 1080p is almost always right; 4K only if somebody has asked for it and paid for it.\n3. **Aspect ratio.** 16:9, 9:16, or 1:1. This was decided when you made the stills.\n4. **Colour management.** Leave it off unless you know you need it. A simple Rec.709 project is correct for almost all of this work, and colour-managed workflows introduce problems that are only worth solving on a graded film.\n\nIn DaVinci Resolve these live in Project Settings, and changing the frame rate after media is on the timeline ranges from awkward to blocked depending on version. Set it first.\n\n## What happens when rates do not match\n\nA 30fps clip on a 24fps timeline has to lose one frame in five. A 24fps clip on a 30fps timeline has to repeat one frame in four.\n\nOn a static shot nobody notices. On a slow pan it is a visible stutter (the motion advances, pauses, advances) and once you have seen it you cannot stop seeing it. The name for this is judder and it is the most common technical fault in amateur edits.\n\nGenerative video makes it likely, because models output at different native rates and you will be mixing several models in one project. Check every clip's rate on import.\n\n```bash\n# what am I actually dealing with\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=r_frame_rate,width,height,duration \\\n  -of default=noprint_wrappers=1 shot.mp4\n```\n\n## Conforming properly\n\nIf a clip is at the wrong rate, do not let the timeline drop frames. Convert it deliberately, with one of three methods, in ascending order of quality:\n\n- **Duplicate or drop frames.** What the timeline does by default. Fast, judders.\n- **Frame blending.** Blends adjacent frames into the intermediate ones. Soft on fast motion, smooth on slow motion, and generally the safe default.\n- **Optical flow.** Estimates motion and warps pixels. Best result, and it produces the occlusion-boundary halos from the interpolation lesson. Resolve's free tier includes it; set it per clip in the inspector.\n\n```bash\n# conform 30 to 24 with blending\nffmpeg -i in.mp4 -filter:v \"minterpolate=fps=24:mi_mode=blend\" -c:a copy out.mp4\n```\n\nChoose per clip rather than globally. A static shot can be dropped frames with no cost; a slow pan needs flow.\n\n## Resolution and scaling\n\nMixing 720p and 1080p generations on one timeline is normal. What matters is where the scaling happens.\n\nScale up once, at the end, on the finished cut, not per clip. Upscaling thirty clips individually gives you thirty slightly different sharpening signatures, and the difference between them is visible at the cuts.\n\nAnd upscaling adds no information. It invents plausible detail. A 720p generation upscaled to 4K is a 720p generation with a 4K file size and an opinion about what the missing pixels looked like. Deliver at the resolution you generated unless somebody has a specific reason.\n\n## Odd durations and proxies\n\nGenerated clips arrive at 5.1 or 4.8 seconds because latent frames divided by frame rate does not land round. Nothing is wrong; trim to what you need.\n\nIf your machine struggles with playback, generate proxies: low-resolution copies the editor uses for editing and swaps for the originals at export. Resolve does this automatically; FFmpeg does it in a loop:\n\n```bash\nfor f in *.mp4; do ffmpeg -i \"$f\" -vf scale=640:-2 -c:v libx264 -crf 28 \"proxy_$f\"; done\n```\n\nThis is the single most effective thing you can do to make an old laptop usable for editing, and it costs disk space rather than money.\n\n## The folder structure that survives\n\nSet it up before you import, not when it hurts:\n\n```\nedit/\n  project.drp            # or .kdenlive, .mlt\n  footage/               # the generations, unmodified\n  audio/\n  graphics/              # titles, logos, the label card\n  exports/\n```\n\nNever edit from your Downloads folder. Every editor stores paths to media, and a moved or renamed file becomes a missing clip, usually on the day of delivery.\n\n---\n\nToday: run ffprobe over every clip in your project and write down how many different frame rates you have. Then set the project rate and conform deliberately."},"check":{"question":"A slow pan generated at 30fps is placed on a 24fps timeline and plays with a visible stutter. What is the correct fix?","options":[{"text":"Conform the clip deliberately with frame blending or optical flow, rather than letting the timeline drop one frame in five.","correct":true},{"text":"Change the project frame rate to 30 so the clip plays natively, and conform the 24fps clips instead since they are fewer.","correct":false,"tempting":"Solves one clip by breaking the others, and assumes the delivery spec is negotiable when it is usually not."},{"text":"Retime the clip to 80 per cent speed so its frames align with the 24fps timeline grid without any being discarded.","correct":false,"tempting":"Aligns the frames arithmetically and changes the speed of the action, which is a different shot rather than a conform."},{"text":"Re-export the source with a constant frame rate, because generated clips often carry a variable frame rate and it is the variability rather than the mismatch that produces the stutter.","correct":false,"tempting":"Variable frame rate is a real nuisance from some sources, and a constant 30 on a 24 timeline still has to lose a frame in five."}]},"prev":{"slug":"the-edit-is-the-work","title":"The generator makes footage; the editor makes the video","url":"https://addaly.com/learn/ai-video/the-edit-is-the-work"},"next":{"slug":"selects-and-the-assembly","title":"Choosing takes before you start cutting","url":"https://addaly.com/learn/ai-video/selects-and-the-assembly"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'Decide the frame rate before you import anything', in Video with AI. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/ai-video/conforming-and-project-setup (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"Decide the frame rate before you import anything","courseTitle":"Video with AI","module":{"index":6,"slug":"the-edit","title":"From generations to a finished piece"},"answer":null,"keyIdea":"A timeline has one frame rate and one resolution, and every clip that does not match is resampled to fit, so the settings you choose before importing determine whether your footage judders for the rest of the project.","hero":{"kind":"plate","image":null,"alt":null,"caption":null},"blocks":[{"t":"h2","id":"the-ten-minutes-that-save-an-afternoon","runs":[{"text":"The ten minutes that save an afternoon"}]},{"t":"p","runs":[{"text":"Before a single clip is imported, four decisions:"}]},{"t":"ol","start":1,"items":[[{"text":"Frame rate.","b":true},{"text":" 24 for anything meant to read as film. 25 for PAL-region broadcast. 30 for most social platforms. 60 only if the content is fast and the platform supports it."}],[{"text":"Resolution.","b":true},{"text":" Match your delivery, not your source. 1080p is almost always right; 4K only if somebody has asked for it and paid for it."}],[{"text":"Aspect ratio.","b":true},{"text":" 16:9, 9:16, or 1:1. This was decided when you made the stills."}],[{"text":"Colour management.","b":true},{"text":" Leave it off unless you know you need it. A simple Rec.709 project is correct for almost all of this work, and colour-managed workflows introduce problems that are only worth solving on a graded film."}]]},{"t":"p","runs":[{"text":"In DaVinci Resolve these live in Project Settings, and changing the frame rate after media is on the timeline ranges from awkward to blocked depending on version. Set it first."}]},{"t":"h2","id":"what-happens-when-rates-do-not-match","runs":[{"text":"What happens when rates do not match"}]},{"t":"p","runs":[{"text":"A 30fps clip on a 24fps timeline has to lose one frame in five. A 24fps clip on a 30fps timeline has to repeat one frame in four."}]},{"t":"p","runs":[{"text":"On a static shot nobody notices. On a slow pan it is a visible stutter (the motion advances, pauses, advances) and once you have seen it you cannot stop seeing it. The name for this is judder and it is the most common technical fault in amateur edits."}]},{"t":"p","runs":[{"text":"Generative video makes it likely, because models output at different native rates and you will be mixing several models in one project. Check every clip’s rate on import."}]},{"t":"code","lang":"bash","label":"Bash","text":"# what am I actually dealing with\nffprobe -v error -select_streams v:0 \\\n  -show_entries stream=r_frame_rate,width,height,duration \\\n  -of default=noprint_wrappers=1 shot.mp4"},{"t":"h2","id":"conforming-properly","runs":[{"text":"Conforming properly"}]},{"t":"p","runs":[{"text":"If a clip is at the wrong rate, do not let the timeline drop frames. Convert it deliberately, with one of three methods, in ascending order of quality:"}]},{"t":"ul","items":[[{"text":"Duplicate or drop frames.","b":true},{"text":" What the timeline does by default. Fast, judders."}],[{"text":"Frame blending.","b":true},{"text":" Blends adjacent frames into the intermediate ones. Soft on fast motion, smooth on slow motion, and generally the safe default."}],[{"text":"Optical flow.","b":true},{"text":" Estimates motion and warps pixels. Best result, and it produces the occlusion-boundary halos from the interpolation lesson. Resolve’s free tier includes it; set it per clip in the inspector."}]]},{"t":"code","lang":"bash","label":"Bash","text":"# conform 30 to 24 with blending\nffmpeg -i in.mp4 -filter:v \"minterpolate=fps=24:mi_mode=blend\" -c:a copy out.mp4"},{"t":"p","runs":[{"text":"Choose per clip rather than globally. A static shot can be dropped frames with no cost; a slow pan needs flow."}]},{"t":"h2","id":"resolution-and-scaling","runs":[{"text":"Resolution and scaling"}]},{"t":"p","runs":[{"text":"Mixing 720p and 1080p generations on one timeline is normal. What matters is where the scaling happens."}]},{"t":"p","runs":[{"text":"Scale up once, at the end, on the finished cut, not per clip. Upscaling thirty clips individually gives you thirty slightly different sharpening signatures, and the difference between them is visible at the cuts."}]},{"t":"p","runs":[{"text":"And upscaling adds no information. It invents plausible detail. A 720p generation upscaled to 4K is a 720p generation with a 4K file size and an opinion about what the missing pixels looked like. Deliver at the resolution you generated unless somebody has a specific reason."}]},{"t":"h2","id":"odd-durations-and-proxies","runs":[{"text":"Odd durations and proxies"}]},{"t":"p","runs":[{"text":"Generated clips arrive at 5.1 or 4.8 seconds because latent frames divided by frame rate does not land round. Nothing is wrong; trim to what you need."}]},{"t":"p","runs":[{"text":"If your machine struggles with playback, generate proxies: low-resolution copies the editor uses for editing and swaps for the originals at export. Resolve does this automatically; FFmpeg does it in a loop:"}]},{"t":"code","lang":"bash","label":"Bash","text":"for f in *.mp4; do ffmpeg -i \"$f\" -vf scale=640:-2 -c:v libx264 -crf 28 \"proxy_$f\"; done"},{"t":"p","runs":[{"text":"This is the single most effective thing you can do to make an old laptop usable for editing, and it costs disk space rather than money."}]},{"t":"h2","id":"the-folder-structure-that-survives","runs":[{"text":"The folder structure that survives"}]},{"t":"p","runs":[{"text":"Set it up before you import, not when it hurts:"}]},{"t":"code","lang":"","label":"Text","text":"edit/\n  project.drp            # or .kdenlive, .mlt\n  footage/               # the generations, unmodified\n  audio/\n  graphics/              # titles, logos, the label card\n  exports/"},{"t":"p","runs":[{"text":"Never edit from your Downloads folder. Every editor stores paths to media, and a moved or renamed file becomes a missing clip, usually on the day of delivery."}]},{"t":"rule"},{"t":"p","runs":[{"text":"Today: run ffprobe over every clip in your project and write down how many different frame rates you have. Then set the project rate and conform deliberately."}]}],"check":{"question":[{"text":"A slow pan generated at 30fps is placed on a 24fps timeline and plays with a visible stutter. What is the correct fix?"}],"options":[{"text":[{"text":"Conform the clip deliberately with frame blending or optical flow, rather than letting the timeline drop one frame in five."}],"correct":true,"tempting":null},{"text":[{"text":"Change the project frame rate to 30 so the clip plays natively, and conform the 24fps clips instead since they are fewer."}],"correct":false,"tempting":[{"text":"Solves one clip by breaking the others, and assumes the delivery spec is negotiable when it is usually not."}]},{"text":[{"text":"Retime the clip to 80 per cent speed so its frames align with the 24fps timeline grid without any being discarded."}],"correct":false,"tempting":[{"text":"Aligns the frames arithmetically and changes the speed of the action, which is a different shot rather than a conform."}]},{"text":[{"text":"Re-export the source with a constant frame rate, because generated clips often carry a variable frame rate and it is the variability rather than the mismatch that produces the stutter."}],"correct":false,"tempting":[{"text":"Variable frame rate is a real nuisance from some sources, and a constant 30 on a 24 timeline still has to lose a frame in five."}]}],"order":[2,0,3,1],"why":null},"prev":{"slug":"the-edit-is-the-work","title":"The generator makes footage; the editor makes the video","minutes":10},"next":{"slug":"selects-and-the-assembly","title":"Choosing takes before you start cutting","minutes":8}}}