Okay, so we can now submit video previews of our apps on the App Store. According to Apple we should do so with an iOS8 device and OSX 10.10.
The problem is you have to have all the different devices (4", 4.7", 5.5" and iPad).
Is there an alternative to this?
I am thinking of capturing a video of the simulator. The problem is the device screen is bigger than my FullHD
monitor when shown in 100% resolution. Any solution that can capture a video right from the simulator in full resolution?
Edit: Since a lot of people are answering questions I'm not asking let me say: - Recording one device size and scaling it is not what I'm asking; - How to record any app preview is not what I'm asking; - How you do your previews is not what I'm asking;
What I am asking is can you record a video from the simulator in 100% resolution if it doesn't fit on the screen?
This question is related to
ios
ios-simulator
ios8
video-capture
screen-capture
The best tool I have found is Appshow. Visit http://www.techsmith.com/techsmith-appshow.html (I do not work for them)
I'm actually surprised no one provided my answer. This is what you do (this will work if you have at least 1 eligible device):
You should be able to get your App Preview in the desired resolution.
For Apple TV Simulator (tvOS, AppleTV) you should add --display=external
parameter. I use this to save to desktop:
xcrun simctl io booted recordVideo --display=external --codec=h264 --force ~/Desktop/SimulatorVideo.mov
--force
to rewrite if file exist
--codec
to higher framerate
You can record a portion of the screen with built-in screenshot utility:
If you want to visualize mouse clicks, after step 1 select Options control and enable Show Mouse Clicks.
You can use the QuickTime screen recording and the iOS Simulators to do your video recordings. The tricky thing here is to get the correct size so that iMovie can detect the output resolution when you go to export the AppPreview. I haven't found a way to select the output res in iMovie so if must detected by the format of the media you are using. It may take you several tries but it's doable. It's one of those: do I have $300 for FinalCut Pro or do I have an hour or so of my time? You only need three recordings as mentioned above. I could actually do two of them on devices because I have them but I don't have an iPhone 6 (yet ... :) ). I also like the simulators because you can use something like SimFinger to simulate gestures and pressing of buttons.
Good luck!
As of today in 2019, Apple has made life much easier for low budget or one-man project developers like me. You can just use the terminal command from one of the above posts to record videos from the wanted device simulator. And then use iMovie's New App Preview feature.
xcrun /Applications/Xcode.app/Contents/Developer/usr/bin/simctl io booted recordVideo pro3new.mov
iMovie -> File -> New App Preview
Taking a Screenshot or Recording a Video Using the Command Line
You can take a screenshot or record a video of the simulator window using the
xcrun
command-line utility.
Launch your app in Simulator.
Launch Terminal (located in
/Applications/Utilities
), and enter the appropriate command:
To take a screenshot, use the
screenshot
operation:xcrun simctl io booted screenshot
You can specify an optional filename at the end of the command.
To record a video, use the
recordVideo
operation:xcrun simctl io booted recordVideo <filename>.<extension>
To stop recording, press Control-C in Terminal.
Note: You must specify a filename for recordVideo.
The default location for the created file is the current directory.
For more information on
simctl
, run this command in Terminal:xcrun simctl help
For more information on the
io
subcommand ofsimctl
, run this command:xcrun simctl io help
From Apple Documentation.
Apple recommends doing so on an actual device and has a guide on how to do this using QuickTime and iMovie on iOS and OS X: https://developer.apple.com/app-store/app-previews/imovie/Creating-App-Previews-with-iMovie.pdf
Summary:
Capture Screen Recordings with QuickTime Player
Create an App Preview with iMovie
Import Screen Recordings
Next you import the screen recording files that you captured with QuickTime Player into iMovie. In iMovie:
Create an App Preview Project
To start a new app preview project, choose File > New App Preview. A timeline appears where you can add and arrange clips to create your preview.
This is the way I found easiest and you only need one iPhone and iPad:
Record device screen with QuickTime Player:
Open iMovie
Now do this with all of your devices or:
Download Handbreak: https://handbrake.fr/downloads.php
And resize the high res video:
Using new release of Xcode 12.5 you can simply record simulator screen using ? + R. For details you can visit here.
I was facing the same problem. It has a very simple solution that worked for me. Just follow these steps:
1.Make a preview video in iMovie.
2.Export video using share file option. Choose 1920x1080 as it can be used for 5S, and 6 plus.
3.Download Appshow for Mac by techsmith (https://www.techsmith.com/techsmith-appshow.html.) It is specially made for making app preview videos. But i don't recommend it for making videos but rather just for exporting.
4.Choose a new App Preview video and customise it by choosing fewer frames which you can later delete.
5.Import your iMovie video into this template. On the top right corner you can choose any resolution you want, appshow has all the resolutions required for app preview.
6.Finally, just choose the device and export the video in your selected resolution.
In my MBP's Settings > Displays > Display, I see a setting for 'Resolution: Default for Display / Scaled'. I set it to 'More space', then try the various simulators, all of which seem to fit on the enlarged screen at 100%. I suspect that wouldn't work with your FullHD screen though...
An alternative might be to try to install some sort of VNC server solution on the simulator, like https://github.com/wingify/vnc, and record that with a VNC recorder - I believe there's a Python VNC recorder out there.
The Apple's Simulator User Guide states in Taking a Screenshot or Recording a Video Using the Command Line paragraph:
You can take a screenshot or record a video of the simulator window using the
xcrun
command-line utility.
To record a video, use the recordVideo
operation in your Terminal:
xcrun simctl io booted recordVideo <filename>.<extension>
Note that the file will be created in the current directory of your Terminal.
If you want to save the video file in your Desktop folder, use the following command:
xcrun simctl io booted recordVideo ~/Desktop/<filename>.<extension>
To stop recording, press Control-C
in Terminal.
You should use QuickTime in Yosemite to connect and record the screen of your iOS devices.
When you finished the recording, you can use iMovie to edit the video. When you're working on an iPhone Portrait App Preview, the resolution must be 1080x1920
but iMovie can only export in 16:9
(1920x1080
).
One solution would be to imported the recorded video with the resolution 1080x1920
and rotate it 90 degree. Then export the movie at 1920x1080
and rotate the exported video back 90 degrees using ffmpeg and the following command
ffmpeg -i Landscape.mp4 -vf "transpose=1" Portrait.mp4
The iPad is a little bit trickier because it requires a resolution of 1200x900
(4:3
) but iMovie only exports in 16:9
.
Here is what I've done.
1200x900
, 4:3
)1920x1080
, 16:9
(iPadLandscape16_9-1920x1080.mp4
)Remove left and right black bars to a video with 1440x1080
. The width of one bar is 240
ffmpeg -i iPadLandscape16_9-1920x1080.mp4 -filter:v "crop=1440:1080:240:0" -c:a copy iPadLandscape4_3-1440x1080.mp4
Scale down movie to 1220x900
ffmpeg -i iPadLandscape4_3-1440x1080.mp4 -filter:v scale=1200:-1 -c:a copy iPadLandscape4_3-1200x900.mp4
Taken from my answer on the Apple Developer Forum
You can do this for free with the following tools. You will need at least one real device (I used an iPhone 5)
Capture the video with the simple, but excellent appshow (note this is a very barebones tool, but it's very easy to learn). This will export at the native device resolution (640x1136).
Resize with ffmpeg. Due to rounding, you can go directly between the resolutions, but you have to oversize and then crop.
ffmpeg -i video.mov -filter:v scale=1084:1924 -c:a copy video_1084.mov
ffmpeg -i video_1084.mov -filter:v "crop=1080:1920:0:0" -c:a copy video_1080.mov
For ipad, you can crop and then add a letterbox. However, cropping like this usually won't yield a video that looks exactly like your app does on the ipad. YMMV.
ffmpeg -i video.mov -filter:v "crop=640:960:0:0" -c:a copy video_640_960.mo
ffmpeg -i video_640_960.mov -filter:v "pad=768:1024:64:32" -c:a copy video_768_1024.mov
ffmpeg -i video_768_1024.mov -filter:v scale=900:1200 -c:a copy video_900_1200.mov
A tip for users who like to use ZSH functions. You can simplify things a little by adding a function that does the same thing as @Tikhonov Alexander's answer.
Start out by typing:
edit ~/.zshrc
into your terminal.
Then add this function someplace in the file.
function recsim() {
echo -n "Use CTRL+C to stop recording";
xcrun simctl io booted recordVideo --codec=h264 --mask=black "$1.mp4";
}
To use, type something like:
recsim appPreview
into your terminal window. Note: Terminal must be restarted after adding the function before it will work.
This function is adapted from Antoine Van Der Lee's blog post on how to do this in bash, which can be found here.
Here is a solution that works and doesn't cost $300 (FinalCut Pro), but it does require ScreenFlow (ScreenFlow app in AppStore) ($100):
Unfortunately, the iOS Simulator app does not support saving videos. The easiest thing to do is use Quicktime Player to make a screen recording. Of course, you'll see the mouse interacting with it which is not what you want, but I don't have a better option for you at this time.
From Xcode 9 and on you can take screenshot or record Video using simctl binary that you can find it here:
/Applications/Xcode.app/Contents/Developer/usr/bin/simctl
You can use it with xcrun to command the simulator in the command line.
For taking screenshot run this in command line:
xcrun simctl io booted screenshot
For recording video on the simulator using command line:
xcrun simctl io booted recordVideo fileName.videoType(e.g mp4/mov)
Note: You can use this command in any directory of your choice. The file will be saved in that directory.
You can use QuickTime Player
to record the screen.
QuickTime Player
File
from the menuNew Screen recording
Now from the Screen Recording
window, click on record button.
It will provide you with an option to record the entire screen or a selective portion of your screen.
You will have to make a selection of your simulator so that only the simulator portion will be recorded.
Source: Stackoverflow.com