捕捉iOS模拟器视频应用程序预览

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

还有别的选择吗?

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

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

我是要求的是如果模拟器不适合屏幕,你能以100%分辨率录制视频吗?

291057 次浏览

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

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

iPhone的肖像

录制完成后,可以使用iMovie编辑视频。当你在制作iPhone Portrait App Preview时,分辨率必须是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中导出。

这是我所做的。

  1. 在iPad Air上用Landscape (1200x9004:3)录制电影

  2. 导入到iMovie并导出为1920x108016:9 (iPadLandscape16_9-1920x1080.mp4)

  3. 1440x1080删除视频的左右黑条。一个横条的宽度是240

     ffmpeg -i iPadLandscape16_9-1920x1080.mp4 -filter:v "crop=1440:1080:240:0" -c:a copy iPadLandscape4_3-1440x1080.mp4
    
  4. 缩小电影到1220x900

     ffmpeg -i iPadLandscape4_3-1440x1080.mp4 -filter:v scale=1200:-1 -c:a copy iPadLandscape4_3-1200x900.mp4
    

从我对苹果开发者论坛的回答

这里有一个解决方案,工作,不花费$300 (FinalCut Pro),但它需要ScreenFlow (AppStore中的ScreenFlow应用程序) ($100):

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

你可以使用QuickTime屏幕录制和iOS模拟器进行视频录制。这里的棘手之处在于获得正确的大小,以便iMovie在导出AppPreview时能够检测到输出分辨率。我还没有找到一种在iMovie中选择输出分辨率的方法,所以如果必须由您正在使用的媒体格式检测。这可能需要你尝试几次,但这是可行的。这是其中之一:我有300美元的FinalCut Pro还是我有一个小时左右的时间?如上所述,您只需要三个录音。实际上我可以在设备上做两个,因为我有它们,但我没有iPhone 6(还没有……:))。我还喜欢模拟器,因为你可以使用SimFinger之类的东西来模拟手势和按键。

好运!

您可以使用以下工具免费完成此工作。你至少需要一台真正的设备(我用的是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 < / p >

简介:

捕捉屏幕录音与QuickTime播放器

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

用iMovie创建应用预览

导入屏幕录音

接下来,您将用QuickTime Player捕获的屏幕录制文件导入iMovie。 在iMovie: < / p >
  1. 选择文件>导入媒体。
  2. 在出现的窗口中,选择屏幕录制文件。

创建一个应用预览项目

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

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

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

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

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

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

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

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

使用xcrun simctl:

xcrun simctl io booted screenshot <filename>.<file extension>


使用屏幕截图:

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


使用QuickTime播放器:

你可以使用QuickTime Player来记录屏幕。

  • 打开QuickTime Player
  • 从菜单中选择File
  • 选择New Screen recording

现在在Screen Recording窗口中,单击记录按钮。

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

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

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

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

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

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

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

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

开放的iMovie

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

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

下载Handbrake: https://handbrake.fr/downloads.php

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

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

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

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

对于Xcode 8.2或更高版本

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

  1. 在模拟器上运行你的应用程序

  2. 打开终端

  3. 执行命令

    • 截图

      xcrun simctl io booted screenshot <filename>.<file extension>

      例如:

      xcrun simctl io booted screenshot myScreenshot.png

    • 拍摄视频

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

      例如:

      xcrun simctl io booted recordVideo appVideo.mov

  4. 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中截屏,带掩码(用于非矩形显示)和一些其他标志:

xcrun simctl io booted screenshot --type=jpeg --mask=black screenshot.jpeg

Apple的模拟器用户指南在通过命令行段截图或录制视频中声明:

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


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

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

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


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

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

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

通过命令行截图或录制视频

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

  1. 在模拟器中启动应用程序。

  2. 启动终端(位于/Applications/Utilities),并输入适当的命令:

    • 要截取截图,使用screenshot操作:

      xcrun simctl io booted screenshot
      

      .命令末尾可以指定一个可选的文件名
    • 要录制视频,使用recordVideo操作:

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

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

      注意:您必须为recordVideo指定一个文件名。

      李< /引用> < / >

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

    有关simctl的更多信息,请在Terminal中运行此命令:

    xcrun simctl help
    

    有关simctlio子命令的更多信息,运行此命令:

    xcrun simctl io help
    

From Apple Documentation.

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

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

如果你想可视化鼠标点击,在步骤1之后选择选项控件并启用显示鼠标点击

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

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

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

  1. 如果要截图,在命令行中运行:

    xcrun simctl io booted screenshot
    
  2. 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.

你可以组合QuickTime播放器+ iMovie(免费)

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

截至2019年的今天,苹果让像我这样的低预算或一人项目开发人员的生活变得更容易了。 你可以在上面的文章中使用terminal命令从所需的设备模拟器中录制视频。然后使用iMovie的新应用预览功能。< / p >
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中执行此操作的博客文章,可以在在这里。中找到

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

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

--force重写如果文件存在
--codec到更高的帧速率

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

为此,我创建了RocketSim。它带有一个UI来开始录制,并将录制转换为应用程序预览所需的正确格式。

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

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

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

< p > 1。 enter image description here < / p >
  1. 或者按Command + R

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

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