- Home
- Skills
- Image & Video
- Vertical Video Converter
More screenshots
Works with the AI tools you already use
Vertical Video Converter
Turn any 16:9 or square video into a clean 1080x1920 vertical MP4 in one command - blur fill, focal crop or letterbox, with burned-in captions and batch mode.
$7
Vertical Video Converter
Example session with this skill installed
I've got a 16:9 interview clip that has to ship as a Reel. Keep the whole frame - the subject is off-centre so don't crop it - and burn in the captions I already have in transcript.srt. 1080x1920, and tell me if anything about the output isn't right.
- Read your context and instructions
- Compiled the vertical video converter
- Generated the image
Converted interview_raw.mp4 to a 9:16 master with the whole frame preserved. blur was the right mode here: crop would have pushed the second speaker out of frame, since the subjects sit at roughly 30% and 70% across the source.
What ran
python3 scripts/verticalize.py interview_raw.mp4 \
--mode blur \
--captions transcript.srt \
--caption-size 56 --caption-margin 320 \
--out interview_raw_vertical.mp4
Result
| Metric | Source | Output |
|---|---|---|
| Resolution | 1056x608 (16:9) | 1080x1920 (9:16) |
| Frame rate | 23.999 | 24.0 |
| Duration | 28.574s | 28.583s |
| Video codec | h264 | h264 (yuv420p, +faststart) |
| Audio | aac | aac 128k |
Captions burned at 56 px with a 320 px bottom margin, which clears the Reels UI. Duration drift is 9 ms - one frame at 24 fps from re-timing the filter chain, and it does not desync the audio.
Files written
interview_raw_vertical.mp4- 8.89 MB, upload-readypreview.png- side-by-side still of source and output, so the framing is checkable before a full render
Next steps
- Open
preview.pngfirst. If the blurred band reads too busy, re-run with--mode padfor clean black bars instead. - For a delivery master, repeat the command with
--crf 18 --preset slow; CRF 20 is tuned for social playback. - To process the rest of the set,
--batch ./clips --outdir ./verticalapplies this exact framing to every clip and reports per-file results.
vertical-video-converter.png
PNG · 1536×1024
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
What you get
About this skill
Manual reframing is the tax on every short-form workflow: open an editor, drag a crop box, guess how much of the frame survives, export, then find out the captions sit under the platform's UI. This skill replaces that with one command that always lands on 1080x1920.
What it does
- Reframes to 9:16 - 16:9 or 1:1 footage in, a 1080x1920 master out, with even dimensions forced so h264 never rejects the file.
- Three layout modes -
blurfills the frame with a blurred enlargement of the source so nothing is cropped away,cropscales up and keeps only the band you point at,padletterboxes on black. - Focal control -
--focus upper|lower|top|bottom|center, or an explicit fraction like0.4,0.35when the subject sits off-centre. - Captions that stay in the safe area - burns SRT text on a real-pixel canvas, so
--caption-sizeand--caption-marginmean exactly what they say instead of being multiplied by libass's 384x288 default. - Batch mode - walks a folder, applies identical framing to every clip, writes
batch-report.json, and keeps going when one file fails.
Verification is built in
Every run re-probes its own output and prints a source-vs-output QC table (resolution, fps, duration, codecs, audio), then exits non-zero if the height is not what you asked for. You get evidence, not a green checkmark.
Requirements
ffmpeg and ffprobe 5.x+ on PATH (any full build; libass is needed for captions). Python 3.9+, standard library only. No pip installs and no network access.
Known limitations
Cropping is geometric, not semantic: there is no face or subject tracking, so --focus is where you point it, and a subject that crosses the frame may still need a fixed band that happens to cover the action. Captions accept SRT, not ASS.
How to install
Works the same in every agent - Claude, Cursor, Codex, Copilot and 20+ more.
- 1
Download the ZIP
Free skills download straight away. Paid skills unlock right after purchase.
- 2
Unzip into your skills folder
Every agent reads skills from one folder on your machine. Drop the unzipped folder in there.
- 3
Ask your agent to use it
Restart the agent if it was already running. It picks the skill up automatically - no config needed.
Skills folder by agent
Click the path to copy it. Create the folder if it does not exist yet.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
30-day refund
Not a fit? Get your money back
Trust & safety
Security scanned
Verified clean 2 days ago
- Passed all security checks, Safe to install