FFmpeg vs. LaunchSpec

Two ways to make App Store preview videos. One involves memorizing codec flags.

The Comparison

The FFmpeg Way

ffmpeg -i input.mov \
  -vf "scale=886:1920:force_original_aspect_ratio=decrease,\
pad=886:1920:(ow-iw)/2:(oh-ih)/2,fps=30,\
tpad=stop_mode=clone:stop_duration=15" \
  -c:v libx264 -pix_fmt yuv420p -preset medium \
  -crf 18 -maxrate 12M -bufsize 24M \
  -profile:v high -level:v 4.0 \
  -c:a aac -b:a 256k -ac 2 -ar 48000 \
  -t 30 -shortest -movflags +faststart \
  output.mp4

And that's just for one device. You need a different resolution for each of the 8 Apple device classes.

The LaunchSpec Way

  1. 1.Upload your screen recording
  2. 2.Select your target device
  3. 3.Download your preview

Works for all 8 devices. Every spec handled automatically.

Feature by Feature

FeatureFFmpegLaunchSpec
Resolution handlingManually calculate and specify exact pixel dimensions per deviceAutomatic — select device, resolution is handled
Frame rateAdd fps filter, hope your source isn’t VFR (it probably is)VFR-to-CFR conversion at 30 fps, always
Audio encodingSpecify AAC, stereo, 48 kHz, 256 kbps — miss one and it’s rejectedCorrect audio encoding on every conversion
Duration enforcementCombine tpad for padding + -t for trimming, test edge casesAutomatically padded to 15s minimum, trimmed at 30s
Time to convert5–20 minutes (research, write command, debug, re-run)Under 60 seconds, start to finish
Knowledge requiredCodec profiles, filter graphs, container formats, Apple’s spec sheetNone
Multiple devicesRewrite the command for each of 8 device resolutionsPick a different device from the dropdown

Why Developers Dread FFmpeg for Previews

8 different resolution targets with exact pixel counts

VFR-to-CFR conversion requires understanding filter chains

Audio must be AAC stereo at 44.1 or 48 kHz — not mono, not surround

Duration must be 15–30 seconds — tpad for padding, -t for trimming

H.264 High Profile Level 4.0 — not Baseline, not Main

faststart flag required for streaming

One wrong flag and App Store Connect silently rejects

But I Already Know FFmpeg

If you're comfortable with FFmpeg, more power to you. But even FFmpeg experts waste time looking up Apple's exact specs for each device, re-running conversions when something's off by a pixel, and maintaining shell scripts across 8 device targets. LaunchSpec isn't about replacing your skills — it's about not spending 20 minutes on something that should take 20 seconds.

Related Resources

Ready to skip the command line?

Drop your screen recording and get a compliant preview. No flags, no filters, no frustration.

Convert Now