Convert Horizontal Video to Vertical: A Practical Guide

September 26, 2026 · RenderIO

A creator hands over a clean 16:9 interview clip for TikTok. The speaker is framed well in horizontal format, the lower thirds sit near the bottom edge, and there is useful context on both sides of the frame. A fast center crop to 9:16 will technically convert it, but it often cuts off gestures, pushes captions into the app UI, and turns a balanced shot into a cramped one.

That is the mistake I see most often.

Horizontal-to-vertical conversion starts as a layout decision, not an FFmpeg command. The first job is deciding what must stay visible in a tall frame: the subject's eyes, hand movement, on-screen text, product detail, and caption-safe space. FFmpeg handles the execution well, but it cannot decide editorial priority for you.

For TikTok, Instagram Reels, and YouTube Shorts, the output usually needs a 1080x1920 frame. The hard part is choosing how to fill it without throwing away information that mattered in the original composition. In practice, there are three workable paths:

  • Crop hard when the subject stays near center and the sides do not carry important context.
  • Reframe with motion when the subject moves and a static crop would miss them.
  • Use a background fill or blurred duplicate layer when the full width matters more than a pure full-screen crop.

A talking-head clip can survive an aggressive crop. A two-person interview, product demo, gameplay capture, or widescreen scene often cannot. If the original frame contains subtitles, lower-thirds, UI, or fine product detail near the bottom, leave vertical safe space so those elements do not end up hidden under platform controls.

A simple center crop is the starting point, not the default answer. The better workflow is to mark the protected areas first, then crop, scale, or pad around them. That approach produces vertical videos that still read like intentional edits instead of emergency reformats.

Here is a basic FFmpeg crop to convert 1920x1080 to 1080x1920 by taking the center slice:

ffmpeg -i input.mp4 -vf "crop=607:1080:656:0,scale=1080:1920" -c:a copy output_vertical.mp4

That command works if the center of the frame is the right place to cut. Many clips need a different x offset, or a completely different treatment. If preserving context matters, padding is often the safer option:

ffmpeg -i input.mp4 -vf "scale=1080:-2,pad=1080:1920:0:(1920-ih)/2:black" -c:a copy output_vertical.mp4

That keeps the full image and fills the unused space above and below. It is less immersive than a full crop, but it avoids chopping off information you still need.

The practical rule is simple. Decide the layout first. Then write the FFmpeg filter chain that serves that layout.