Originally published at ffmpeg-micro.com
Podcast clipping SaaS tools like Opus Clip, Riverside, Podcastle, and Descript charge between $19 and $500 per month. If you're a solo creator, an agency, or an automation builder, there's a cheaper way: FFmpeg.
The Pipeline
- Start with one full podcast episode
- Trim clips with
-ssand-t - Resize for each platform (9:16 vertical, 1:1 square, 16:9 landscape)
- Add text overlays for muted autoplay
- Batch all 10 clips through a script or API
Trim a Clip
ffmpeg -i podcast.mp4 -ss 00:12:30 -t 00:00:45 -c copy clip1.mp4
Or via the FFmpeg Micro API:
{
"inputs": [{"url": "https://storage.example.com/podcast-ep42.mp4"}],
"outputFormat": "mp4",
"options": [
{"option": "-ss", "argument": "00:12:30"},
{"option": "-t", "argument": "00:00:45"},
{"option": "-c:v", "argument": "libx264"},
{"option": "-crf", "argument": "23"}
]
}
Resize for Vertical (9:16)
ffmpeg -i clip1.mp4 -vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2" vertical-clip1.mp4
Cost Comparison
| Tool | Monthly Cost |
|---|---|
| Opus Clip | $19-$39/mo |
| Riverside | $24/mo+ |
| Descript | $24-$33/mo |
| FFmpeg Micro | Pay-per-minute, free tier |
A 1-hour podcast split into 10 clips costs pennies with FFmpeg Micro. Not $24. Pennies.
Common Pitfalls
-
-c copycuts on keyframes only (may start early) - Re-encode audio too (
-c:a aac) to avoid drift - Add
-pix_fmt yuv420pfor social platform compatibility - Keep CRF at 23 or lower for mobile viewing
Read the full guide at ffmpeg-micro.com/blog/repurpose-podcast-social-clips-ffmpeg
Top comments (1)
A few things we learned running our own server-side rendering pipeline for podcast clips, which map directly onto your pitfalls section:
-c copyis a trap for clip-per-moment workflows specifically. Keyframe spacing on phone and podcast-cam encodes is often 2-5 seconds, so "start the clip at the quote" silently drifts. We re-encode every cut; the render is slower but the in-point is honest.scale+padonly gets you a letterboxed talking head. If the speaker moves (stage talks, two-person interviews), you end up needing per-segment crop windows - which in our case comes from speaker-tracking data rather than ffmpeg filters, and that is the part that never fits in a one-liner.-vf ass=...) because positioning and animation are far cheaper to manage per-clip than chained drawtext filters.Solid writeup - the
-pix_fmt yuv420preminder alone will save someone an hour of "why does this look fine locally but break on upload".(We build Video To Reel, a mobile app that renders podcast clips server-side, so this pipeline is our day job. No link from us - just a good ffmpeg breakdown.)