Search code examples
iosiphoneffmpegapp-storeapp-store-connect

How do I upscale an iOS App Preview video to 1080 x 1920?


I just captured a video of my new app running on an iPhone 6 using QuickTime Player and a Lightning cable. Afterwards I created an App Preview project in iMovie, exported it and could successfully upload it to iTunes Connect.

Apple requires developers to upload App Previews in different resolutions dependent on screen size, namely:

  • iPhone 5(S): 1080 x 1920 or 640 x 1136
  • iPhone 6: 750 x 1334 (what I have)
  • iPhone 6+: 1080 x 1920

Obviously, 1080 x 1920 is killing two birds with one stone. I know that upscaling isn't the perfect solution, but it's meeting my needs. Since I don't own a 6+, another recording session won't do the trick.

Unfortunately, iTunes Connect is extremely picky about what to accept. Here's what I tried, to no avail:

  • Handbrake, iMovie, QuickTime do not support upscaling
  • MPEG Streamclip
  • ffmpeg -i input.mp4 -acodec copy -vf scale=1080:1920 output.mp4

Strangely enough, iTunes Connect keeps complaining about the wrong resolution when I try to upload the output.mp4 of ffmpeg.


Solution

  • Finally, ffmpeg -i input.mp4 -acodec copy -crf 12 -vf scale=1080:1920,setsar=1:1 output.mp4 did the trick!

    Turns out that ffmpeg tries to be smart about aspect ratio, so that the actual size is 1079x1920 with an aspect ratio of 2000:2001.

    • setsar=1:1 forces an aspect ratio of 1:1 and hence, the right resolution
    • -crf 12 as desired quality roughly results in the same file size as the original file created by iMovie, so it should be a safe bet bit rate-wise