I made an App Store preview video using QuickTime player on OS X Yosemite.
When I try to upload the video to iTunesConnect, I get an error message:
<
I scripted this into a borne again shell (bash) to convert a bunch of files. You can add 'rm $file' to the script to delete the original file if you wish, but do not do this unless you know exactly what you are doing and take full responsibility for the risks involved. I list 30s in my filename convention to specify the length of the video. If your file name convention is different you will need to adjust accordingly.
#!/bin/bash
for file in `ls *s.mov`
do
newFileName=`echo $file | sed s/s.mov/s_r24.mov/`
# echo $file $newFileName
if [ -e $newFileName ]; then
echo $newFileName "exists"
else
echo ""
# echo $newFileName "does not exist"
ffmpeg -i $file -qscale 0 -r 24 -y $newFileName
fi
done
This is what worked for me:
ffmpeg -i input.mov -qscale 0 -r 24 -y output_5.mov
-qscale 0 made sure the length stayed the same but the frame rate dropped from 56 or so (as it was recorded from my iPhone6 by the QuickTime) to exactly 24 !!
Then managed to successfully upload to iTunes, yay!
March 28, 2019 EDIT:
There is also this option to just do it with iMovie: Creating App Previews with iMovie
Just did my first movie. hit lots of snags - heres quick steps to avoid them:
This rescales one video into all the required framerate and sizes to match what App Store Connect needs:
IN=IMG_3518.TRIM.MOV
ffmpeg -i $IN -s 1080x1920 -r 30 5.5.mov
ffmpeg -I $IN -s 886x1920 -r 30 6.5.mov
ffmpeg -I $IN -s 1200x1600 -r 30 ipp3.mov
Don't use this. You should make all your videos by running on the actual different devices. Your account will be banned, your house will catch fire, your cat will die.
sh resize_video.sh
This script, will convert videos as needed by the AppStore.
INPUT_VIDEO=app_preview.mov
mkdir -p 6.5
mkdir -p 5.5
mkdir -p 12.9
WIDTH=886
HEIGHT=1920
OUTPUT_VIDEO=6.5/app_preview.mov
rm -f $OUTPUT_VIDEO
ffmpeg -i $INPUT_VIDEO -qscale 0 -r 24 -y -vf scale=$WIDTH:$HEIGHT,setsar=1:1 $OUTPUT_VIDEO
WIDTH=1080
HEIGHT=1920
OUTPUT_VIDEO=5.5/app_preview.mov
rm -f $OUTPUT_VIDEO
ffmpeg -i $INPUT_VIDEO -qscale 0 -r 24 -y -vf scale=$WIDTH:$HEIGHT,setsar=1:1 $OUTPUT_VIDEO
WIDTH=1200
HEIGHT=1600
OUTPUT_VIDEO=12.9/app_preview.mov
rm -f $OUTPUT_VIDEO
ffmpeg -i $INPUT_VIDEO -qscale 0 -r 24 -y -vf scale=$WIDTH:$HEIGHT,setsar=1:1 $OUTPUT_VIDEO
https://gist.github.com/5lineofcode/ba6fc90ed7628c3acf11a735437c7944
You can fix it easily in iMovie (I used 10.1.10).
1. Go to main screen of iMovie.
2. File -> New App Preview.
3. Drag your movie to the project.
4. File -> Share -> App Preview.