DaVinci Resolve Studio (达芬奇)脚本 API 说明文档(翻译版)python版
在本安装包中,您将找到 DaVinci Resolve Studio 脚本 API(应用程序编程接口)的简要介绍。除本 README.txt 文件外,该安装包还包含多个文件夹,其中包含用于脚本访问的基础导入模块(如 DaVinciResolve.py)以及部分代表性示例脚本。
从 v16.2.0 版本开始,SetLUT() 和 SetCDL() 函数接收的 nodeIndex(节点索引)参数由 “0 基索引” 改为 “1 基索引”,即参数取值范围为 1 ≤ nodeIndex ≤ 总节点数。
一、概述
与 Blackmagic Fusion 脚本相同,DaVinci Resolve Studio 支持用户使用 Lua 和 Python 编程语言编写脚本。默认情况下,脚本可通过以下方式调用:
- Fusion 页面中的 “控制台” 窗口;
- 命令行。
您可在 Resolve 偏好设置中修改脚本调用权限:仅允许通过控制台调用,或允许通过本地网络调用。请注意:当允许从 Resolve 应用程序外部进行脚本访问时,需关注潜在的安全风险。
二、前置条件
要使用 DaVinci Resolve 脚本功能,需为所有用户安装以下任一环境:
- Lua 5.1
- 64 位 Python 3.6 及以上版本
- 64 位 Python 2.7 版本
三、脚本使用方法
DaVinci Resolve 必须处于运行状态,脚本才能被调用。
1. 从外部文件夹执行脚本
若要从外部文件夹执行 Resolve 脚本,脚本需先知晓 API 的存放位置。您可能需要设置以下环境变量,确保 Python 安装环境能正确加载所需依赖,不同系统的配置方式如下:
(1)Mac OS X 系统
bash
RESOLVE_SCRIPT_API="/Library/Application Support/Blackmagic Design/DaVinci Resolve/Developer/Scripting" RESOLVE_SCRIPT_LIB="/Applications/DaVinci Resolve/DaVinci Resolve.app/Contents/Libraries/Fusion/fusionscript.so" PYTHONPATH="$PYTHONPATH:$RESOLVE_SCRIPT_API/Modules/" (2)Windows 系统
cmd
RESOLVE_SCRIPT_API="%PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Support\Developer\Scripting" RESOLVE_SCRIPT_LIB="C:\Program Files\Blackmagic Design\DaVinci Resolve\fusionscript.dll" PYTHONPATH="%PYTHONPATH%;%RESOLVE_SCRIPT_API%\Modules\" (3)Linux 系统
bash
RESOLVE_SCRIPT_API="/opt/resolve/Developer/Scripting" RESOLVE_SCRIPT_LIB="/opt/resolve/libs/Fusion/fusionscript.so" PYTHONPATH="$PYTHONPATH:$RESOLVE_SCRIPT_API/Modules/" 注:对于标准 ISO 格式的 Linux 安装,上述路径可能需修改为/home/resolve(而非/opt/resolve)。
2. 从菜单或控制台执行脚本
与 Fusion 脚本类似,Resolve 脚本也可通过软件菜单或控制台调用:
- 放在 “Utility” 文件夹:所有页面均可看到;
- 放在 “Comp” 或 “Tool” 文件夹:仅 Fusion 页面可见;
- 放在 “Edit”“Color”“Deliver” 等文件夹:仅对应页面可见(“Deliver” 文件夹下的脚本还会在渲染任务列表中显示)。
- 控制台调用:交互式 “控制台” 窗口可快速执行简单脚本命令(如查询 / 修改属性、测试脚本),支持 Python 2.7、Python 3.6 和 Lua 语言,输入命令后会立即执行。有关控制台的详细使用方法,请参考《DaVinci Resolve 用户手册》。
菜单调用(推荐):DaVinci Resolve 启动时,会扫描以下目录的子文件夹,并将发现的脚本在 “工作区” 应用菜单的 “脚本” 选项下列出。您可根据需求将脚本放在对应子文件夹中,实现 “特定页面可见”:不同系统的脚本存放路径如下:
| 系统 | 所有用户路径 | 单个用户路径 |
|---|---|---|
| Mac OS X | /Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Scripts | /Users/<用户名>/Library/Application Support/Blackmagic Design/DaVinci Resolve/Fusion/Scripts |
| Windows | %PROGRAMDATA%\Blackmagic Design\DaVinci Resolve\Fusion\Scripts | %APPDATA%\Roaming\Blackmagic Design\DaVinci Resolve\Support\Fusion\Scripts |
| Linux | /opt/resolve/Fusion/Scripts(或 /home/resolve/Fusion/Scripts,依安装路径而定) | $HOME/.local/share/DaVinciResolve/Fusion/Scripts |
3. 示例脚本:创建简单项目
以下 Python 脚本示例演示了如何创建一个基础项目:
python
运行
#!/usr/bin/env python # 导入 DaVinci Resolve 脚本模块 import DaVinciResolveScript as dvr_script # 连接到 Resolve 应用 resolve = dvr_script.scriptapp("Resolve") # 获取 Fusion 对象(用于访问 Fusion 脚本功能) fusion = resolve.Fusion() # 获取项目管理器对象 projectManager = resolve.GetProjectManager() # 创建名为“Hello World”的项目 projectManager.CreateProject("Hello World") 说明:resolve对象是 Resolve 脚本的基础入口(原生对象),可通过以下方式查看其可脚本化属性:Lua 语言:使用表格迭代(table iteration)和getmetatable函数;Python 语言:使用dir()、help()等函数。其中fusion对象是重要的可脚本化对象,可通过它访问所有 Fusion 脚本功能。
四、以无头模式运行 DaVinci Resolve
DaVinci Resolve 可通过命令行参数 -nogui 以 “无头模式”(无用户界面)启动。在此模式下,软件界面会被禁用,但所有脚本 API 仍可正常工作。
五、DaVinci Resolve API 详解
以下介绍部分常用 API 函数(*)。与 resolve 对象类似,每个对象的属性和函数均可通过上述 “查看属性” 的方式查询。
1. Resolve 对象(软件全局入口)
| 函数名 | 返回值类型 | 功能说明 |
|---|---|---|
| Fusion() | Fusion | 返回 Fusion 对象,是 Fusion 脚本的入口。 |
| GetMediaStorage() | MediaStorage | 返回媒体存储对象,用于查询和操作媒体文件路径。 |
| GetProjectManager() | ProjectManager | 返回当前已打开数据库的项目管理器对象。 |
| OpenPage(pageName) | Bool(布尔值) | 切换到 DaVinci Resolve 的指定页面,pageName 可选值:"media"(媒体)、"cut"(剪辑)、"edit"(编辑)、"fusion"(Fusion)、"color"(调色)、"fairlight"(音频)、"deliver"(交付)。 |
| GetCurrentPage() | String(字符串) | 返回主窗口当前显示的页面,可选值同上,无页面时返回 None。 |
| GetProductName() | String | 返回产品名称。 |
| GetVersion() | [版本字段列表] | 以 [主版本号,次版本号,补丁号,构建号,后缀] 格式返回产品版本。 |
| GetVersionString() | String | 以 “主版本号。次版本号。补丁号 [后缀]. 构建号” 格式返回产品版本(如 "18.5.1.build7")。 |
| LoadLayoutPreset(presetName) | Bool | 从已保存的预设 “presetName” 加载 UI 布局。 |
| UpdateLayoutPreset(presetName) | Bool | 用当前 UI 布局覆盖预设 “presetName”。 |
| ExportLayoutPreset(presetName, filePath) | Bool | 将预设 “presetName” 导出到路径 “filePath”。 |
| DeleteLayoutPreset(presetName) | Bool | 删除预设 “presetName”。 |
| SaveLayoutPreset(presetName) | Bool | 将当前 UI 布局保存为预设 “presetName”。 |
| ImportLayoutPreset(filePath, presetName) | Bool | 从路径 “filePath” 导入预设;可选参数 “presetName” 指定预设名称,未指定则以文件名作为预设名。 |
| Quit() | None(无返回值) | 关闭 Resolve 应用。 |
| ImportRenderPreset(presetPath) | Bool | 从路径 “presetPath” 导入渲染预设,并设为当前渲染预设。 |
| ExportRenderPreset(presetName, path) | Bool | 若预设 “presetName” 存在,将其导出到路径 “path”。 |
| ImportBurnInPreset(presetPath) | Bool | 从路径 “presetPath” 导入数据叠加(burn-in)预设。 |
| ExportBurnInPreset(presetName, path) | Bool | 若预设 “presetName” 存在,将其导出到路径 “path”。 |
| GetKeyframeMode() | keyframeMode(枚举) | 返回当前关键帧模式(整数),详情见 “关键帧模式说明” 章节。 |
| SetKeyframeMode(keyframeMode) | Bool | 成功设置关键帧模式(枚举值)时返回 True,详情见 “关键帧模式说明” 章节。 |
2. ProjectManager 对象(项目管理器)
| 函数名 | 返回值类型 | 功能说明 |
|---|---|---|
| ArchiveProject(projectName, filePath, isArchiveSrcMedia=True, isArchiveRenderCache=True, isArchiveProxyMedia=False) | Bool | 将项目 “projectName” 归档到路径 “filePath”,可选参数控制是否归档源媒体(isArchiveSrcMedia)、渲染缓存(isArchiveRenderCache)、代理媒体(isArchiveProxyMedia)。 |
| CreateProject(projectName) | Project | 若 “projectName” 名称唯一,创建并返回项目;否则返回 None。 |
| DeleteProject(projectName) | Bool | 若项目 “projectName” 未加载,从当前文件夹中删除该项目。 |
| LoadProject(projectName) | Project | 若找到名称为 “projectName” 的项目,加载并返回该项目;否则返回 None。 |
| GetCurrentProject() | Project | 返回当前已加载的 Resolve 项目。 |
| SaveProject() | Bool | 以当前名称保存已加载的项目,成功返回 True。 |
| CloseProject(project) | Bool | 关闭指定项目(不保存)。 |
| CreateFolder(folderName) | Bool | 若 “folderName” 名称唯一,创建文件夹。 |
| DeleteFolder(folderName) | Bool | 若文件夹 “folderName” 存在,删除该文件夹,成功返回 True。 |
| GetProjectListInCurrentFolder() | [项目名称列表] | 返回当前文件夹中的所有项目名称。 |
| GetFolderListInCurrentFolder() | [文件夹名称列表] | 返回当前文件夹中的所有子文件夹名称。 |
| GotoRootFolder() | Bool | 打开数据库的根文件夹。 |
| GotoParentFolder() | Bool | 若当前文件夹有父文件夹,打开父文件夹。 |
| GetCurrentFolder() | String | 返回当前文件夹名称。 |
| OpenFolder(folderName) | Bool | 打开名称为 “folderName” 的文件夹。 |
| ImportProject(filePath, projectName=None) | Bool | 从路径 “filePath” 导入项目,可选参数 “projectName” 指定项目名,成功返回 True。 |
| ExportProject(projectName, filePath, withStillsAndLUTs=True) | Bool | 将项目 “projectName” 导出到路径 “filePath”,默认包含静帧和 LUT(调色文件),成功返回 True。 |
| RestoreProject(filePath, projectName=None) | Bool | 从路径 “filePath” 恢复项目,可选参数 “projectName” 指定项目名,成功返回 True。 |
| GetCurrentDatabase() | {数据库信息字典} | 返回当前数据库连接的信息字典,包含键:"DbType"(数据库类型)、"DbName"(数据库名)、可选键 "IpAddress"(IP 地址)。 |
| GetDatabaseList() | [{数据库信息字典列表}] | 返回所有已添加到 Resolve 的数据库信息列表,每个元素为上述字典。 |
| SetCurrentDatabase({dbInfo}) | Bool | 切换当前数据库连接到 “dbInfo” 指定的数据库(需包含 "DbType"("Disk" 或 "PostgreSQL")、"DbName"(数据库名),PostgreSQL 数据库可选 "IpAddress",默认 "127.0.0.1"),切换前会关闭所有已打开项目。 |
| CreateCloudProject({cloudSettings}) | Project | 创建并返回云项目,“cloudSettings” 参数详情见 “云项目设置” 章节。 |
| LoadCloudProject({cloudSettings}) | Project | 若找到匹配 “cloudSettings” 的云项目,加载并返回该项目;否则返回 None,参数详情见 “云项目设置” 章节。 |
| ImportCloudProject(filePath, {cloudSettings}) | Bool | 从路径 “filePath” 导入云项目,成功返回 True,参数详情见 “云项目设置” 章节。 |
| RestoreCloudProject(folderPath, {cloudSettings}) | Bool | 从文件夹路径 “folderPath” 恢复云项目,成功返回 True,参数详情见 “云项目设置” 章节。 |
3. 其他核心对象 API 概览
除上述对象外,文档还详细定义了 Project(项目)、MediaStorage(媒体存储)、MediaPool(媒体池)、Timeline(时间线)、TimelineItem(时间线片段)等核心对象的 API,以下为各对象的核心功能总结:
| 对象名 | 核心功能 | 代表性函数举例 |
|---|---|---|
| Project | 单个项目的操作(媒体池、时间线、渲染任务管理) | GetMediaPool ()(获取媒体池)、AddRenderJob ()(添加渲染任务)、StartRendering ()(开始渲染) |
| MediaStorage | 媒体文件管理(查询路径、导入素材到媒体池) | GetFileList (folderPath)(获取文件夹内文件列表)、AddItemListToMediaPool ()(导入素材到媒体池) |
| MediaPool | 媒体池文件夹 / 时间线管理(创建时间线、导入素材、移动剪辑) | CreateEmptyTimeline ()(创建空时间线)、ImportMedia ()(导入媒体)、AppendToTimeline ()(添加片段到时间线) |
| Folder | 媒体池文件夹操作(查询剪辑、子文件夹、导出文件夹) | GetClipList ()(获取文件夹内剪辑列表)、Export (filePath)(导出文件夹为 DRB 格式) |
| MediaPoolItem | 单个媒体素材操作(修改名称、添加标记、链接代理媒体) | SetName ()(修改素材名)、AddMarker ()(添加标记)、LinkProxyMedia ()(链接代理媒体) |
| Timeline | 时间线操作(添加轨道、删除片段、生成字幕、导出工程文件) | AddTrack ()(添加轨道)、CreateSubtitlesFromAudio ()(从音频生成字幕)、Export ()(导出 AAF/EDL 等工程文件) |
| TimelineItem | 时间线片段操作(缩放、调色、防抖、添加 Fusion 合成) | SetProperty ()(修改片段属性如缩放)、Stabilize ()(片段防抖)、ExportLUT ()(导出 LUT 调色文件) |
| Gallery | 静帧 / 调色预设管理(创建相册、导入 / 导出静帧) | CreateGalleryStillAlbum ()(创建静帧相册)、ImportStills ()(导入静帧) |
| Graph | 调色节点图操作(设置 LUT、重置调色、启用 / 禁用节点) | SetLUT ()(给节点设置 LUT)、ResetAllGrades ()(重置所有调色)、SetNodeEnabled ()(启用 / 禁用节点) |
| ColorGroup | 调色组操作(修改组名、查询组内片段、分配片段到组) | SetName ()(修改组名)、GetClipsInTimeline ()(查询组内片段) |
六、数据结构说明
除基础数据类型(如整数、字符串)外,Resolve Python API 主要使用 列表(List) 和 字典(Dict) 两种数据结构:
- 列表:用
[元素1, 元素2, ...]表示,如[1, 2, 3]; - 字典:用
{键1: 值1, 键2: 值2, ...}表示,如{"name": "项目1", "frameRate": 24}。
由于 Lua 语言不原生支持列表和字典,其 API 用 “表格(Table)” 模拟这两种结构:
- 列表 → 带索引的表格:
{ [1] = 元素1, [2] = 元素2, ... }; - 字典 → 带键的表格:
{ 键1 = 值1, 键2 = 值2, ... }。
七、关键补充说明
1. 关键帧模式说明
Resolve.GetKeyframeMode() 和 Resolve.SetKeyframeMode() 函数中的 “关键帧模式(keyframeMode)” 为枚举值,对应含义如下:
| 枚举值 | 整数对应值 | 功能说明 |
|---|---|---|
| resolve.KEYFRAME_MODE_ALL | 0 | 操作所有类型关键帧 |
| resolve.KEYFRAME_MODE_COLOR | 1 | 仅操作调色类型关键帧 |
| resolve.KEYFRAME_MODE_SIZING | 2 | 仅操作缩放 / 尺寸类型关键帧 |
2. 缓存模式说明
Graph.GetNodeCacheMode() 和 Graph.SetNodeCacheMode() 函数中的 “缓存模式(cache_value)” 为枚举值,对应含义如下:
| 枚举值 | 整数对应值 | 功能说明 |
|---|---|---|
| resolve.CACHE_AUTO_ENABLED | -1 | 自动启用缓存 |
| resolve.CACHE_DISABLED | 0 | 禁用缓存 |
| resolve.CACHE_ENABLED | 1 | 启用缓存 |
3. 云项目设置说明
ProjectManager 的 CreateCloudProject()、LoadCloudProject() 等函数需传入 {cloudSettings} 字典参数,包含以下键(默认值已标注):
| 键名 | 类型 | 默认值 | 功能说明 |
|---|---|---|---|
| resolve.CLOUD_SETTING_PROJECT_NAME | String | ""(空字符串) | 云项目名称 |
| resolve.CLOUD_SETTING_PROJECT_MEDIA_PATH | String | "" | 云项目媒体文件路径(必填) |
| resolve.CLOUD_SETTING_IS_COLLAB | Bool | False | 是否启用协作模式 |
| resolve.CLOUD_SETTING_SYNC_MODE | syncMode(枚举) | resolve.CLOUD_SYNC_PROXY_ONLY | 同步模式,可选值:resolve.CLOUD_SYNC_NONE(不同步)、resolve.CLOUD_SYNC_PROXY_ONLY(仅同步代理)、resolve.CLOUD_SYNC_PROXY_AND_ORIG(同步代理和原文件) |
| resolve.CLOUD_SETTING_IS_CAMERA_ACCESS | Bool | False | 是否允许相机访问 |
注:LoadCloudProject() 仅支持上述前 3 个键,且同一系统首次加载时会应用所有 3 个设置,后续加载仅需指定 “项目名称”。4. 音频同步设置说明
MediaPool.AutoSyncAudio() 函数需传入 {audioSyncSettings} 字典参数,用于设置音视频自动同步规则,包含以下键(默认值已标注):
| 键名 | 类型 | 默认值 | 功能说明 |
|---|---|---|---|
| resolve.AUDIO_SYNC_MODE | audioSyncMode(枚举) | resolve.AUDIO_SYNC_TIMECODE | 同步模式,可选值:resolve.AUDIO_SYNC_WAVEFORM(波形同步)、resolve.AUDIO_SYNC_TIMECODE(时间码同步) |
| resolve.AUDIO_SYNC_CHANNEL_NUMBER | channelNumber(枚举 / 整数) | 1 | 声道偏移(波形同步时生效),可选值:resolve.AUDIO_SYNC_CHANNEL_AUTOMATIC(自动,-1)、resolve.AUDIO_SYNC_CHANNEL_MIX(混合声道,-2)、1~ 最大声道数(具体声道偏移) |
| resolve.AUDIO_SYNC_RETAIN_EMBEDDED_AUDIO | Bool | False | 是否保留嵌入音频 |
| resolve.AUDIO_SYNC_RETAIN_VIDEO_METADATA | Bool | False | 是否保留视频元数据 |
5. 项目 / 剪辑属性说明
Project.GetSetting()、MediaPoolItem.GetClipProperty() 等函数用于获取 / 设置 “项目设置” 或 “剪辑属性”(对应软件 UI 中的 “项目设置” 和 “剪辑属性” 对话框),操作规则如下:
- 获取属性:调用函数时传入属性键(如
project.GetSetting("timelineFrameRate")),可获取单个属性值;若不传入参数(或传入 None / 空字符串),可获取所有可查询属性的 “键 - 值” 快照(但效率较低,建议按键查询)。 - 设置属性:调用函数时传入 “属性键 + 值”(如
project.SetSetting("timelineFrameRate", "24")),需通过返回值(Bool)确认是否设置成功。
部分属性有固定枚举值,例如:
- 项目属性 “superScale”(超缩放):0 = 自动、1 = 无缩放、2=2 倍缩放、3=3 倍缩放、4=4 倍缩放;
- 剪辑属性 “Cloud Sync”(云同步):-1 = 默认、0 = 排队下载、1 = 下载中、2 = 下载成功等。
6. 音频映射说明
MediaPoolItem.GetAudioMapping() 和 TimelineItem.GetSourceAudioChannelMapping() 函数返回音频映射信息(JSON 格式字符串),包含嵌入式音频、链接音频、轨道映射等信息。例如,某素材包含 “1 个立体声嵌入式轨道 + 2 个链接轨道(7.1 声道、5.1 声道)”,返回结果格式如下:
json
{ "embedded_audio_channels": 2, // 所有轨道的嵌入式音频总声道数 "linked_audio": { // 链接音频信息列表 "1": { // 第1个链接音频(7.1声道) "channels": 8, // 声道数 "offset": -100, // 音频偏移(媒体0帧对应文件100帧) "path": "链接音频文件路径" }, "2": { // 第2个链接音频(5.1声道) "channels": 6, "offset": 200, // 媒体0帧对应文件200帧(前200帧为黑场) "path": "链接音频文件路径" } }, "track_mapping": { // 轨道映射(对应软件“音频剪辑属性”界面) "1": { // 第1个轨道(立体声) "channel_idx": [1, 3], // 声道索引(1=嵌入式第1声道,3=第1个链接音频第1声道) "mute": true, // 是否静音 "type": "Stereo" // 轨道类型(声道数与“channel_idx”长度一致) }, "2": { // 第2个轨道(7.1声道) "channel_idx": [3,4,5,6,7,8,9,10], "mute": true, "type": "7.1" }, "3": { // 第3个轨道(5.1声道) "channel_idx": [1,1,1,1,15,16], "mute": false, "type": "5.1" } } } 7. 自动字幕设置说明
Timeline.CreateSubtitlesFromAudio() 函数需传入 {autoCaptionSettings} 字典参数,用于设置从音频生成字幕的规则,包含以下键(默认值已标注):
| 键名 | 类型 | 默认值 | 功能说明 |
|---|---|---|---|
| resolve.SUBTITLE_LANGUAGE | languageID(枚举) | resolve.AUTO_CAPTION_AUTO | 字幕语言,可选值如英语(AUTO_CAPTION_ENGLISH)、中文简体(AUTO_CAPTION_MANDARIN_SIMPLIFIED)等 |
| resolve.SUBTITLE_CAPTION_PRESET | presetType(枚举) | resolve.AUTO_CAPTION_SUBTITLE_DEFAULT | 字幕预设,可选值:默认(SUBTITLE_DEFAULT)、电视文字广播(TELETEXT)、Netflix 标准(NETFLIX) |
| resolve.SUBTITLE_CHARS_PER_LINE | 整数 | 42 | 每行字符数(1~60),部分预设(如 Netflix)会自动调整默认值(如韩语默认 16) |
| resolve.SUBTITLE_LINE_BREAK | lineBreakType(枚举) | resolve.AUTO_CAPTION_LINE_SINGLE | 换行模式,可选值:单行(LINE_SINGLE)、双行(LINE_DOUBLE) |
| resolve.SUBTITLE_GAP | 整数 | 0 | 字幕间隙(0~10) |
8. 渲染设置说明
Project.SetRenderSettings() 函数需传入 {settings} 字典参数,用于配置渲染规则,核心键如下:
| 键名 | 类型 | 功能说明 |
|---|---|---|
| "SelectAllFrames" | Bool | 设为 True 时,忽略 “MarkIn” 和 “MarkOut”(渲染整个时间线) |
| "MarkIn"/"MarkOut" | 整数 | 渲染起始 / 结束帧(需设 “SelectAllFrames” 为 False) |
| "TargetDir" | String | 渲染文件输出目录 |
| "CustomName" | String | 渲染文件名前缀 |
| "ExportVideo"/"ExportAudio" | Bool | 是否导出视频 / 音频 |
| "AudioCodec" | String | 音频编码(如 "wav"、"aac") |
| "AudioBitDepth" | 整数 | 音频位深(如 16、24) |
| "AudioSampleRate" | 浮点数 | 音频采样率(如 44100、48000) |
| "VideoQuality" | 整数 / 字符串 | 视频质量(0 = 自动,1~ 最大值 = 比特率,或 "Low"/"Medium"/"High"/"Best") |
9. 时间线导出属性说明
Timeline.Export(fileName, exportType, exportSubtype) 函数用于导出时间线为工程文件,参数说明如下:
exportType(导出类型):枚举值,如resolve.EXPORT_AAF(AAF 格式)、resolve.EXPORT_EDL(EDL 格式)、resolve.EXPORT_FCPXML_1_10(FCPXML 1.10 格式)等;exportSubtype(导出子类型):部分导出类型必填,例如:- 导出 AAF 时:可选
resolve.EXPORT_AAF_NEW(新建)或resolve.EXPORT_AAF_EXISTING(更新现有); - 导出 EDL 时:可选
resolve.EXPORT_CDL(包含 CDL 调色)、resolve.EXPORT_SDL(包含 SDL 信息)等。
- 导出 AAF 时:可选
注:从 DaVinci Resolve 18.1 开始,不再支持EXPORT_FCPXML_1_3到EXPORT_FCPXML_1_7等旧版 FCPXML 格式。
10. 时间线片段属性说明
TimelineItem.SetProperty() 和 TimelineItem.GetProperty() 函数用于设置 / 获取时间线片段的属性,部分核心属性及取值范围如下:
| 属性名 | 取值范围 | 功能说明 |
|---|---|---|
| "Pan"/"Tilt" | -4.0× 宽度~4.0× 宽度 /-4.0× 高度~4.0× 高度 | 平移 / 倾斜 |
| "ZoomX"/"ZoomY" | 0.0 ~ 100.0 | X/Y 轴缩放比例 |
| "RotationAngle" | -360.0 ~ 360.0 | 旋转角度 |
| "Opacity" | 0.0 ~ 100.0 | 不透明度 |
| "CompositeMode" | 枚举值(如 COMPOSITE_NORMAL = 正常、COMPOSITE_MULTIPLY = 正片叠底) | 合成模式 |
| "RetimeProcess" | 枚举值(如 RETIME_FRAME_BLEND = 帧混合、RETIME_OPTICAL_FLOW = 光流法) | 变速处理方式 |
11. LUT 导出说明
TimelineItem.ExportLUT(exportType, path) 函数用于导出片段的 LUT 调色文件,exportType(导出类型)为枚举值,对应含义如下:
| 枚举值 | 功能说明 |
|---|---|
| resolve.EXPORT_LUT_17PTCUBE | 导出 17 点 CUBE 格式 LUT |
| resolve.EXPORT_LUT_33PTCUBE | 导出 33 点 CUBE 格式 LUT |
| resolve.EXPORT_LUT_65PTCUBE | 导出 65 点 CUBE 格式 LUT |
| resolve.EXPORT_LUT_PANASONICVLUT | 导出松下 VLUT 格式 LUT |
注:若导出路径未指定后缀或后缀错误,函数会自动添加正确后缀(.cube 或 .vlt)。
八、废弃与不支持的 API 函数
1. 废弃函数(不建议使用,有替代方案)
| 对象名 | 废弃函数 | 替代函数 |
|---|---|---|
| ProjectManager | GetProjectsInCurrentFolder() | GetProjectListInCurrentFolder() |
| ProjectManager | GetFoldersInCurrentFolder() | GetFolderListInCurrentFolder() |
| Project | GetPresets() | GetPresetList() |
| Project | GetRenderJobs() | GetRenderJobList() |
| MediaStorage | GetMountedVolumes() | GetMountedVolumeList() |
| MediaStorage | AddItemsToMediaPool() | AddItemListToMediaPool() |
| Folder | GetClips() | GetClipList() |
| Timeline | GetItemsInTrack() | GetItemListInTrack() |
2. 不支持的函数(完全无法使用)
| 对象名 | 不支持的函数 | 替代方案 |
|---|---|---|
| Project | StartRendering(index1, index2, ...) | 使用任务 ID 替代索引,如 StartRendering (jobId1, jobId2, ...) |
| Project | DeleteRenderJobByIndex(idx) | DeleteRenderJob (jobId)(用任务 ID 删除) |
| Project | GetRenderJobStatus(idx) | GetRenderJobStatus (jobId)(用任务 ID 查询) |
| Project | 设置属性 “videoMonitorUseRec601For422SDI” | 替换为 “videoMonitorUseMatrixOverrideFor422SDI” 和 “videoMonitorMatrixOverrideFor422SDI” |
| Project | 设置属性 “perfProxyMediaOn” | 替换为 “perfProxyMediaMode”(0 = 禁用、1 = 有代理时使用、2 = 无原文件时使用) |