现在我们可以向App Store提交应用的视频预览。根据苹果公司的说法,我们应该在iOS8设备和OSX 10.10设备上这样做。问题是你必须拥有所有不同的设备(4英寸、4.7英寸、5.5英寸和iPad)。

还有别的选择吗?

我想拍一段模拟器的视频。问题是,当以100%分辨率显示时,设备屏幕比我的全高清显示器还大。任何解决方案,可以捕捉视频从模拟器的全分辨率?

编辑: 因为很多人都在回答我没有问的问题让我说 记录一个设备大小并缩放它不是我要求的 我问的不是如何录制应用预览 -我问的不是你怎么做预告片;

我想问的是,如果模拟器无法在屏幕上显示,你能否以100%分辨率录制视频?


不幸的是,iOS模拟器应用程序不支持保存视频。最简单的事情就是使用Quicktime播放器来录制屏幕。当然,你会看到鼠标与它交互,这不是你想要的,但现在我没有更好的选择。


你应该在优胜美地使用QuickTime连接并记录你的iOS设备的屏幕。

iPhone的肖像

录制完成后,可以使用iMovie编辑视频。当你在制作iPhone人像应用预览时,分辨率必须是1080x1920,但iMovie只能在16:9 (1920x1080)导出。

一种解决方案是导入分辨率为1080x1920的录制视频,并将其旋转90度。然后以1920x1080的尺寸导出电影,并使用ffmpeg和以下命令将导出的视频向后旋转90度

ffmpeg -i Landscape.mp4 -vf "transpose=1" Portrait.mp4

iPad

iPad稍微复杂一点,因为它需要1200x900(4:3)的分辨率,但iMovie只能导出16:9的分辨率。

这是我所做的。

在iPad Air上录制电影(1200x900, 4:3) 导入到iMovie,导出为1920x1080,16:9 (iPadLandscape16_9-1920x1080.mp4) 将左右黑条移至1440x1080的视频。一杆的宽度为240 ffmpeg -i ipad庭园16_9-1920x1080.mp4 -filter:v "crop=1440:1080:240:0" -c:一个拷贝ipad庭园4_3-1440x1080.mp4 缩小电影到1220x900 ffmpeg -i ipad庭园4_3-1440x1080.mp4 -filter:v scale=1200:-1: -c:a copy ipad庭园4_3-1200x900.mp4

摘自我在苹果开发者论坛上的回答


以下是一个有效的解决方案,不需要300美元(FinalCut Pro),但它需要ScreenFlow (AppStore中的ScreenFlow应用程序)(100美元):

把你的设备连接到运行优胜美地的Mac电脑上 启动Quicktime并选择File/Newi Movie Recording 启动ScreenFlow并捕获您的视频 在ScreenFlow中编辑视频(添加文本,音乐等) 裁剪视频,使其只包含设备屏幕 导出苹果要求大小的视频(例如,1334x750)


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.

好运!


您可以使用以下工具免费完成此工作。你至少需要一台真正的设备(我用的是iPhone 5)。

使用简单但出色的appshow捕获视频(注意,这是一个非常简陋的工具,但非常容易学习)。这将以本机设备分辨率(640x1136)导出。

使用ffmpeg调整大小。由于四舍五入,你可以直接在分辨率之间切换,但你必须超大,然后裁剪。

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

对于iPad,你可以裁剪然后添加一个信箱。然而,像这样的裁剪通常不会产生与你的应用程序在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

我发现的最好的工具是Appshow。访问http://www.techsmith.com/techsmith-appshow.html(我不为他们工作)


苹果建议在实际设备上这样做,并提供了如何在iOS和OS X上使用QuickTime和iMovie来做到这一点的指南: https://developer.apple.com/app-store/app-previews/imovie/Creating-App-Previews-with-iMovie.pdf

简介:

捕捉屏幕录音与QuickTime播放器

使用Lightning电缆将iOS设备连接到Mac。 打开QuickTime播放器。 选择“文件>新电影录制”。 在出现的窗口中,选择您的iOS设备作为摄像头和麦克风输入源。

用iMovie创建应用预览

导入屏幕录音

接下来,将用QuickTime Player捕获的屏幕记录文件导入iMovie。 在iMovie:

选择“文件>导入媒体”。 在出现的窗口中,选择屏幕录制文件。

创建一个应用预览项目

要开始一个新的应用程序预览项目,选择文件>新应用程序预览。时间轴将出现,您可以在其中添加和安排剪辑来创建预览。


我也面临着同样的问题。它有一个非常简单的解决方案,对我来说很管用。只需遵循以下步骤:

1.在iMovie中制作一个预览视频。

2.使用共享文件选项导出视频。选择1920x1080,因为它可以用于5S和6 +。

3.下载Appshow for Mac by techsmith (https://www.techsmith.com/techsmith-appshow.html)。它是专门为制作应用程序预览视频。但我不推荐它制作视频,而只是用于导出。

4.选择一个新的应用预览视频,并通过选择更少的帧来自定义它,你可以稍后删除。

5.将iMovie视频导入这个模板。在右上角,你可以选择任何你想要的分辨率,appshow有应用程序预览所需的所有分辨率。

6.最后,只需选择设备并导出所选分辨率的视频。


使用xcrun simctl:

xxrun simctl IO启动截图<filename>。<文件扩展名>


使用屏幕截图:

使用cmd + shift + 5并调整选择的大小,以便记录模拟器。


使用QuickTime播放器:

您可以使用QuickTime Player录制屏幕。

打开QuickTime播放器 从菜单中选择File 选择新屏幕录制

现在在屏幕录制窗口中,单击录制按钮。

它将为您提供一个选项来记录整个屏幕或屏幕的选定部分。

您必须对模拟器进行选择,以便只记录模拟器部分。


我很惊讶没有人给我答案。这就是你要做的(如果你有至少一个合格的设备,这将起作用):

用你拥有的设备录制、编辑并完成应用预览。 导出为文件。 打开模拟器,在不同尺寸的iphone上打印屏幕1。 在iMovie中创建一个新的应用预览。 首先插入所需大小的截图,然后添加你已经制作的应用预览文件。 使用共享导出->应用预览 对于新的尺寸,重复步骤4到6。

你应该能够得到你的应用程序预览在所需的分辨率。


这是我发现的最简单的方法,你只需要一个iPhone和iPad:

使用QuickTime播放器记录设备屏幕:

连接您的设备。 打开QuickTime播放器。 选择文件>新建电影录制(CMD + alt + N) 在出现的窗口中,选择您的iOS设备作为最大分辨率的相机。 保存视频文件(CMD + S)

开放的iMovie

选择文件->新应用预览 从你的应用程序拖一个最大分辨率的图像,例如1920 x 1080的截图到项目。(即使你用iPhone 5录制视频,它也会使视频的尺寸变成1920 x 1080) 将您录制的电影拖到项目中。 选择“文件->共享->应用预览”保存

现在对你所有的设备都这样做,或者:

下载手刹:https://handbrake.fr/downloads.php

并调整高分辨率视频的大小:

拖动您的高分辨率视频到手刹 选择“图片设置”图标 调整大小到正确的大小-关闭并按“开始”图标-保存到桌面


在我的MBP的设置>显示>显示,我看到一个设置为“分辨率:默认显示/缩放”。我将其设置为“更大的空间”,然后尝试各种模拟器,所有模拟器似乎都能100%地适应放大屏幕。但我怀疑这在你的全高清屏幕上行不通……

另一种选择可能是尝试在模拟器上安装某种VNC服务器解决方案,如https://github.com/wingify/vnc,并使用VNC记录器进行记录-我相信有一个Python VNC记录器。


对于Xcode 8.2或更高版本

您可以使用xcrun simctl(一个命令行实用程序来控制模拟器)拍摄模拟器的视频和屏幕截图

在模拟器上运行应用程序 打开终端 执行命令 截图 xxrun simctl IO启动截图<filename>。<文件扩展名> 例如: xrun simctl io启动截图myScreenshot.png 拍一段视频 xrun simctl io boot recordVideo <filename>. txt<文件扩展名> 例如: xrun simctl io启动recordVideo appVideo.mov 按“ctrl + C”停止录像。

所创建文件的默认位置是当前目录。

Xcode 11.2及以后版本提供了额外的选项。

来自Xcode 11.2 Beta版本说明

simctl视频记录现在产生更小的视频文件,支持HEIC 压缩,并利用硬件编码支持的地方 可用。此外,可以在iOS 13上录制视频,tvOS 13, watchOS 6设备已恢复。

你可以使用额外的标志:

xcrun simctl io --help
Set up a device IO operation.
Usage: simctl io <device> <operation> <arguments>

...

    recordVideo [--codec=<codec>] [--display=<display>] [--mask=<policy>] [--force] <file or url>
        Records the display to a QuickTime movie at the specified file or url.
        --codec      Specifies the codec type: "h264" or "hevc". Default is "hevc".

        --display    iOS: supports "internal" or "external". Default is "internal".
                     tvOS: supports only "external"
                     watchOS: supports only "internal"

        --mask       For non-rectangular displays, handle the mask by policy:
                     ignored: The mask is ignored and the unmasked framebuffer is saved.
                     alpha: Not supported, but retained for compatibility; the mask is rendered black.
                     black: The mask is rendered black.

        --force      Force the output file to be written to, even if the file already exists.

    screenshot [--type=<type>] [--display=<display>] [--mask=<policy>] <file or url>
        Saves a screenshot as a PNG to the specified file or url(use "-" for stdout).
        --type       Can be "png", "tiff", "bmp", "gif", "jpeg". Default is png.

        --display    iOS: supports "internal" or "external". Default is "internal".
                     tvOS: supports only "external"
                     watchOS: supports only "internal"

                     You may also specify a port by UUID
        --mask       For non-rectangular displays, handle the mask by policy:
                     ignored: The mask is ignored and the unmasked framebuffer is saved.
                     alpha: The mask is used as premultiplied alpha.
                     black: The mask is rendered black.

现在你可以在jpeg中截图,带掩码(用于非矩形显示)和一些其他标志:

xrun simctl IO启动截图——type=jpeg——mask=黑色截图


苹果模拟器用户指南在“使用命令行截图或录制视频”段落中写道:

您可以使用xcrun命令行实用程序截取屏幕截图或录制模拟器窗口的视频。


要录制视频,请使用终端中的recordVideo操作:

xcrun simctl io booted recordVideo <filename>.<extension>

注意,该文件将在终端的当前目录中创建。


如果你想将视频文件保存在你的桌面文件夹中,使用以下命令:

xcrun simctl io booted recordVideo ~/Desktop/<filename>.<extension>

要停止录制,请在终端中按Control-C。


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 of simctl, run this command: xcrun simctl io help

来自Apple文档。


你可以用内置的截图工具记录屏幕的一部分:

按Shift-Command-5显示控制面板。 选择。 选择要记录的屏幕的一部分。这就是iPhone模拟器。 单击,停止录制。 一个缩略图将出现在屏幕的右下角。您可以在保存之前编辑它。

如果您希望可视化鼠标单击,请在步骤1之后选择“选项”控件并启用“显示鼠标单击”。


从Xcode 9和以上,你可以截图或录制视频使用simctl二进制,你可以在这里找到它:

/Applications/Xcode.app/Contents/Developer/usr/bin/simctl

您可以将它与xcrun一起使用,在命令行中命令模拟器。

在命令行中运行截图: xrun simctl IO启动截图 使用命令行在模拟器上录制视频: xrun simctl io启动recordVideo文件名。g mp4 / mov)

注意:您可以在您选择的任何目录中使用此命令。该文件将保存在该目录中。


您可以结合QuickTime播放器+ iMovie(免费)

首先从xcode中选择你想要的模拟器,并使用QuickTime Player记录屏幕。然后用iMovie制作App Preview,最后用Safari浏览器上传视频。很简单……:)


截至2019年的今天,苹果让像我这样的低预算或单人项目开发人员的生活变得更容易了。 你可以在上面的文章中使用terminal命令从所需的设备模拟器中录制视频。然后使用iMovie的新应用预览功能。

xcrun /Applications/Xcode.app/Contents/Developer/usr/bin/simctl io booted recordVideo pro3new.mov

iMovie -> File ->新应用预览


给喜欢使用ZSH函数的用户的提示。您可以通过添加一个与@Tikhonov Alexander的答案相同的函数来简化事情。

你可以这样开始:

edit ~/.zshrc

进入你的终端。

然后在文件中添加这个函数。

function recsim() {
    echo -n "Use CTRL+C to stop recording";
    xcrun simctl io booted recordVideo --codec=h264 --mask=black "$1.mp4";
}

要使用,输入如下内容:

recsim appPreview

进入你的终端窗口。注意:添加功能后必须重新启动终端才能工作。

此函数改编自Antoine Van Der Lee关于如何在bash中实现此功能的博客文章,可以在这里找到。


对于AppleTV模拟器(tvOS, AppleTV),您应该添加——display=外部参数。我用这个保存到桌面:

xcrun simctl io booted recordVideo --display=external --codec=h264 --force ~/Desktop/SimulatorVideo.mov

如果文件存在,强制重写 -编解码器到更高的帧速率


使用Xcode 12.5的新版本,您可以简单地使用⌘+ r记录模拟器屏幕。有关详细信息,请访问这里。


我创建RocketSim就是出于这个原因。它带有一个UI来开始录制,并将录制转换为应用程序预览所需的正确格式。

你可以简单地将录音拖到App Store Connect中,它就可以简单地工作。这里可以找到一个例子。


在Xcode 12中,只需在模拟器中按cmd + R来记录屏幕。cmd + S进行截图。


从Xcode 13开始,你可以直接从模拟器开始全分辨率的屏幕录制:

1.

或者按Command + R

按退出键或录音键停止录音

录制的视频是在设备分辨率,所以它必须调整到App Store预览分辨率(886x1920, 1080x1920, 1600x120等) iPhone 6.5英寸的长宽比与应用商店预览分辨率不完全相同,所以导出时请确保它是886x1920或1920x886。