跳转到内容

加载插件

加载插件

插件缓存

在首次启动时,Premiere Pro 会加载所有插件,读取插件属性列表 (PiPL) 资源,并发送任何启动选择器以确定插件的功能。为了加快后续应用程序的启动速度,它会将这些功能中的一部分保存在我们称为插件缓存的地方(Windows 上的注册表,macOS 上的属性列表文件)。

下次启动应用程序时,将尽可能使用缓存的数据,而不是在启动时加载所有插件。使用这些更改后的数据将使应用程序启动更快,但对于一小部分需要每次初始化的插件来说,这可能是不希望的。这些包括需要获取可能在应用程序启动之间更改的运行时信息(例如已安装的编解码器列表)的插件,以及检查硬件并需要能够失败的插件。因此,我们让您的插件控制最终决定是否每次重新加载。

默认情况下,导入器、记录器和导出器不会被缓存。通过在 exSelStartup 期间将 exExporterInfoRec.isCacheable 设置为非零值,可以缓存导出器。导入器和记录器可以通过在启动选择器上返回 *IsCacheable 而不是 *NoError(例如,对于导入器,返回 imIsCacheable 而不是 imNoError)来缓存。

默认情况下,旧版视频滤镜和设备控制器默认会被缓存。要指定旧版视频滤镜必须每次重新加载而不是缓存,Premiere 滤镜应响应 fsCacheOnLoad


解决插件加载问题

在开发过程中有各种工具可以帮助解决问题。

仅在 Windows 上,您可以通过在启动时按住 shift 键强制 Premiere 重新加载所有插件。macOS 上的插件缓存可以从用户文件夹中手动删除,路径为 ~/Library/Preferences/com.Adobe.Premiere Pro [version].plist

对于插件加载问题,您可以首先检查其中一个插件加载日志。

在 Windows 上:[用户文件夹]\AppData\Roaming\Adobe\Premiere Pro\[版本号]\Plugin Loading.log

在 macOS 上:~/Library/Application Support/Adobe/Premiere Pro/[版本号]/Plugin Loading.log

您的插件将按路径和文件名列出,日志将包含插件加载过程中发生的详细信息。从 CC 2017 开始,它现在会记录从 PF_Cmd_GLOBAL_SETUP 返回的任何错误代码。

如果日志显示插件已被标记为忽略,最常见的原因是未能加载的库依赖项。如果您的插件使用某些图像处理或专有代码库,它是否已安装在系统上,并且位置正确?在 Windows 上,诸如 Dependency Walker (depends.exe) 之类的工具有助于检查插件的依赖项。


库链接

在 Windows 上,我们强烈建议动态链接到库,而不是静态链接。在 Visual Studio 中,运行时库链接设置位于 C/C++ > 代码生成 > 运行时库。

我们要求开发者使用 /MD 标志(或用于调试版本的 /MDd)进行编译,而不是使用 /MT 标志。

未能这样做可能会导致 Premiere Pro 进程耗尽光纤本地存储槽,从而导致后续插件无法加载。


没有快捷方式

Premiere Pro 插件加载器不遵循 Windows 快捷方式。虽然它遵循 macOS 符号链接,但我们不建议在插件文件夹中使用符号链接,因为插件加载器会检查符号链接的时间戳,而不是指向的插件的时间戳。

解释:如果您使用符号链接并且插件加载失败一次(例如,如果指向的插件不存在),它将在 Premiere 启动时被标记为忽略。即使插件恢复到正确的位置,插件加载器也会检查符号链接的修改时间,而不是指向的插件,并继续忽略插件,直到符号链接的修改日期更新。因此,插件应直接放置在插件文件夹或子文件夹中。