Instagram Features long form video: 8 Reels from one master

Instagram Features long form video is a horizontal 16:9 upload of up to 90 minutes, and the number that decides your production work is eight: one Feature can have up to eight vertical Reels linked to it, each tapping through to the full episode. So the deliverable per episode is one 16:9 master plus eight 1080x1920 cutdowns from that same file. In FFmpeg that's a probe, eight trims and a crop-or-pad chain per clip. Without hosting an encoder or babysitting a 90-minute render, it's one API call per clip and a status poll, billed on the eight minutes you cut rather than the ninety you recorded.
Instagram announced the format on October 26, 2026. Social Media Today reported a limited test with select US creators after a first run in Brazil, aimed at podcasts, interviews and vlogs. Variety confirmed the clips-as-Reels side: as many as eight short clips can send viewers to one long video, and Instagram said it's "too early to share a long-term monetization model."
What Instagram Features is, and the one number that matters
Features is a long-form horizontal container with linked Reels as its discovery layer. Clips surface in Feed and Explore with a button into the full video, so the eight verticals do the work and the 16:9 master is the destination.
Instagram has published no ranking signals, no analytics and no revenue share for the format, so every reach claim is a guess. The defensible move is making eight clips per episode cheap enough that the first few can flop.
Reels want 1080x1920 at 9:16, the only ratio that fills the Reels tab without cropping, in MP4 or MOV with H.264 video and AAC audio, per Hopper HQ's size guide. Length caps are 90 seconds by default and three minutes for most accounts, per Sprout Social's specs guide, so 45 to 60 second cuts stay safe everywhere.
Read the master with ffprobe before you cut anything
Probing the master gives you the real resolution, frame rate and duration, which every later command depends on. A podcast export labeled 1080p is sometimes 1440x1080 from a webcam grid, and a crop filter written for 1920x1080 will silently produce the wrong frame.
ffprobe -v error \
-show_entries format=duration,size:stream=index,codec_name,width,height,r_frame_rate \
-of default=noprint_wrappers=1 ep214-master.mp4
The same inspection runs as POST /v1/ffprobe with a media_url, returning the streams and format object as JSON you can route on. Inspection costs close to nothing next to a transcode, per FFmpeg Micro's ffprobe reference, so it belongs before the eight jobs.
Check the file size. A 90-minute 1080p interview usually lands between 1.5 and 3 GB, and input caps are 100 MB on the free tier, 1,024 MB on Starter and 2,048 MB on Pro. Over the cap, trim the eight segments locally and upload those.
Eight frame-accurate trims out of a 90-minute recording
Cut each segment with -ss for the start and -t for the duration, and re-encode rather than stream-copy. Trimming with -c copy only cuts on keyframe boundaries, so your 12:40 start becomes 12:38 or 12:43 depending on the GOP, a drift Ottverse documents clearly.
Put -ss before -i so FFmpeg seeks instead of decoding from zero, a few seconds per clip on a long master instead of a few minutes.
ffmpeg -ss 00:12:40 -i ep214-master.mp4 -t 60 \
-c:v libx264 -crf 20 -preset veryfast -pix_fmt yuv420p \
-c:a aac -b:a 128k -movflags +faststart \
ep214_clip01.mp4
Trim, reframe and caption in one command. Every extra pass re-encodes the same 60 seconds and bills it twice.
Horizontal video to vertical Reels: crop a talking head, pad a screen share
The crop-or-pad call is the one real decision, and the content makes it for you. Crop when the subject is a person and the frame edges are empty room. Pad when the edges carry information: a whiteboard, a shared screen, a two-person split where cutting either side loses a speaker.
FFmpeg centers a crop when you omit x and y, as the ffmpeglab crop reference explains:
ffmpeg -ss 00:12:40 -i ep214-master.mp4 -t 60 \
-vf "crop=ih*9/16:ih,scale=1080:1920:flags=lanczos,setsar=1" \
-c:v libx264 -crf 20 -preset veryfast -pix_fmt yuv420p \
-c:a aac -b:a 128k -movflags +faststart ep214_clip01_9x16.mp4
On a 1920x1080 input, ih*9/16 evaluates to 607.5 and truncates to an odd width, which libx264 rejects. The scale=1080:1920 after it normalizes the dimensions, so keep the two filters in that order.
When the speaker sits left of center, shift the crop window: crop=ih*9/16:ih:x=(iw-ih*9/16)/2-180:y=0 moves it 180 pixels left. Pick the offset once per guest and reuse it for every clip from that episode.
For screen-share segments, the letterbox chain keeps the whole 16:9 frame inside the vertical canvas, the approach vgmoose writes up:
-vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2,setsar=1"
That leaves black bars top and bottom, which you can fill with a blurred copy of the frame.
Burn captions in the same pass, and name the output for the uploader
Add the subtitles filter last so font sizes apply at the final 1080x1920 canvas instead of being scaled with the video. Instagram's interface covers the bottom strip of a Reel with caption text and buttons, plus the right edge, so lift burned text clear with MarginV:
-vf "crop=ih*9/16:ih,scale=1080:1920,subtitles=ep214_clip01.srt:force_style='Alignment=2,MarginV=340,FontSize=20,Outline=2,Shadow=0'"
Name the file so whoever uploads eight clips can tell which Feature each links to. One scheme: ep214_clip03_004110_9x16.mp4, meaning episode, clip index, start timestamp in the master, output ratio. The timestamp earns its keep: when a clip underperforms or a guest asks for a change, you re-cut from the same master without rewatching anything. We've argued the same for ad variant reframing and episodic output.
The same eight clips as one API call each
If you'd rather not keep an FFmpeg build and a machine holding 90 minutes of 1080p, the identical filter chain runs as an API job. Upload the master once, then submit eight transcodes against that one file, each with its own -ss, -t and reframe mode.
curl -X POST https://api.ffmpeg-micro.com/v1/transcodes \
-H "Authorization: Bearer $FFMPEG_MICRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file_id": "file_8f3c9a21",
"options": "-ss 00:12:40 -t 60 -vf crop=ih*9/16:ih,scale=1080:1920,setsar=1 -c:v libx264 -crf 20 -pix_fmt yuv420p -c:a aac -b:a 128k",
"output_filename": "ep214_clip01_001240_9x16.mp4"
}'
Three steps come ahead of that call: POST /v1/upload/presigned-url, a PUT of the file straight to storage, then POST /v1/upload/confirm. Poll the job until it reports complete, then download the result. Polling, listing and downloading are free, so a 10-second loop costs nothing, and there are no completion callbacks. Field names and the full option list live in the API docs. To settle a guest's crop offset before wiring eight calls into a loop, the reframe blueprint runs the same crop-or-pad job as an upload and a download.
Fan eight rows out of a Google Sheet in n8n or Make
The repeatable version reads timestamps from a sheet instead of your shell history. Keep one row per clip with episode_id, clip_no, start, duration and mode (crop or pad), and let the workflow build the options string.
- Google Sheets node reads the rows for the current episode.
- Split In Batches in n8n, or an Iterator in Make, runs the rest once per row.
- An HTTP Request node posts the transcode, options string built from
start,durationandmode. - A Wait node pauses 15 seconds, then an HTTP Request checks job status and loops back while it runs.
- The last node downloads the output to Drive, named from
episode_idandclip_no.
Eight rows in, eight named MP4s out, and nothing holds a 2 GB file in memory, which is why this shape survives on n8n Cloud, where passing large binaries between nodes kills executions. If your instance just lost its community nodes, keeping the FFmpeg step alive with an HTTP Request node covers the migration.
What eight Reels per episode costs you
Billing on FFmpeg Micro is metered per second of video processed, no rounding up to the minute, and trimming a clip out of a longer file bills the clip, not the source. Eight 60-second cuts out of a 90-minute recording bill eight minutes, not ninety.
| Line item | Input duration | Tokens | Notes |
|---|---|---|---|
| ffprobe the master | none processed | negligible | Metadata read, not a transcode |
| 8 clips, trim plus reframe plus captions in one pass | 480 s | 48 | 1 token per 10 seconds of input |
| Same 8 clips, captions as a second job | 960 s | 96 | Two passes bill the 60 seconds twice |
| Processing the whole 90-minute master | 5,400 s | 540 | What you avoid by trimming in the job |
| A job that fails | any | 0 | Failed jobs are never billed |
At the top-up rate of 500 tokens for $5, those 48 tokens are about $0.48 of machine work per episode. The free tier's 200 tokens cover four episodes with no card, and Starter's 2,500 monthly tokens at $19.99 cover roughly 52 episodes a month. Current numbers are on the pricing page.
An hour a week goes into dragging in and out points and re-centering crops, the human half of an editing rate.
Where this pipeline stops
Choosing the eight moments is still your job. Nothing here reads a transcript and picks which 60 seconds of a two-hour interview is worth clipping. That's a human pass, or an LLM pass that writes the sheet.
A static crop also doesn't follow a speaker. If your show cuts between two camera angles mid-clip, one offset frames one of them badly. Split that clip at the camera change, or use a subject-tracking reframe tool, a different class of product than a media API. Templated openers, lower thirds and brand furniture on every clip are a template editor's job.
FAQ
Does a Feature need a separate 16:9 upload, or can the Reels come from the same file?
The eight linked Reels come from the same 16:9 master you upload as the Feature. Keep the horizontal export intact for the long-form upload and cut the vertical clips from that identical file, which is why output names should carry the start timestamp in the master.
How do I repurpose a podcast into Reels without re-editing each clip by hand?
Repurposing a podcast into Reels works best as a timestamp sheet plus a loop: one row per clip with start, duration and crop-or-pad mode, and a workflow that submits one job per row. The editorial call stays with you, and the trim, reframe and caption burn run as eight identical API calls.
Should I crop or pad a two-person interview?
Crop a two-person interview only when the shot is a single speaker filling the frame. On a side-by-side two-shot or a split-screen remote recording, a centered 9:16 crop drops one participant, so pad to 1080x1920 and keep both faces, or cut into single-speaker segments and crop each with its own x offset.
Has Instagram said how Features or linked Reels are ranked?
Instagram has published no ranking, analytics or payout detail for Features, and told Variety it's too early to share a long-term monetization model. Plan the asset production, and treat any claim about how the format distributes clips as speculation until Instagram documents it.
Weekly interview shows feel this first, because the eight-clip job arrives every episode whether or not last week's clips worked. Running the mechanical half through the API is what content repurposing looks like when nobody is watching a progress bar. Sign up free: no encoder to keep running, callable from your own code, from n8n, Make or Zapier, or from an AI agent, and the free tier covers your first few episodes.
About Javid Jamae
Founder & CEO at FFmpeg Micro
Javid is a software engineer, author, and entrepreneur with over 25 years of professional software development experience across enterprise, startup, and consulting environments. He founded FFmpeg Micro to make video processing accessible to developers through a simple, automation-first REST API.
You might also like

FFmpeg Can't Auto Reframe Video to Vertical. Do This Instead
FFmpeg has no auto reframe video vertical mode. Four crop strategies that ship, from a fixed offset to detection-driven tracking with smoothing and deadbands.

Kling 4.0 washed out on TikTok? Fix the tag, then the 9:16
Kling 4.0 TikTok washed out? Most 21:9 and 4K clips need a Rec.709 re-tag, not a tone map. ffprobe first, then the crop-vs-pad math for 9:16, 1:1 and 4:5.

gemini-omni-flash-preview is deprecated. Swap to Omni 1.1 Flash
gemini-omni-flash-preview was deprecated September 30, 2026. Swap to gemini-omni-1.1-flash in n8n, Make or curl, then reframe the 1080p output to 9:16.
Skip the command line
The Resize for Format blueprint reframes your video to any platform ratio: upload, pick the format, done.
Run it (free)