Creating an iOS App Preview with iMovie - ios

I understand all the requirements, having OS X Yosemite, etc... but my question is how to do it with iMovie? iMovie doesn't let the user change the dimensions of the movie screen size. They said it is possible but I don't see how. If anybody has done it with iMovie, some help would be greatly appreciated!
Thanks

Here is a trick using just iMovie and Quicktime to get the right dimensions.
Use QuickTime to record a short clip from the size of the device you need
Use iMovie and insert that clip into a new "App Preview" project
Add your actual video after the short clip
Now, any clips that you export will be in the right dimensions.
If you need to hide your short clip, you can shorten it to 0.1 seconds. Put a title over it and delete the text. Now your video starts with 0.1 seconds of a black screen.

Related

Slow lottie animation video rendering with AVAssetWriter and AVAssetWriterInputPixelBufferAdaptor on iPhone X

I'm using this code (thanks damikdk) to render lottie animation to video:
https://github.com/damikdk/LottieExportDemo/blob/master/LottieExportDemo/ViewController.swift
I'm using the oldExport() in the previous file and these two methods (append and fill) to fill the pixelbuffer with the image:
https://github.com/damikdk/LottieExportDemo/blob/master/LottieExportDemo/Helpers.swift
It works great on a iphone 5s and exports 30sec video in approximately 1min. But on a iPhone X it takes up to 10 min to export the same video with the same resolution settings. Is there a way to optimize this to work better on newer devices?
This repository was created as demonstration of bugs, you should not use it even as start point. Sorry if it's not obvious from description.
I am not sure what was wrong in your case, but I will check, if you share your code in issues.

Itunesconnect App Preview Video

I have tried many times to upload App Preview video.
But each time I failed.
Please recommend me best tool to convert my video to availble and how to.
Thanks
You must use Safari to upload your video.
I use QuickTime Player to record the screen of my app.
In QuickTime Player you can record in portrait and landscape, but you cannot rotate your screen during the record.
Open QuickTime Player > File > New Movie Recording (then select your device for camera and microfone).
Sample of record screen:
Apple App Preview Video Guidelines
As you can imagine, Apple wants to generate a similar Look & Feel for all videos. Therefore they released some guidelines, which you should mind when creating a preview video.
15-30 seconds length
Maximum file size of 500 mb
.mov, .m4v, .mp4 format
Only use screen capture
No (very less) copy – due to the reason that you can’t internationalize your video and only upload it once in one language
Don’t overlay animated hands, you can use touch hotspots if really necessary
For games: Show more gameplay scenes than cutscenes
You can use voice over – but mind the internationalization part – Apple recommends to only use a very limited and professional voice over if you have to
Your preview video should only contain content for which you have the full rights (don’t show you app streaming content from an iTunes Playlist or a YouTube video)
App Preview Video Format
Now the most important part – which format or size should your video have. As you have already read in my screenshot size article it can be quite frustrating creating a lot screenshots in different sizes.
Apple recommends you to use the following app preview resolutions (this is already a summary, that you have to create the least amount of different video versions):
iPhone 5+ iPhone 6 Plus: 1920 x 1080
iPhone 6: 1334 x 750
iPad: 1200 x 900

iOS App Preview without iPhone 6 Plus

I have done an iOS App Preview (Video) using iPhone 6 and Quicktime in Yosemite, but I cannot upload it for iPhone 6+ in iTunes Connect, and I don't have an iPhone 6+ Device.
Is there a way to make an App Preview (Video) for iPhone 6+ without the device ?
I have found a good solution!
In Keynote app, I changed the document size to be the same as iPhone 6+ size and imported the iPhone 6 video and resizes it.
I have resived the video to fit the document and exported it as a video.
That's it!
It is not a perfect solution, but it is good.
Solution how to upscale video using iMovie 10:
Create screen recording using QuickTime player. As a result you will have a video with 1334x750 resolution (or 750x1334, depends on screen orientation).
Find any sample video with resolution 1920x1080 (or 1080x1920). It can be preview of some other application or any other video.
Open iMovie 10 and create new App Preview (File -> New App Preview).
Drag-and-drop sample (from step#2) clip from Finder to the timeline (first imported clip's resolution will be used in export)
Drag-and-drop your actual video clip from Finder to the timeline.
Remove sample clip from the timeline (you don't need it anymore, final resolution already set)
Click on
Select your preview project, Share Project -> App preview
You will see that export resolution will be 1920x1080 (or 1080x1920)
Success! I used this trick several times already.
Disclaimer: This solution only work for downsampliing, if you know how to upsample video please share it with us
Hi iphoner, unfortunately you need to record it using a higher resolution device and use Handbrake to convert your videos.
I used a iPhone 6+ to record the video using Quicktime and encountered the same issue.
To upload a video for iPhone 6+, you need to upload a video with this format size 1920x1080.
1) Change "Anamorphic" to "custom"
2) unselect "keep aspect ratio"
3) Set the size (width and height) you want (Warning u can only downsample it/ you need a large resolution as your base video)
Other device acceptable formats:
ipad: 1200x900, 900x1200
iPhone 5.5inch/iPhone 3.5inch: 1920x1080,1080x1920
iPhone 4.7inch: 1334x750, 750x1334
For a more comprehensive guide please refer to this document by apple
You can generate the video from the simulator by running through the following steps.
Get your app running in the simulator.
I believe you will need to run the simulator at 100% scale to ensure 1080:1920
Open up Terminal and run the following command
$ xcrun simctl io booted recordVideo /path/Video.mov
Switch to your simulator window and run through your demo
When you have finished your demo switch back to your terminal window and Press CTL+C to stop the recording
Edit the movie in iMovie
In order to upload as an App Preview then it will need to be < 30 seconds. You can cut the video down a little, or speed some sections up in order to get it under 30 seconds.
Once you have finished editing the movie you can then export it (File->Share->iTunes)
This will save it to your iTunes library:
/Users/marcbeavan/Music/iTunes/iTunes Media/Home Videos/
This file is ready to be uploaded to iTunes Connect
File info for my video is shown below
This command line works perfectly for me every time. It comes from an answer to a similar question (link):
ffmpeg -i input.mp4 -acodec copy -crf 12 -vf scale=1080:1920,setsar=1:1 output.mp4
It will take the input.mp4 file, resize it and output ouput.mp4. You need to install ffmpeg before running the command.
Of course, upscaling leads to quality loss. But if you do not have a Plus screen, this is much better than not having a video app preview at all.
I make a lot of app previews and in all sizes. The easiest way is to have all the devices, but that's definitely not practical for most people. You could also edit the dimensions post production to "simulate" the actual device, even iPad. I would also recommend avoiding the problem all together by having someone like snappdemo.com do it for you pretty cheap.
If you have any way to record higher resolution, like an iPhone X and need 1080*1920, just follow these steps:
Open your higher resolution video in Quicktime.
Go to Edit -> rotate right.
Go to File -> Export as -> 1080p.
Open exported File in Quicktime.
Go to Edit -> Rotate Left.
Worked great for me.

AVFoundation max render size

I've searched quite a lot and it seems that couldn't find a definite answer to what is the maximum render size of a video on iOS using AVFoundation.
I need to stitch two or more videos side by side or above each and render them in one new video with a final size larger than 1920 x 1080. So for example if I have two full hd videos (1920 x 1080) side by side the final composition would be 3840 x 1080.
I've tried with AVAssetExportSession and it always shrinks the final video proportionally to max 1920 in width or 1080 in height. It's quite understandable because of all possible AVAssetExportSession settings like preset, file type etc.
I tried also using AVAssetReader and AVAssetWriter but the results are the same. I only have more control over the quality, bitrate etc.
So.. is there a way this can be achieved on iOS or we have to stick to max Full HD?
Thanks
Well... Actually the answer should be YES and also NO. At least of what I've found until now.
H.264 allows higher resolutions only using a higher level profile which is fine. However on iOS the max profile that can be used is AVVideoProfileLevelH264High41 which according the specs, permits a max resolution of 1,920×1,080#30.1 fps or 2,048×1,024#30.0 fps.
So encoding with H.264 won't do the job and the answer should be NO.
The other option is to use other compression/codec. I've tried AVVideoCodecJPEG and was able to render such a video. So the answer should be YES.
But.. the problem is that this video is not playable on iOS which again changes the answer to NO.
To summarise I'd say: it is possible if that video is meant to be used out of the device otherwise the video will simply not be useable.
Hope it will help other people as well and if someone else gives a better, even different answer I'll be glad.

Fullscreen GIF animation in Cocos2D

I have an animation (images serie) to do on the entire screen of the iPhone (retina and no retina)
Normally I do that with zwoptex using a similary technique to this http://gamedev.sugartin.info/2012/05/09/69/
But this time the size of images doesn't allow that.
I have also a 5sec-length video of the serie.
Is there any other solution?
any kind of images, that you want to display, must be placed in memory first of all. so, you cannot play animation, if you have too many frames to be loaded to memory. if you want to play such big animation, you can try to create video file and play it over your openGL view

Resources