为App Preview捕获iOS模拟器视频

AXE*_*AXE 348 video-capture screen-capture ios ios-simulator ios8

好的,我们现在可以在App Store上提交我们的应用程序的视频预览.根据Apple的说法,我们应该使用iOS8设备OSX 10.10..问题是你必须拥有所有不同的设备(4",4.7",5.5"和iPad).

有替代方案吗?

我正在考虑捕捉模拟器的视频.问题是FullHD当以100%分辨率显示时,设备屏幕比我的显示器大.任何能够以全分辨率直接从模拟器捕获视频的解决方案?

编辑:由于很多人都在回答问题,我不是要问我说: - 记录一个设备大小并缩放它不是我要问的; - 如何记录任何应用预览不是我要求的; - 你如何做预览不是我要求的;

什么问的是你可以记录从100%分辨率模拟器的视频,如果它不适合在屏幕上?

Tik*_*der 626

对于Xcode 8.2或更高版本

您可以使用xcrunXcode命令行实用程序获取Simulator的视频和屏幕截图.

  1. 在模拟器上运行您的应用程序.
  2. 打开Terminal.app
  3. 运行命令

    • 截取屏幕截图 xcrun simctl io booted screenshot <filename>.<file extension>
    • 拍摄视频,xcrun simctl io booted recordVideo <filename>.<file extension>.

例如截图:xcrun simctl io booted screenshot myScreenshot.png
例如视频:xcrun simctl io booted recordVideo appVideo.mov

  1. 按此ctrl + c按钮停止录制视频.

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

  • 在 2013 款 MacBook Pro 上使用默认设置录制时,帧速率非常低。指定“--codec=h264”解决了该问题并产生流畅的视频。 (15认同)
  • 这给了我糟糕的视频质量. (12认同)
  • 是否可以使用`xcrun`显示视频内容? (11认同)
  • 以 h264 格式捕获给我带来了更高的帧速率。`xcrun simctl io 启动 recordVideo --codec=h264 capture.mp4` (8认同)
  • 听起来就像我需要的那样.不幸的是,它崩溃在我的计算机上:"因未捕获的异常而终止应用程序'NSInternalInconsistencyException',原因是:'无法为视频编写器创建金属设备.'"Google对这个问题一无所知.有任何想法吗? (4认同)
  • 我也"无法为视频编写器创建金属设备".我猜那是因为我们的Mac太老了,无法运行Metal!通过错误消息,它使用Metal图形API捕获模拟器的输出,而Metal仅在Macs> 2012上运行:http://www.imore.com/here-are-macs-work-os-x -EL-capitans金属 (4认同)
  • 使用以上命令,我的视频质量不佳。指定mp4为我解决了这个问题:`xcrun simctl io booted recordVideo --type = mp4 &lt;视频文件的路径&gt; .mp4` (4认同)
  • 完全在我的2015 MacBook Pro上运行10.12.4我只是添加按下Ctrl-C终端停止录制,我还没有尝试过提交到iTunesConnect!但看起来不错. (3认同)
  • 它也可以捕获de音频应用程序吗? (3认同)
  • 这似乎不会捕获音频. (3认同)
  • 从Apples文档:注意:使用Simulator录制视频需要Mac计算机和支持Metal框架的macOS版本.有关支持金属的Mac计算机列表,请参阅https://support.apple.com/en-us/HT205073. (2认同)
  • 要完成视频,只需使用`cmd + c`即可 (2认同)
  • 你们有没有人为你的视频添加音频有任何变通方法? (2认同)

Kal*_*esh 196

您可以QuickTime Player用来录制屏幕.

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

现在从Screen Recording窗口中单击"录制"按钮.

它将为您提供记录整个屏幕或屏幕选择部分的选项.

您必须选择模拟器,以便仅记录模拟器部分.

  • 这是这个问题的唯一正确答案.所有其他答案都要求您使用设备. (17认同)
  • 如果您的模拟器尺寸大于屏幕,这将不起作用.您可以录制Mac的整个屏幕或屏幕的选定部分. (6认同)
  • 这有效,但你会看到鼠标指向模拟器.它可用于测试目的,但不适用于营销活动视频. (5认同)
  • 以及如何停止录制?:S (3认同)

ali*_*-hk 71

Apple建议在实际设备上执行此操作,并在iOS和OS X上使用QuickTime和iMovie指导如何执行此操作:https: //developer.apple.com/app-store/app-previews/imovie/Creating-App -Previews与- iMovie.pdf

摘要:

使用QuickTime Player捕获屏幕录制

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

使用iMovie创建应用预览

导入屏幕录制

接下来,将使用QuickTime Player捕获的屏幕录制文件导入iMovie.在iMovie中:

  1. 选择文件>导入媒体.
  2. 在出现的窗口中,选择屏幕录制文件.

创建应用预览项目

要启动新的应用预览项目,请选择"文件">"新建应用预览".将出现一个时间轴,您可以在其中添加和排列剪辑以创建预览.

  • 这是一个很好的答案,除了它不是从模拟器捕获视频(仅来自实际设备). (27认同)
  • 我没有所有不同类型的设备 (9认同)

Eri*_*ang 57

我真的很惊讶没有人提供我的答案.这就是你所做的(如果你有至少一个符合条件的设备,这将有效):

  1. 使用您拥有的设备录制,编辑和完成App Preview.
  2. 导出为文件.
  3. 转到您的模拟器并在每个不同尺寸的iPhone上打印1张照片.
  4. 在iMovie中创建新的App Preview.
  5. 首先插入所需大小的屏幕截图,然后添加您已经制作的App Preview文件.
  6. 使用Share - > App Preview导出
  7. 对于新尺寸,重复步骤4到6.

您应该能够以所需的分辨率获得App Preview.

  • 埃里克,你是个天才.这很完美!我必须确保以100%的屏幕尺寸拍摄我的模拟器截图. (8认同)
  • 埃里克,很好的答案。非常感谢你! (2认同)
  • 埃里克,你真棒。这个技巧就行了。 (2认同)
  • 这是最好的解决方案。 (2认同)

ata*_*asa 32

使用新版本的 Xcode 12.5,您可以简单地使用? +。有关详细信息,您可以访问这里


bru*_*lla 30

您应该使用Yosemite中的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
Run Code Online (Sandbox Code Playgroud)

iPad的

iPad有点棘手,因为它需要1200x900(4:3)的分辨率,但iMovie只出口16:9.

这就是我所做的.

  1. 在横向上的iPad Air上录制电影(1200x900,4:3)
  2. 导入到iMovie并导出为1920x1080,16: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
    
    Run Code Online (Sandbox Code Playgroud)
  4. 缩小电影到 1220x900

    ffmpeg -i iPadLandscape4_3-1440x1080.mp4 -filter:v scale=1200:-1 -c:a copy iPadLandscape4_3-1200x900.mp4
    
    Run Code Online (Sandbox Code Playgroud)

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

  • 这不回答这个问题. (13认同)
  • 这很聪明,但使用 ffmpeg 重新编码会使视频质量下降太多,以至于无法使用。 (2认同)

Tib*_*abo 28

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

1. 在此输入图像描述

  1. 或者按 Command + R

按 Esc 键或录音按钮停止录音

录制的视频是设备分辨率,因此必须将其调整为App Store预览分辨率(886x1920、1080x1920、1600x120等)。iPhone 6.5英寸的宽高比与所需的App Store预览分辨率不完全相同,因此确保导出时它是 886x1920 或 1920x886。


Sha*_*afa 23

使用命令行截取屏幕截图或录制视频

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

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

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

    • 要截取屏幕截图,请使用以下screenshot操作:

      xcrun simctl io booted screenshot
      
      Run Code Online (Sandbox Code Playgroud)

      您可以在命令末尾指定可选文件名.

    • 要录制视频,请使用以下recordVideo操作:

      xcrun simctl io booted recordVideo <filename>.<extension>
      
      Run Code Online (Sandbox Code Playgroud)

      要停止录制,请按终端中的Control-C.

      注意:您必须为recordVideo指定文件名.

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

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

    xcrun simctl help
    
    Run Code Online (Sandbox Code Playgroud)

    有关io子命令的更多信息simctl,请运行以下命令:

    xcrun simctl io help
    
    Run Code Online (Sandbox Code Playgroud)

来自Apple文档.

  • 没有音频制作:( (3认同)
  • 苹果文档链接不是很具体/没有帮助。我不得不四处搜寻,然后才发现可以使用的视频文件扩展名为“ h264”,“ mp4”或“ fmp4”。例如:`xcrun simctl io booted recordVideo test-video-recording.mp4`。另外,要结束视频,我必须用`control` +`c`结束终端进程。 (2认同)

Vad*_*vin 22

在macOS Mojave中,您可以通过屏幕截图实用程序记录屏幕的一部分.

  1. 按Shift-Command(⌘)-5将弹出控制面板.
  2. 选择 在此输入图像描述.
  3. 选择要录制的屏幕部分 - 即iPhone模拟器.
  4. 点击 在此输入图像描述 停止录音
  5. 缩略图将显示在屏幕的右下角.您可以在保存之前进行编辑.

如果要显示鼠标单击,请在步骤1之后选择" 选项"控件并启用" 显示鼠标单击".

  • 总是很高兴使用内置工具。在 Mojave 之前,我使用了工具 _licecap_。它生成的 gif 文件需要的空间比 .mov 文件少。(https://www.cockos.com/licecap/ | _brew 搜索 licecap_) (2认同)

vis*_*ish 20

您可以使用以下工具免费执行此操作.您将需要至少一个真实设备(我使用的是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
Run Code Online (Sandbox Code Playgroud)

对于ipad,您可以裁剪然后添加信箱.但是,像这样裁剪通常不会产生与ipad上的应用程序完全相同的视频.因人而异.

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
Run Code Online (Sandbox Code Playgroud)


Joh*_*son 18

这是我发现最容易的方式,你只需要一个iPhone和iPad:

使用QuickTime Player记录设备屏幕:

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

打开iMovie

  • 选择文件 - >新建应用程序预览
  • 使用最高分辨率从应用中拖动IMAGE.该项目的1920 x 1080截图.(即使您使用iPhone 5录制,这也会使视频成为1920 x 1080)
  • 将录制的影片拖动到项目中.
  • 选择文件 - >共享 - >应用程序预览保存

现在使用您的所有设备执行此操作或:

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

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

  • 将您的高分辨率视频拖到Handbreak
  • 选择"图片设置"图标
  • 调整大小到正确的大小 - 关闭并按"开始"图标 - 保存到桌面


Ima*_*tit 15

Apple的模拟器用户指南在使用命令行段落拍摄屏幕截图或录制视频时说明:

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


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

xcrun simctl io booted recordVideo <filename>.<extension>
Run Code Online (Sandbox Code Playgroud)

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


如果要将视频文件保存在Desktop文件夹中,请使用以下命令:

xcrun simctl io booted recordVideo ~/Desktop/<filename>.<extension>
Run Code Online (Sandbox Code Playgroud)

要停止录制,请按Control-C终端.

  • 我的视频总是损坏了.观看时,视频会变为绿色并且像素化.在此之前的一段时间,iMovie未能将其导出. (5认同)

Mik*_*num 6

使用 Xcode 12 只需在模拟器中按 cmd + R 即可录制屏幕。cmd + S 截屏。


Raw*_*eed 5

从 Xcode 9 开始,您可以使用 simctl 二进制文件截取屏幕截图或录制视频,您可以在此处找到它:

/Applications/Xcode.app/Contents/Developer/usr/bin/simctl
Run Code Online (Sandbox Code Playgroud)

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

  1. 要截取屏幕截图,请在命令行中运行此命令:

    xcrun simctl io booted screenshot
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用命令行在模拟器上录制视频:

    xcrun simctl io booted recordVideo fileName.videoType(e.g mp4/mov)
    
    Run Code Online (Sandbox Code Playgroud)

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


Wil*_*ong 5

截至 2019 年的今天,Apple 已经让像我这样的低预算或单人项目开发人员的生活变得更加轻松。您可以仅使用上述帖子之一中的终端命令来录制所需设备模拟器中的视频。然后使用 iMovie 的新应用预览功能。

xcrun /Applications/Xcode.app/Contents/Developer/usr/bin/simctl io booted recordVideo pro3new.mov
Run Code Online (Sandbox Code Playgroud)

iMovie -> 文件 -> 新应用预览