After Effects 中的内存和存储
64 位 After Effects 中的内存 (RAM) 使用
“内存和多重处理”首选项
设置内存和多重处理首选项,方法为选择“编辑”>“首选项”>“内存”(Windows) 或“After Effects”>“首选项”>“内存”(Mac OS)。
当您在“内存和多重处理”对话框中修改设置时,After Effects 将在对话框中动态更新帮助文本,报告它将如何分配和使用内存与 CPU。
无论是否选择“同时渲染多个帧”,“为其他应用程序保留的 RAM”首选项都是相关的。仅当选择“同时渲染多个帧”时,After Effects“多重处理”类别中的设置才是相关的。
Todd Kopriva 在 Adobe 网站上提供了有关最佳内存和处理器设置的信息。
为其他应用程序保留的 RAM
增加此值以使更多 RAM 可用于操作系统和除 After Effects 以及与其共享内存池的应用程序之外的应用程序。(请参阅在 After Effects、Premiere Pro 和 Adobe Media Encoder 之间共享的内存池。)如果您知道将与 After Effects 一起使用特定应用程序,请检查其系统要求,并将此值设置为该应用程序所需的最小 RAM 量。由于为操作系统保留足够内存时性能最佳,因此不得将此值设置为低于最小基准值。
After Effects、Premiere Pro、Prelude、Media Encoder、Photoshop 和 Audition 之间共享的内存池
After Effects 与 Adobe CC 应用程序共享一个内存池。在“内存”首选项面板的顶部,这些应用程序的每一个所对应的图标即可表明这一点。对于未运行的应用程序,这些图标将灰显。
通过动态管理分配给各个应用程序的内存,内存平衡器可阻止 RAM 互换到磁盘。每个应用程序在内存平衡器中注册一些基本信息:最低内存要求、可使用的最大内存、当前使用的内存和优先级。优先级有三个设置:低、普通和最高。当应用程序处于活动状态时,目前为 After Effects和 Premiere Pro 保留了“最高”优先级。“普通”优先级适用于后台运行的 After Effects 或前台运行的 Adobe Media Encoder。“低”优先级适用于后台运行的 Premiere Pro 或 Adobe Media Encoder 的后台服务器。
注意:共享内存池的实际结果的示例如下:启动 Premiere Pro 将减少可用于 After Effects 实现预览的量;退出 Premiere Pro 将立即释放 RAM 用于 After Effects,并扩展预览的可能持续时间。
“内存”对话框
“内存详细信息”对话框包含有关已安装的 RAM 和当前/允许使用的 RAM 的额外信息。它还包含一个多列的表格,其中列出与应用程序相关的流程。该表包括每个进程的相关信息,如 ID、应用程序名称、需要的最低内存、最大可用内存、最多允许的内存量、当前内存以及当前优先级。
要打开对话框,请选择“编辑”>“首选项”>“内存”(Windows) 或“After Effects”>“首选项”>“内存”(Mac OS),然后单击首选项对话框底部的“详细信息”按钮。
使用“复制”按钮可将信息复制到剪贴板。
渲染的内存 (RAM) 要求
帧的渲染的内存要求(用于预览或最终输出)随合成中最占内存的图层的内存要求而增加。
After Effects 一次一个图层来渲染合成的每个帧。鉴于此,当确定给定帧是否能使用可用内存进行渲染时,与合成中合成的持续时间或图层数相比,每个图层的内存要求更为相关。合成的内存要求相当于合成中最占用内存的单个图层的内存要求。
图层的内存要求在一些情况下会增加,包括以下情况:
- 增加项目的色位深度
- 提高合成分辨率
- 使用更大的源映像
- 启用色彩管理
- 添加蒙版
- 添加逐字符 3D 属性
- 在没有折叠变换的情况下进行预合成
- 使用特定混合模式、图层样式或效果,特别是涉及多个图层的效果
- 应用特定输出选项,如“3:2 pulldown”、“裁剪”和“调整大小”
- 在使用 3D 图层时添加阴影或景深效果
After Effects 需要连续的内存块来存储每个帧;它无法将帧分块存储在分段内存中。有关存储未压缩的帧所需内存量的信息,请参阅输出文件的存储要求。
注意:要了解降低内存要求和提高性能的相关技巧,请参阅通过简化项目提高性能。
清理内存 (RAM)
偶尔 After Effects 可能会显示警报消息,表示它需要更多内存来显示或渲染合成。如果收到内存不足报警,请释放内存或减少最占用内存的图层的内存要求,然后重试。
使用“编辑”>“清理”菜单中的命令可以立即释放内存:
- 所有内存
- 图像缓存内存
- 所有内存和磁盘缓存
- 撤消
- 快照
对于大型项目,清理内存速度更快。清理内存不会同步项目数据库;如果您希望强制同步项目数据库,请按 Option (Mac OS) 或 Alt (Windows) 键并选择“编辑”>“清理”>“所有内存”。如果您发现“合成”面板无法正确更新,且“清理”>“所有内存”或“所有内存和磁盘缓存”命令不起作用,则可以这样做。
内存问题疑难解答
错误:“无法分配足够内存来渲染当前帧...”
请降低渲染此帧的内存要求,或安装更多的 RAM。
错误:“无法分配 [n] MB 内存...”
请降低渲染此帧的内存要求,或安装更多的 RAM。
错误:“大小为 [宽]x[高] @ [深度] bpc ([n] GB) 的图像缓冲区超过内部限制...”
请降低渲染此帧的内存要求。
注意:一个帧最多可以占用 2 GB 内存。
错误:“[n] GB 的内存分配超过内部限制...”
请降低渲染此帧的内存要求。
注意:单个内存分配的最大大小是 2 GB。
输出文件的存储要求
使用以下公式来确定以全分辨率存储一个未压缩的帧所需的 MB 数:
(高度(以像素为单位)) x (宽度(以像素为单位)) x (每个通道的位数) / 2,097,152
注意:值 2,097,152 是转换因数,它表示每 MB 的字节数 (220),每字节的位数 (8),以及每像素的通道数 (4)。
下面是一些帧大小和内存要求的示例,以每帧 MB 数为单位:
- 8-bpc 项目中的 DV NTSC (720x480) 帧:1.3 MB
- 8-bpc 项目中的 D1/DV PAL (720x576) 帧:1.6 MB
- 16-bpc 项目中的 HDTV (1920x1080) 帧:16 MB
- 32-bpc 项目中的 4K 数字影院 (4096x2304) 帧:144 MB
因为当您渲染到最终输出时,视频通常在编码期间进行压缩,所以您不能只将一个帧所需的内存量乘以帧速率和合成持续时间,来确定存储您的最终输出影片所需的磁盘空间量。但是,这样计算可以让您大致了解可能需要的最大存储空间。例如,一秒钟(大约 30 帧)的未压缩标清 8-bpc 视频约需要 40 MB。该数据速率的大型影片将需要 200 GB 以上用于存储。即使使用将文件大小减小至每秒视频 3.6 MB 的 DV 压缩,对于典型的大型影片,此存储要求也会转换为 20 GB 以上。
对于色位深度更高、帧更大和压缩比更低的长片项目,可能需要 TB 存储空间来存储素材和经过渲染的输出影片,而这种情况并不罕见。
缓存:RAM 缓存、磁盘缓存和媒体缓存
在您处理合成时,After Effects 在 RAM 中暂时存储一些已渲染的帧和源图像,以便可以更快速地进行预览和编辑。After Effects 不会缓存所需渲染时间较短的帧。帧在图像缓存中保持未压缩。
After Effects 也会缓存素材和图层级别,以实现更快的预览;已修改的图层在预览期间进行渲染,未修改的图层从缓存合成。
RAM 缓存已满时,任何添加到 RAM 缓存的新帧将会替换早期缓存的帧。在 After Effects 渲染帧,以实现预览时,它会在缓存已满时停止向图像缓存中添加帧,并开始仅播放适合 RAM 缓存的帧。
“时间轴”、“图层”和“素材”面板的时间标尺中的绿条标记缓存到内存的帧。“时间轴”面板中的蓝条标记缓存到磁盘中的帧。
图层缓存指示器
图层缓存指示器允许您基于每个图层可视化缓存的帧。在尝试确定哪些图层缓存在合成中时,这十分有用。
通过按 Ctrl (Windows) 或 Command (Mac) 来启用“图层缓存指示器”选项,然后在“时间轴”面板菜单中选择“显示缓存指示器”。菜单中必须启用“显示缓存指示器”选项才能看见指示器。
注意:显示缓存指示器将稍稍降低性能。
在退出 After Effects 时,会自动清理 RAM 缓存。
您可以通过“编辑”>“清理”菜单选择清理 RAM 缓存,或 RAM 缓存和磁盘缓存。
选择“编辑”>“清理”>“所有内存和磁盘缓存”,可清理所有 RAM 缓存的内容(类似于现有的“所有内存”命令)和磁盘缓存的内容(类似于“媒体和磁盘缓存”首选项中现有的“清空磁盘缓存”按钮)。
对于大型项目,After Effects 清理内存速度更快。清理内存不会同步项目数据库。如果您希望强制同步项目数据库,请按 Option (Mac OS) 或 Alt (Windows) 键并选择“编辑”>“清理”>“所有内存”。如果您发现“合成”面板无法正确更新,且“清理”>“所有内存”或“所有内存和磁盘缓存”命令不起作用,则可以这样做。
注意:为 After Effects 的一个版本清理磁盘缓存,不会清理其他版本的缓存。例如,从 After Effects CC 清理磁盘缓存不会影响 After Effects CS6 的磁盘缓存。
全局性能缓存
全局性能缓存包括以下内容:
全局 RAM 缓存:当您修改合成时,不会自动擦除 RAM 缓存中的帧,如果您撤销更改或恢复合成的先前状态,则会重新使用这些帧。当 RAM 缓存已满、After Effects 需要缓存新的帧时,将擦除 RAM 缓存中最早的帧。
永久磁盘缓存:即使关闭 After Effects 后,缓存到磁盘的帧仍可用。
有关全局性能缓存的更多信息,请参阅 After Effects 团队博客上标题为“After Effects 中的 GPU(CUDA、OpenGL)功能”的博客。
视频:全局性能缓存
视频:全局性能缓存在 Brian Maffitt 和 Total Training 提供的本视频中,请参阅全局性能缓存的功能如何在合成时节省时间。Brian Maffitt and Total Traininghttp://www.totaltraining.com注意:磁盘缓存不用于预览。仅用于预览,而不会实时回放缓存帧和音频。(请参阅预览。)
默认情况下启用磁盘缓存。对于磁盘缓存首选项,以及启用或禁用磁盘缓存:
- 选择“编辑”>“首选项”>“媒体和磁盘缓存”(Windows) 或 After Effects >“首选项”>“媒体和磁盘缓存”(Mac OS),并选择或取消选择“启用磁盘缓存”。
通过磁盘缓存首选项,可以选择用于包含缓存的文件夹。
- 单击“选择文件夹”按钮,然后单击“确定”(Windows) 或“选择”(Mac OS)。
清空磁盘缓存:
- 单击“清空磁盘缓存”按钮或从“编辑”菜单中选择“清理所有内存与磁盘缓存”选项。
注意:即使磁盘缓存启用后,每个帧也必须能够放入连续的 RAM 块。启用磁盘高速缓存对于 RAM 不足以容纳或渲染合成中单帧的局限性并没有什么帮助。
为实现磁盘缓存的最佳性能,请在不同于源素材的物理硬盘上选择一个文件夹。该文件夹所在的硬盘使用的驱动器控制器最好不同于您的源素材所在的磁盘。建议为磁盘缓存文件夹使用分配了尽可能多空间的快速硬盘驱动器或 SSD。磁盘缓存文件夹不得是硬盘的根文件夹。
与 RAM 缓存一样,如果与渲染帧相比从缓存检索帧更快,After Effects 仅将使用磁盘缓存来存储帧。
“最大磁盘缓存大小”设置指定要使用的硬盘空间的 GB 数。默认磁盘缓存大小设置为卷的总大小的 10%,最多 100 GB。
注意:应用程序会进行检查,以确保可用空间比“首选项”>“媒体和磁盘缓存”中设置的数量多 10 GB。如果没有足够空间用于磁盘缓存,After Effects 会发出警告。
全局 RAM 缓存
全局 RAM 缓存具有以下优点:
- 在撤消/重做后恢复缓存的帧。
- 在合成或图层返回到先前状态时,例如关闭图层的可见性然后重新打开,缓存的帧将恢复。
- 不只是邻近的帧,可在时间轴的任何位置(例如,在使用循环表达式、时间重映射或关键帧的复制/粘贴时)识别可重用的帧。
- 在复制的图层或复制的合成上识别可重用的帧;
- 除“当前设置”之外,使用任何其他设置渲染的渲染队列均不会自动销毁缓存。
在本视频(通过视频学习)中,您将了解如何使用 RAM 和磁盘缓存来节省时间,以及如何在后台渲染合成,以便在继续工作之前,不需要等待渲染预览。
永久磁盘缓存
保存项目后,即使在您关闭项目或退出 After Effects 之后,磁盘缓存中的帧仍会保留。此协议称为永久磁盘缓存。会话结束时,不再清空磁盘缓存。利用永久磁盘缓存功能,会在会话之间保留存储在磁盘缓存中的帧。您处理项目或者使用相同缓存帧的其他项目时,这样可以节省呈现时间。
打开项目时,将扫描磁盘缓存,寻找与项目中的帧匹配的帧,并且可使这些帧可供使用。磁盘缓存包含来自您在相同或早期会话中打开的所有项目的帧,因此将检索来自一个项目的磁盘缓存帧,以便在需要那些帧的其他项目中重用。当扫描缓存时,蓝色标记将逐渐地填满您的时间轴。
注意:因为早期版本的 After Effects 不会在此功能所需的磁盘上存储所有内容,因此请重新保存 CS5.5 和更早的项目,以体验永久缓存。
注意:不会持续缓存 Roto 笔刷帧。
注意:后台中的缓存工作区域也使用磁盘缓存来存储帧。请参阅使用全局性能缓存改进性能。
视频教程:如何优化 After Effects 以实现更高性能
视频教程:如何优化 After Effects 以实现更高性能高级产品经理 Steve Forde 共享如何优化 After Effects 以实现更高性能。Steve Forde在后台中缓存工作区域
在继续工作时,您可以为合成的工作区域(或者相同或多个合成中的多个工作区域)填充磁盘缓存。在您预测不会更改合成时,特别是在下游合成中使用合成时,您可以在后台将帧渲染到磁盘缓存。通常,应用程序尝试识别应置于磁盘缓存中渲染费用昂贵的相应帧,但此命令强制将那些帧渲染到磁盘缓存,以在下次需要这些帧时进行快速检索。
- 缓存到合成,到后台中的磁盘:
确保在“编辑”>“首选项”>“媒体和磁盘缓存”(Windows) 或 Premiere Pro >“首选项”>“媒体和磁盘缓存”(MacOS) 中启用磁盘缓存。
注意:为获得最佳效果,请在不同于源素材驱动器的快速驱动器上,使用大型磁盘缓存。SSD 驱动器在磁盘缓存上运转良好。
- 设置帧的工作区域来缓存到磁盘。
- 选择“合成”>“在后台缓存工作区域”,或使用键盘快捷键 Ctrl + Enter (Windows) 或 Cmd + Enter (MacOS)。
要取消后台中的缓存工作区域,请选择“合成”>“取消后台缓存工作区域”。
项目保存到磁盘上的临时文件中,然后将启动 After Effects 的后台实例以渲染该项目。渲染进度显示在“信息”面板中。渲染帧显示为蓝色缓存标记,因为它们在磁盘缓存中。如果值得(足够昂贵,可供渲染),图层缓存和嵌套的合成将仅缓存磁盘。
您可以排列相同合成或不同合成、甚至不同项目的不同部分,但在后台一次只渲染一个工作区域。
注意:如果您更改为队列式工作区域,现有渲染将继续使用其以前的设置。在还原回该状态前,蓝色缓存指示器不会重现。
在后台中缓存多个合成:
- 在您要缓存的各个合成中设置工作区域。
- 在“项目”面板中选择合成。
- 执行以下操作之一:
- 选择“合成”>“在后台缓存工作区域”
- 按 Ctrl+Enter (Windows) 或 Cmd+Enter (MacOS)
- 通过下文菜单选择“在后台缓存工作区域”
取消当前和所有未决后台缓存渲染:
- 选择“合成”>“取消后台缓存工作区域”。
如果多个后台作业正在运行,作业数将显示为菜单命令的一部分。
媒体缓存
当 After Effects 导入某些格式的视频和音频时,它会对这些导入项的各个版本进行处理并缓存,以便在生成预览时能够易于访问。导入的每个音频文件会转换为一个新的 .cfa 文件,MPEG 文件则经过索引编制后成为一个新的 .mpgindex 文件。媒体缓存显著提升预览的性能,因为不会为各个预览重新处理音频和视频项。
注意:当您第一次导入文件时,在处理和缓存媒体时,您可能会感到延迟。
指向每个缓存媒体文件的链接保留在一个数据库中。此媒体缓存数据库将与 Adobe Media Encoder、Premiere Pro、Encore 和 Soundbooth 共享,因此其中的每个应用程序都可以各自对同一组缓存媒体文件执行读取操作。如果您更改了数据库相对于任一程序的位置,则数据库相对于其他应用程序的位置也会进行更新。每个应用程序可以使用自己的缓存文件夹,但是同一数据库会跟踪所有程序的缓存文件夹。
- 选择“编辑”>“首选项”>“媒体和磁盘缓存”(Windows) 或 After Effects >“首选项”>“媒体和磁盘缓存”(Mac OS),然后执行以下操作之一:
- 单击其中一个“选择文件夹”按钮可更改媒体缓存数据库或媒体缓存自身的位置。
- 单击“清理数据库和缓存”,可从缓存中移除经过匹配和索引编制的文件,并从数据库中移除这些文件条目。该命令仅移除与其源文件已不再可用的素材项相关联的文件。
注意:在单击“清理数据库和缓存”按钮之前,应确保当前您正使用的源媒体所在的任何存储设备已连接到您的计算机。如果确定是因为您未连接至素材所在的存储设备而导致素材缺失,则将会移除媒体缓存中的关联文件。此移除操作的结果是,如果以后要使用该素材,则需要对该素材进行重新匹配或重新编制索引。
注意:使用“清理数据库和缓存”按钮清理数据库和缓存时不会移除与其源文件仍然可用的素材项相关联的文件。要手动移除已匹配的文件和索引文件,请导航至媒体缓存文件夹并删除这些文件。媒体缓存文件夹的位置显示在“符合的媒体缓存”首选项中。如果该路径被截断,单击“选择文件夹”按钮可显示它。