Unable to load app preview in iTunes connect - app-store-connect

Has anyone been able to load an app preview video in iTunes connect? I receive an error every time, saying "Your file could not be loaded. Please try again."
Any workaround to this, that you're aware of?

I'm here to save the day. The root of the issue is that itunesconnect does not like the format of the file saved by quicktime, or pretty much any format for that matter.
I was able to find just 1 file format that worked. You will need a free program called HandBrake
Use this program to convert the file you are trying to upload with the options I have highlighted in this screenshot:
(Optional) If your video has no sound, go to the audio tab in HandBrake and remove the track, like so:
Note, when you are doing multiple conversions in a row, sometimes the output size gets screwed up, keep an eye on that (it might be a bug in handbrake).
That's it! Upload the file created by HandBrake and it works! Consider donating to the developer of HandBrake for an awesome app.
Edit: Quote from comments:
For those who are struggling (like I was) to make a video 1080p
(1920x1080), don't forget to go to the Picture tab and: change the
Anamorphic setting to "Off", change the Modulus setting to "8" and
last but not least change the Cropping setting to "Custom" and set the
Top, Bottom, Right, Left to "0" – gaskbr Aug 18
Edit 2: You have to set the audio right also, looks like Apple don't accept files without audio channels anymore. Set the codec to AAC, 44.1 (or 48 kHz), bitrate 256.

I have confirmed that it is because of the low upstream speed of certain ADSL, I have to buy a 3G hotspot to upload my preview video.
iMovie10.0.6 can export 'App Preview.mp4' directly, no need to convert by HandBrake.
Apple has answered me that 'Please be advised that we cannot guarantee a successful delivery if you are on a slow internet connection.'.
But I think Apple should improve their upload service like Google does.

I was having the same issue and Handbrake wasn't helping.
Then I found this:
https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Appendices/Properties.html#//apple_ref/doc/uid/TP40011225-CH26-SW14
I put together my app preview video in After Effects. So when I rendered the movie out I matched the App Preview Specifications seen in the link above and my app previews finally uploaded properly.

I had the same problem and found out that I had to strictly follow the video specifications defined here: https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Appendices/Properties.html#//apple_ref/doc/uid/TP40011225-CH26-SW14
My level was set to 5.1, audio bitrate was at 192 kbps and at 48 kHz. So I could upload the video but it showed this error message. With the correct settings every thing works fine!
I think the relevant change I made was setting the level from 5.1 to 4.0.
Some specifications you might consider for H.264 videos:
- CBR between 10 and 12 Mbps.
- Max Level 4.0.
- Audio at 256 kbps AAC with 44.1 kHz.
- Max 30 fps.
- Max 500 Mb.
- Min 15 sec, max 30 sec.

Messing about with Handbrake etc. was tedious so I made an app specifically for converting videos for iTunes Connect.
https://itunes.apple.com/gb/app/preview-video-converter/id1137451860?mt=12

Sometimes the error has nothing to do with your video or format. It's THEIR server.
I had a video that uploaded fine one day and got the ERROR : "Your app video preview is in the wrong format." I did everything I could to tweak, check, change, re-export etc etc to fix it - thinking that it was me. It wasn't.
They have server issues and give an error when there's nothing wrong on your end.
HOW IT WORKED FOR ME
Logout of iTunes Connect
Relax
Go to sleep
Wake up in the morning, relogin to iTC and try again. IT WORKS! With the exact same video file in the exact same format!!!
My steps were to upload the new video. Once I see the play button in Safari, I played the video all the way through. Closed that popup. Save. Then submit. I did get that message that says it could take 24 hrs for video to process but I did not get the format error.
Good luck. Hope this helps someone.

To know more precisely why a video is being rejected, open the developer console, and look at the code. Although Apple doesn't show the problem in the interface, the code reveals why a video was rejected.
In our case, it looked like this:
errorCodes: Array (5)
0"MOV_H264_LEVEL_TOO_HIGH"
1"MOV_AUDIO_IS_MISSING"
2"MOV_AUDIO_CODEC_NOT_ACCEPTABLE"
3"MOV_INVALID_AUDIO_FORMAT"
4"MOV_AUDIO_TRACKS_DURATION_TOO_SHORT"
Array Prototype
localizedMessage: "The H264 Level is too high. Please refer to Apple's documentation for appropriate formats."
nonLocalizedMessage: "H264 Level is too high. Please refer to Apple's documentation for appropriate levels."
statusCode: 400
suggestionCode: "MOV_RESAVE_LOWER_LEVEL"

Use iMovie and create an App Preview project, then export it as an App Preview video.

If you are starting with mp4 videos created by ScreenCastOmatic, these steps work almost perfect:
http://daimtech.wordpress.com/2014/09/26/how-to-create-and-submit-a-preview-video-for-app-store-apps-using-mavericks-and-ios-8/
The one missing step is the audio needs to be in stereo form. Use ffmpeg with -strict 2 -ac 2 for the output file to create stereo aac, like so:
ffmpeg -i Preview.mp4 -strict -2 -vf scale=1136:640 **-ac 2** output.mp4

Adding this because I finally was able to capture a video from the Simulator and convert it to properly upload on the App Store.
First, to capture the video:
xcrun simctl io booted recordVideo myvideo.mp4 --codec h264 --force
Then, to convert it:
ffmpeg -I myvideo.mp4 -vf scale=1600:1200,setsar=1:1 -c:v libx264 -crf 1 -profile:v high -level:v 4.0 -r 30 -c:a copy rescaledvideo.mp4
The above rescales to iPad size, makes sure the H.264 level is acceptable, and sets the frame rate to 30fps. Apple also requires an audio track. Since the simulator doesn't have one you can add one like this:
ffmpeg -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 -I rescaledvideo.mp4 -shortest -c:v copy -c:a aac rescaledvideo+audio.mp4
I wrote a script here to capture and convert iOS simulator videos:
https://github.com/kkieffer/appPreview

You can do it online using this site
http://video.online-convert.com/convert-to-mp4
and set the following
vid bitrate : 10240
frame rate: 30
audio quality: 256

My problem was that my video was too short. Apparently, a 15 second video won't do it. So I just recorded a longer video.
I used Apple's built in screen recorder available in iOS 11.X. No video formatting needed.

Absolute nightmare 😱 This is what I did.
I recorded the app using my device and quicktime which gave me a portrait video, then created an 'app preview project' using iMovie, and exported it as an 'app preview project'. The device I had that day was an iPhone 6.
The resulting dimensions from iMovie were 750 x 1334 px but iTunes Connect was asking for 1080 x 1920 px which was surprising given what the documentation from apple was saying and also that its all just supposed to work iMovie 🤷‍♂️.
so then I used this site to convert my video to a .mov file and set the screen size to 1080 x 1920 (portrait (reverse for landscape)) set the audio codec to mp3 and video to mp4 (all of this was after trial and error)
finally I converted the .mov file to .MP4
Finally was able to upload to iTunes connect and it worked 🎉
😉✌️

Just had the same issue. I resolved it by exporting the original video to mp4. It didnt worked by converting with HandBrake.

I couldn't get it to work with Handbrake either, but I did get it to work (finally) with Quicktime 7. I don't even know if Apple sells iTunes 7 anymore, but it has more export options than the newer version of Quicktime do. I think iMovie might give you similar export options.
I started with a Quicktime movie (mov) file recorded from my Mac in Yosemite using the iPhone as a video source.
In Quicktime 7 I went to File -> Export and chose Movie to Quicktime Movie, and used the following settings for audio and video.

Adding this here incase it helps someone else.
I was also having trouble with this and didn't think the Handbrake method was required for me because I was using Adobe CC (After Effects > Adobe Media Encoder), so I was able to specifically choose all the correct settings according to the Apple Guidelines.
But in my case the issue wasn't the format, but possibly the length it took to upload / upstream bandwidth (an undocumented timeout?).
Tried it at home with crappy Australian cable 40mb mp4 file at 60kb/s, took about 20minutes to fully upload, and kept showing that error after it, with various formats.
Switched to my office internet which uses fibre, it uploaded in 5 seconds successfully, no format change required.
Like some of the other answers here, the Apple specifications helped a lot: https://developer.apple.com/library/ios/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Appendices/Properties.html#//apple_ref/doc/uid/TP40011225-CH26-SW14

A slow internet connection could be the problem.
I also got the error message "Your file could not be loaded. Please try again." while uploading the app preview video.
I could solve the problem by switching from wifi with 160 kBit/s upload to my companies internet connection with Ethernet and 12 Mbit/s upload.

Sometimes there are issues on the iTunes Connect server and you have to wait a little bit before trying to submit again. Usually when you upload a video and then save it, you'll get this message on top of the video:
Processing app video. This process could take up to 24 hours.
Sometimes when I save videos that I know should work, I don't get this and I get the message mentioned in the OP. Try coming back to it later and it will probably work (assuming you've followed all of Apple's guidelines).

If you have used QuickTime to make a screen recording, try changing the frame rate to 30fps using ffmpeg:
https://stackoverflow.com/a/28939013/1588248

I try with Apple guide to create new movie.
I small tip that when you drop video to ItunesConnect and click save button together with it, don't wait. Then you have processing screen appear. Wait from here.
That's my way, hope this help!

My solution is just to change screenshot Japanese name to English name then it works.

FWIW, here are the ScreenFlow 5 settings I used successfully to upload my app preview:
Web - High: Customized
H.264 Video:
Framerate: 30fps
Datarate: 1200 kbits/sec
Profile: Main
Keyframe Rate: Automatic
AAC Audio:
Sample rate: 44.1kHz
Datarate: 256 kbits/sec
Channels: Stereo
The important bit seemed to be not to uncheck the AAC Audio.

Using the unsupported file name characters was the issue in my case – I had to remove "space bars" from my video's file name.

I use ffmpeg to modify videos so they are accepted in iTunes connect (modify as you need):
# Reduce frame rate from 60 to 30
ffmpeg -y -r 30 -i input.mp4 -strict -2 output-almost.mp4
ffmpeg -y -i output-almost.mp4 -filter:v "setpts=0.5*PTS" -strict -2 output.mp4
rm -f output-almost.mp4
# Trim video
# From second 10, take 30 seconds
ffmpeg -i input.mp4 -strict -2 -ss 10 -t 30 -async 1 output.mp4
# Set codec, bitrate, etc....
ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline -level 4.0 -pix_fmt yuv420p -c:a aac -ac 2 -b:a 256k -b:v 10M -movflags faststart -strict -2 output.mp4
Also, sometimes when I press "save" in iTunes connect, after I uploaded the video, I get an error. But, then I change the tab to see another screenshots size, then I go back, press save again, and... it's saved without any error (awesome Apple...)

Some other advice:
Record video using a Simulator.
Add silent mp3 (get here) audio track using OnlineConverter
Use HandBreak as described above but also remember to set the resolution as required (depends on device).

Related

Flash playback slow with progressive download

Using VideoJS 4.0.4 (it also did this in version 3) the playback is slow/choppy in Chrome (not tested in other browsers) when using the Flash player. The playback smooths out after the buffer finishes loading the full video. Is there any fix for this?
I'm not sure if this is exactly what you are experiencing so apologies if this is irrelevant, but for me the flash player was waiting until the whole video was loaded before it would start playing.
If you are using the mp4 format, I found that moving the moov atom to the front of the movie file with qt-faststart helped a lot.
Here are some resources I found when I had this similar problem.
http://www.adobe.com/devnet/video/articles/mp4_movie_atom.html
http://help.videojs.com/discussions/problems/1141-ie8-flash-fallback-buffers-entire-video-before-it-starts-to-play
Post processing in ffmpeg to move 'moov atom' in MP4 files (qt-faststart)
I fixed it. It ended up being the Flash player. I went to chrome://plugins, clicked the + at the top right, and noticed I had 2 Flash plugins installed: 11.7.700.225 (pepflashplayer.dll) and 11.7.700.224 (NPSWF32_11_7_700_224.dll). I disabled them one at a time and retried the video - the 11.7.700.224 one ran flawlessly while buffering, while the 11.7.700.225 version was the one causing the choppiness.

avs2avi stripping audio channel?

I'm trying to build a video using a command line wizard I've written. To do this, I am constructing an AVISynth file (in this case, a huge 1,820-line, 94Kb file) and use avs2avi to render it.
It works great, but for some reason it doesn't save the audio.
Here's the general layout of my AVS:
# lots of code to generate the video here
vid = titles+main+ending
aud = WAVSource("render.wav")
AudioDub(vid,aud)
It plays fine in Media Player, audio and all. But with this command line:
avs2avi render.avs render.avi -c XVID
It renders the video without any sound. Similarly, if I drop the -c XVID parameter, I get the dialog asking me for a compression format and I still get no sound.
What gives, and how can I fix this? The only alternative I'm seeing is using something like VirtualDub to put the audio track back in, but it seems like a hassle.
Edit: It doesn't work with simple scripts either.
BlankClip(length=100,width=256,height=256,fps=25).AudioDub(WAVSource("beep.wav"))
Produces sound in Media Player, and a silent video through avs2avi.

Chrome stops video execution

Using IE everything goes well (i got a mp4 video with priority execution setted on flash). when i try to view my video on chrome all seem to be good too, but in few seconds (not always but often) videojs crashes.
This is the log:
error:MediaError
code:3
What should i do?
According to HTML5 spec error code MEDIA_ERR_DECODE = 3 means that video was failed to be decoded. Chrome could reach broken frame e.g. video was encoded incorrectly.
In my experience HTML5 video decoding has poor support when it comes to error handling. Flash is more bullet-proof here. I got an example when Chrome (HTML5) failed to play video but it was playing fine in FF (flash). Converting to different pixel map (yuvj420p -> yuv420p) resolved my issue.
It means that first you should try encoding video with different options. As an option you can use ffmpeg

MP4 in Video.js not playing until fully loaded

I'm using Video.js to play back videos in MP4 format on a client's website.
The player uses html5 video and Adobe Flash Player as a fallback.
(In my case it seems to use Flash always so I don't know if the problem exists in the native html5 player as well.)
The video only starts playing after the *.mp4 file is completely loaded. So no buffer for a few seconds. The file must be completely downloaded by the browser before it starts playing.
When the video is long, the visitor has to wait very long before he can even see that the video is working.
The question now is, is it the browser, the script (video.js) or the video file that creates that problem.
On the videojs.com website however the video is playing back while loading, so works properly. Therefore I think it can't be the browser.
Has anyone else had that problem? How can I fix this issue?
Any advice is very much appreciated!
Thanks
Max
That occurs because the moov atom of the mp4 file is on the end of the file, the player needs to know the moov atom before start playing, you can move easily the moov atom to the beginning of the file with MP4Box, there is a gui version for Windows.
In Linux command line you move the MA with: MP4Box -add my_video.mp4 my_newVideo.mp4.
This takes a few seconds.
More info:Adobe's explanation of moov atomhere
Are you sure that you have your tag with preload="none" because I was having the same issue and I had preload="auto". I changed it to "none", it worked great!!
My issue had nothing to do with the moov atom because I tried that too and it didn't have any effect. I even removed this converted video and it still worked with preload="none".
kjsharks
I use this command to add the metadata:
MP4Box -isma your-file.mp4
;)
Quoting http://docs.videojs.com/docs/guides/options.html
The preload attribute informs the browser whether or not the video data should begin downloading as soon as the video tag is loaded. The options are auto, metadata, and none.

Code to play AVI file in xcode

I am creating an iPhone application, which can play many media formats. I am not able to play AVI file format, where as I am able to play other formats (for e.g. MP3, MP4, MOV etc). When I try to play AVI, it shows black screen and display is hidden. Any suggestions on what I can do to fix this issue?
Take a look at this tutorial on playing video with ffmpeg and SDL, both available for the iPhone.
An ffmpeg and SDL Tutorial or How to Write a Video Player in Less Than 1000 Lines
It's written in C, but consider it pseudocode, and adapt it in Objective C accordingly.
.avi is a container format, not a specific audio/video codec. Depending on the contents of the .avi container, it may or may not be possible to decode the video on an iOS device (due to hardware limitations). If it is possible to decode the video in real time, you may have some luck using the libav (aka ffmpeg) library to decode it.