How I Turned 111 Trip Photos into a 90-Second Instagram Reel with Claude
A step-by-step beginner guide with the exact prompts: Claude picked the best 50 of 111 photos, worked around what the MakeMyClip editor couldn't do, and rendered an 87.5-second Reel with FFmpeg.
I came back from a three-day trip with 111 photos on two phones. I wanted one vertical video for Instagram: the best 50 or so, slow cinematic zooms, soft dissolves, under 90 seconds. I didn’t want to spend an evening dragging clips around a timeline, so I asked Claude to do it.
This post is the whole process, written so a beginner can follow it. It includes the exact prompts I typed, what Claude did with them, where the editor I planned to use fell short, and how the job still got finished. The result was an 87.5-second, 1080×1920 Reel made from 50 hand-picked photos, and the originals were never touched.
What you need
- The Claude desktop app (I used the Code tab, which can run commands and read files on your computer).
- MakeMyClip Editor, a free, open-source local video editor that Claude can drive. It comes as a Claude extension (a
.mcpbfile) and as a skill. - FFmpeg, the free command-line tool that almost every video app uses under the hood. MakeMyClip uses it too.
- A folder of photos. JPG or PNG both work.
You don’t need to know FFmpeg. Claude writes the commands. I’ve included simplified versions below so you can see what’s going on.
Step 1: Install MakeMyClip (and don’t skip the restart)
There are two parts to install:
- The extension. Download
makemyclip-editor.mcpb, then in the Claude desktop app go to Settings → Extensions → Install Extension… and pick the file. Downloading it alone doesn’t install it, which was my first mistake. - The skill. In a terminal, run the command below. The
-ginstalls it for your whole user account. Without it, the skill only lands in whatever folder you happened to run the command from.
npx skills add MakeMyClip/editor -gThen start a new Claude session. Claude loads extensions when a session starts, so a session that was already open won’t see the new tools.
Step 2: Ask Claude to check the setup first
Before doing anything to my photos, I asked Claude to check that everything worked and to tell me up front what the editor couldn’t do. This is the most useful habit in the whole process: you find the limits before you commit to a plan.
Check whether MakeMyClip is connected and working correctly.
1. Run its setup/doctor check.
2. Confirm FFmpeg is detected.
3. Confirm the Media folder is accessible.
4. Inspect the available editing tools.
5. Check whether the editor supports using still JPG/PNG images as timeline clips with individual durations and transitions.
Do not modify or delete any of my original photos. Report any unsupported functionality before proceeding.Claude ran the editor’s built-in “doctor” check, read through its tools, and reported:
- FFmpeg: not installed. The extension doesn’t include FFmpeg. The fix is one command (below), or pointing the extension’s FFmpeg setting at an existing
ffmpeg.exe. - Media folder: OK. By default it’s
Documents\MakeMyClip. The editor only reads and writes inside this folder, so your photos have to be in it. - Still photos as timeline clips: not supported. MakeMyClip is built for editing video. A photo added to its timeline lasts about one frame, you can’t give it its own duration, and its zoom effect only works on videos. That was the most important thing to learn before starting.
winget install Gyan.FFmpegStep 3: Put your photos in the Media folder
I copied the photos to Documents\MakeMyClip\Photos and made an empty Output folder next to it. Keep the originals somewhere else too. My prompt told Claude never to modify them, but having a backup costs nothing.
Step 4: The main prompt
This is the prompt I used, word for word apart from the Windows username. It’s long on purpose. Each line answers a question Claude would otherwise have to guess at: how many photos, how long, what size, what style, and when to stop and check with me.
I have 111 photographs in this folder:
`C:\Users\<you>\Documents\MakeMyClip\Photos`
I want you to create a beautiful, professionally edited Instagram feed video using approximately 50 of the best photographs.
IMPORTANT: First analyse all 111 photographs before selecting anything. Do not simply use the first 50.
1. Photo analysis and selection
* Visually inspect all 111 photographs.
* Select approximately 50 of the best photographs.
* Prioritise visual appeal, interesting moments, composition, clarity and storytelling value.
* Remove blurry, duplicate, repetitive or uninteresting photographs.
* Avoid selecting too many photographs with similar compositions or subjects.
* Maintain a natural chronological or thematic sequence wherever possible.
* Ensure the final selection feels cohesive and tells a story.
* Do not modify, rename, move or delete the original photographs.
2. Video requirements
* Platform: Instagram feed video / Reel.
* Maximum duration: 90 seconds. The final video MUST NOT exceed 90 seconds.
* Resolution: 1080 × 1920 pixels.
* Aspect ratio: 9:16 (vertical).
* Format: MP4 (H.264).
* Frame rate: 30 FPS.
* No background music.
* No voiceover.
* No sound effects.
3. Editing style
Create a premium, cinematic photo montage.
* Use smooth, elegant transitions between photographs.
* Apply subtle Ken Burns effects (slow zoom and pan).
* Avoid excessive animations, flashy effects or distracting transitions.
* Give each photograph an appropriate display duration.
* Use slightly longer durations for particularly meaningful or visually interesting photographs.
* Ensure transitions are smooth and the video flows naturally.
* Use tasteful opening and closing frames.
* Avoid unnecessary text overlays, captions or decorative graphics.
* Preserve the original appearance and colours of the photographs.
4. Timing
Target a video duration of approximately 80–89 seconds.
With approximately 50 photographs, manage individual photo durations and transitions carefully so the final rendered duration stays within the 90-second limit.
5. Quality control
Before rendering:
* Show me the list of selected photographs.
* Show me the photographs that were excluded.
* Confirm the estimated duration.
* Confirm the output resolution and format.
After approval:
* Render the complete video.
* Verify that the output plays correctly.
* Verify that its actual duration is no more than 90 seconds.
* Ensure no photographs are distorted, stretched or cropped awkwardly.
* Save the final video here:
`C:\Users\<you>\Documents\MakeMyClip\Output\instagram-reel.mp4`
If any requested editing operation is unsupported by MakeMyClip, explain the limitation and use an available local FFmpeg workflow instead. Do not silently skip requirements.
Most importantly: Prioritise selecting the 50 strongest photographs and producing a visually engaging, coherent video rather than mechanically including every photograph.A few lines in it do most of the work:
- “First analyse all 111 photographs… Do not simply use the first 50.” Without this, a lazy shortcut is always tempting.
- “Before rendering: show me the list…” This builds in a checkpoint, so nothing slow or permanent happens until you approve it.
- “If any requested editing operation is unsupported… use an available local FFmpeg workflow instead. Do not silently skip requirements.” This line saved the project, because the editor really couldn’t do part of the job.
Step 5: What Claude did before rendering anything
It looked at every photo
Claude can’t usefully open 111 full-size photos one at a time, so it made contact sheets: grids of 12 small thumbnails, each labelled with an ID (P001 to P111) and the time it was taken. It sorted them by the date and time in the filenames. That merged the two phones’ different naming styles into one timeline of the trip.
It also ran an automatic blur check on all 111 photos using FFmpeg’s blurdetect filter. The highest scores turned out to be food shots and portrait-mode photos, where the background is meant to be soft. So it zoomed in on the faces at full size to confirm they were sharp, rather than throwing those photos out.
It picked 50 and explained the other 61
It came back with two lists:
- 50 selected, grouped by day, each with a short note (“Cottages over the pond”, “Couple selfie by the pool”). Nine of them were marked as highlights to stay on screen longer.
- 61 excluded, each with a reason: near-duplicate of a chosen shot, weaker composition, too dark, or too many food photos already.
It also sent me one contact sheet of the 50 in playback order, which was the fastest way to sanity-check the choices.
It did the timing maths
When two photos dissolve into each other, they overlap. So the video is shorter than the photo durations added up.
The plan was:
| Part | Calculation | Seconds |
|---|---|---|
| Regular photos | 39 × 2.0 s | 78.0 |
| Highlights | 9 × 3.0 s | 27.0 |
| Opening + closing photo | 3.4 s + 3.6 s | 7.0 |
| Overlap from dissolves | 49 × 0.5 s | −24.5 |
| Final length | 87.5 |
It solved the “landscape photo in a vertical video” problem
Phone photos are 4:3. A Reel is 9:16, which is much taller. Filling the frame with a landscape photo would cut off more than half of it. Instead, each photo is shown whole, centred on top of a blurred, slightly darkened copy of itself that fills the rest of the frame. Nothing is stretched or cropped, and the photo’s colours stay as they were.
Only after I replied “Approve, render” did it start the slow part.
Step 6: Rendering, and why it used FFmpeg directly
By now the extension was connected, but its setup check still said FFmpeg was missing. And when Claude read the editor’s source code, it found a second problem: the timeline adds dissolves one at a time, re-encoding the whole video so far each time. With 50 clips, the first photos would have been compressed 49 times over and visibly lost quality.
So, as the prompt allowed, it used FFmpeg directly, in two stages. (It used a copy of FFmpeg that came with the MakeMyClip command-line tool, so I didn’t have to install anything.)
Stage 1: Turn each photo into a short clip
One command per photo makes a 2–3 second clip with a slow 6% zoom (the “Ken Burns” effect) over the blurred background. Here’s a simplified version for one landscape photo shown for 2 seconds (60 frames at 30 fps). The ^ at the end of each line just continues the command onto the next line in Windows Command Prompt.
ffmpeg -i photo.jpg -loop 1 -framerate 30 -t 2 -i photo.jpg -filter_complex ^
"[0:v]scale=4320:3240,zoompan=z='1+0.06*on/59':x='(iw-iw/zoom)/2':y='(ih-ih/zoom)/2':d=60:s=1080x810:fps=30[fg];^
[1:v]scale=360:640:force_original_aspect_ratio=increase,crop=360:640,gblur=sigma=14,scale=1080:1920,eq=brightness=-0.16:saturation=0.85[bg];^
[bg][fg]overlay=(W-w)/2:(H-h)/2:shortest=1,format=yuv420p[v]" ^
-map "[v]" -an -c:v libx264 -crf 14 clip01.mp4zoompandoes the slow zoom. Scaling the photo up 4× first keeps the motion smooth instead of jittery.gblur+eqmake the soft, darker backdrop.overlayputs the sharp photo in the middle.- Claude alternated zoom-in and zoom-out, and nudged the pan left, centre or right, so consecutive photos don’t all move the same way.
All 50 clips took about 4 minutes. The very large 8192×6144 photos were the slowest.
Stage 2: Join them with dissolves, in a single encode
FFmpeg’s xfade filter blends one clip into the next. The offset is when each dissolve starts: the length of the video so far, minus the 0.5 s overlap. Here’s the pattern for three clips (3.4 s, 2 s, 2 s). Claude generated the full 50-clip version automatically.
ffmpeg -i clip01.mp4 -i clip02.mp4 -i clip03.mp4 -filter_complex ^
"[0:v][1:v]xfade=transition=fade:duration=0.5:offset=2.9[a];^
[a][2:v]xfade=transition=fade:duration=0.5:offset=4.4[v]" ^
-map "[v]" -an -c:v libx264 -preset slow -crf 17 -pix_fmt yuv420p -r 30 -movflags +faststart reel.mp4Because everything is joined in one pass, every photo is compressed only once. The opening fade from black and the closing fade to black are built into the first and last clips.
Step 7: Check the result
Claude didn’t just say it was done. It checked:
- The actual length was 87.50 seconds, the size 1080×1920, H.264 at 30 fps, with no audio track.
- Every frame decoded with no errors.
- Frames sampled across the video showed no stretched or awkwardly cropped photos.
- All 111 originals were still in the Photos folder, unchanged.
You can check any video’s length and format yourself with ffprobe, which comes with FFmpeg:
ffprobe -v error -show_entries format=duration:stream=width,height,codec_name,r_frame_rate instagram-reel.mp4Step 8: Tweak it in plain English
Watching it, I wanted some of the photos to appear earlier rather than strictly in date order. A one-line request like this is enough:
Move the photos with people in them closer to the beginning. The order doesn't need to be chronological.Claude kept the opening and closing shots, moved the requested photos up front (mixing them for variety), and kept the rest in date order. Since only the order changed, it re-used the 50 clips and re-ran just the join, which took a few minutes instead of a full re-render. It also saved the first version as instagram-reel-v1.mp4 so I could compare.
Tips if you try this
- Always ask for a setup check first. Five minutes of checking saved me from a plan that couldn’t work.
- Ask for a checkpoint before anything slow or permanent. “Show me the list before rendering” is the line that keeps you in control.
- Give a fallback. “If X isn’t supported, use FFmpeg instead, and tell me” turns a dead end into a detour.
- Say what must never happen. “Do not modify, rename, move or delete the original photographs.”
- Be specific about the format. Resolution, frame rate, maximum length and file type leave nothing to guess.
- Expect to tweak. The first version is a draft. Changes like the order, a photo’s duration or swapping a photo are one sentence each.
- Watch out for camera watermarks. Many phones stamp “Shot on …” into a corner of the photo. That’s part of the image, so it shows up in the video unless you ask for it to be trimmed off.
The whole thing took about an hour of mostly waiting, for a Reel I’d have spent an evening on by hand. The bigger lesson isn’t about video: describe the result you want, ask to see the plan, and let the tool say what it can’t do.
- #ai
- #claude
- #ffmpeg
- #video