DaVinci Resolve
Davinci Resolve 是一款专有的视频编辑、调色、色彩校正、视觉效果、动态图形和音频后期制作应用程序。
安装
提供有限的免费版和付费(Studio)版。
对于免费版本,安装 davinci-resolveAUR 或 davinci-resolve-betaAUR。
对于 Studio 版本,安装 davinci-resolve-studioAUR 或 davinci-resolve-studio-betaAUR。
要运行 DaVinci Resolve,需要使用合适的 OpenGL 和 OpenCL 驱动程序。开源 OpenCL 驱动程序通过 Mesa (Rusticl) 支持 AMD 显卡和 Intel 显卡。NixOS wiki 提供了 Davinci Resolve 支持的 AMD GPU 兼容性矩阵。
GPU 供应商 | OpenGL 驱动程序 | 开源 | 文档 | 已测试驱动程序版本 | 与 DaVinci Resolve 兼容 | 已测试 DR 版本 | 注释 |
---|---|---|---|---|---|---|---|
AMD | mesa | 是 | AMDGPU | 23.0.2-2 | 是 | 18.1.4-1 | 在 Vega 之前的 GPU 上,如果使用 opencl-amd 和 mesa,DR 会崩溃,请参阅 此 错误报告。您可以改为将 rocm 与 ROC_ENABLE_PRE_VEGA=1 一起使用,或者将 opencl-amd 与 progl 一起使用。已使用 Radeon RX 580 测试。 已使用 Radeon PRO W6600 测试。 |
amdgpu-pro-oglpAUR | 否 | AMDGPU PRO | 21.10_1247438-1 | 是 | 17.1.1 | 如果使用 ORCA 传统 OpenCL 驱动程序,则这是必需的。需要使用 progl 包装器脚本运行 Resolve。请参阅 文档 和 驱动程序 github 以了解用法。 | |
Intel | mesa | 是 | Intel graphics | 23.1.6 | 是 | 18.5.1 | 工作正常,没有问题。 |
NVIDIA | mesa | 是 | Nouveau | 否 | |||
nvidia-utils | 否 | NVIDIA | 460.32.03-1 | 是 | 17.0b6-1 | 已在使用 nvidia-xrun 的 optimus 笔记本电脑上测试。 |
GPU 供应商 | OpenCL 驱动程序 | 开源 | 已测试驱动程序版本 | 与 DR 兼容 | 已测试 DR 版本 | 注释 |
---|---|---|---|---|---|---|
Neutral | opencl-rusticl-mesa | 是 | 1:23.3.2-2 | 是 | 18.6.4-1 | 仅当未安装 opencl-clover-mesa 时,此方法才有效,否则 DR 将使用 Clover 而不是 rusticl。某些内核版本在 ROCm 上存在问题,但 6.1 LTS 和 6.10.2 工作正常。 已使用 RX 6800M 测试。 |
mesa-tkg-git | 是 | 24.0.0_devel.180705.fdbb5d58983-1 | 是 | 18.6 | DR 现在可以与 rusticl 一起使用,因为 MR 21305 已合并(commit 0a072bb3)。 已使用 RX 7600 并使用 | |
AMD | opencl-amdAUR | 混合 pro 和 open 组件 | 1:5.6.0-2 | 是 | 18.5b | 目前没有仅包含来自 Ubuntu 的重新打包 rocm 驱动程序的 AUR 软件包(此 opencl-amd 软件包同时包含 rocm 和 orca)。在 GFX8(RX 580 和其他)上,默认使用 ORCA 传统驱动程序,它本身目前需要 AMDGPU-PRO OpenGL 驱动程序才能工作(见上文)。 已使用 Radeon Pro W6600 测试(工作正常,即使使用 mesa) 已使用 Radeon RX 580 测试(工作正常,目前仅适用于 progl)。 已使用 Radeon RX 5700 XT 测试(使用 mesa) 解决了在颜色页面上尝试执行颜色校正时崩溃的问题(使用 rocm-opencl-runtime 软件包时遇到)。已使用 Radeon 7900XT 测试。 |
rocm-opencl-runtime | 是 | 5.4.3-1 | 是 | 18.1.4-1 | 对于早于 GFX9/Vega 的 GPU,请使用变量 ROC_ENABLE_PRE_VEGA=1 ;与 Mesa OpenGL 兼容已使用 Radeon Pro W6600 测试 已使用 AMD RX580 测试。颜色校正可能会导致崩溃(Radeon 7900XT 出现这种情况),请考虑使用 opencl-amd 5.6.0-2。 | |
opencl-legacy-amdgpu-proAUR | 否 | 22.10.1_1401426-1 | 是,适用于早于 Vega 的 GPU | 17.4.6-2 | 请注意,这只是不包含 ROCm 驱动程序的 opencl-amdAUR 软件包。 需要 AMDGPU-PRO OpenGL 驱动程序才能工作。 已使用 Radeon RX580 测试。 | |
Intel | intel-compute-runtime | 是 | 自定义 | 是 | 18.5.1 | 通过补丁工作,在 此问题 中描述。 |
mesa 应用 cl-gl 共享 MR | 是 | 23.3.0,已应用 MR | 是 | 18.6 | 与 RUSTICL_ENABLE=iris 一起作为环境变量导出时有效 | |
beignetAUR | 是 | 1.3.2+12+gfc5f430c-2 | 否 | Core dumped | ||
intel-openclAUR | 否 | 5.0.r63503-2 | 否 | Core dumped | ||
intel-opencl-runtimeAUR | 否 | 1:18.1.0.013-2 | 否 | Core dumped | ||
Nvidia | opencl-nvidia | 否 | 460.32.03-1 | 是 | 合适,但可以在 cuda 上工作吗? |
DaVinci Resolve 检查器
您可以运行 davinci-resolve-checker 脚本,它会告诉您您的配置是否适合运行 DR(不适用于 Intel iGPU - 说 OpenCL 驱动程序不受支持,但您可以使其工作)。在良好的配置中,它应该输出
All seems good. You should be able to run DaVinci Resolve successfully.
BlackMagic Design 采集卡
如果使用 DeckLink、UltraStudio 或 Intensity 采集卡进行视频采集和播放,请使用 decklinkAUR 软件包安装 Desktop Video Software。
技巧与窍门
缩短安装时间
Davinci Resolve 软件包的压缩需要大量时间,因为二进制文件非常大。您可以指示 makepkg 使用 不同的压缩算法,在这种情况下,它会完全禁用压缩,从而极大地加快进程。
PKGEXT='.pkg.tar'
以便携方式使用应用程序
您可能有不想将 davinci resolve 软件包安装到系统中的原因。例如,您不希望如此大的软件包占用系统分区中的空间。或者您想在应用程序的不同版本之间快速切换:免费版和 Studio 版、当前版本和以前版本。为此,只需将所需版本软件包的内容解压缩到您想要的目录中,然后直接从该目录运行 opt/resolve/bin/resolve。
使用脚本自动化
DR 支持脚本。免费版仅支持从 dr 本身内部启动脚本,而 Studio 版还允许您在外部调用脚本。要允许这样做,请转到 Preferences -> System -> General -> External scripting using(偏好设置 -> 系统 -> 常规 -> 使用外部脚本)。您可以选择:None(无,类似于免费版,仅限 dr 内部)、Local(本地,允许从本地主机调用)和 Network(网络,允许从远程主机调用)。
文档可以在 Help -> Documentation -> Developer(帮助 -> 文档 -> 开发者)中找到。
重映射鼠标滚轮的键盘修饰键用于滚动和缩放
应用程序对时间线的缩放和滚动使用了非常奇怪的键盘修饰键绑定。原始行为如下
- shift + 滚轮 = 轨道高度
- ctrl + 滚轮 = 滚动时间线
- alt + 滚轮 = 缩放时间线
- 无修饰键 + 滚轮 = 垂直滚动
无法从应用程序中重新映射此项,请参阅 [2]。
一种解决方法(在 X11 和 Wayland 中有效)是使用 evsieve。在以下命令中,将 /dev/input/event3
和 /dev/input/event5
替换为您的键盘和鼠标事件
# evsieve --input /dev/input/event3 grab --input /dev/input/event5 grab \ --hook key:leftalt:1 toggle=alt:2 \ --hook key:leftalt:0 toggle=alt:1 \ --hook key:leftctrl:1 toggle=ctrl:2 \ --hook key:leftctrl:0 toggle=ctrl:1 \ --toggle rel:wheel @alt-up @alt-down id=alt \ --map yield rel:wheel@alt-down key:leftalt:0 key:leftctrl:1 key:leftctrl:2 rel:wheel key:leftctrl:0 key:leftalt:1 \ --toggle rel:wheel @ctrl-up @ctrl-down id=ctrl \ --map yield rel:wheel@ctrl-down key:leftctrl:0 key:leftalt:1 key:leftalt:2 rel:wheel key:leftalt:0 key:leftctrl:1 \ --block rel:wheel_hi_res \ --print @alt-down @alt-up @ctrl-down @ctrl-up \ --output create-link=/dev/input/by-id/merged-virtual-KM name="merged virtual KM"
另一种解决方法(在 X11(和 Xwayland)中有效,效果较差,有时会跳过事件),您可以使用 IMWheel 实用程序。它可以仅为正则表达式描述的应用程序重新映射修饰键。
使用以下配置
~/.imwheelrc
"^resolve" # just wheel for scroll None, Up, Control_L|Button4 None, Down, Control_L|Button5 # crtl wheel for zoom Control_L, Up, Alt_L|Button4 Control_L, Down, Alt_L|Button5 # alt wheel for track height Alt_L, Up, Shift_L|Button4 Alt_L, Down, Shift_L|Button5
或者,使用以下代码块
~/.imwheelrc
"^resolve" # just wheel for zoom None, Up, Alt_L|Button4 None, Down, Alt_L|Button5 # shift wheel for scroll Shift_L, Up, Control_L|Button4 Shift_L, Down, Control_L|Button5
防止提示符在完全退出前返回
当您退出应用程序时,终端提示符会返回给您,但突然终端被“Socket disconnected”消息污染。为防止这种情况,请通过 cat
管道主进程的输出。有关说明,请参阅 此处。
故障排除
日志
DaVinci Resolve 在每次启动时都会创建日志文件 ~/.local/share/DaVinciResolve/logs/ResolveDebug.txt
。检查它可以帮助诊断问题。
应用程序窗口缺少标题栏
KDE 有一种解决方法 - 窗口规则强制启用标题栏。请参阅 [3]
您可以手动创建一个文件来描述所需的窗口规则
DaVinci_Resolve_main_window_always_with_titlebar_and_frame.kwinrule
[DaVinci Resolve main window always with titlebar and frame] Description=DaVinci Resolve main window always with titlebar and frame clientmachinematch=0 noborder=false noborderrule=2 titlematch=0 types=1 wmclass=resolve wmclasscomplete=false wmclassmatch=1
然后转到系统设置 > 窗口管理 > 窗口规则并导入此文件。
MP4、H.264、H.265 和 AAC 支持
DaVinci Resolve 免费版不支持 MP4 容器类型是一种误解。更准确的说法是,无论容器类型如何,DaVinci Resolve 免费版都不支持解码或编码 H.264 和 H.265 视频。
例如,包含 AV1 视频流和 MP3 或 PCM 音频流的 MP4 可以被 DaVinci Resolve 免费版解码。
DaVinci Resolve 免费版和 Studio 版都不支持 AAC 音频流的解码或编码。
版本 | MP4 | H.264 | H.265 | AAC | 已测试版本 | 注释 |
---|---|---|---|---|---|---|
免费版 | 是 | 否 | 否 | 否 | 18.6.6-2 | 如果使用受支持的编解码器(例如:AV1 和 PCM),则支持 MP4。根据编解码器文档,AV1 仅在 Nvidia 上可用,甚至可能仅用于解码。 |
Studio 版 | 是 | 是 | 是 | 否 | 18.6.6-2 |
DaVinci Resolve Free 的解决方法
如果您的 MP4 视频是 H.264 或 H.265,但音频是 MP3 或 PCM,您只需要将视频转码为受支持的编解码器,因为音频已受支持。
$ ffmpeg -i input.mp4 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a copy output.mov
如果您的 MP4 视频是 H.264 或 H.265,并且音频是 AAC,您需要将视频和音频都转码为受支持的编解码器。
$ ffmpeg -i input.mp4 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a alac output.mov
如果您的 MP4 视频是 AV1,但音频是 AAC,则只需将音频转码为受支持的编解码器
$ ffmpeg -i input.mp4 -c:v copy -c:a pcm_s32le output.mp4
您可以使用 incron 自动化此任务。它将自动转换出现在指定文件夹中的文件。请参阅 本文上的设置示例。另一种替代方法是为此目的编写一个 resolve 脚本。有关更多信息,请参阅 Resolve Scripting 的文档(在“参见”部分中链接)。
DaVinci Resolve Studio 的解决方法
Studio 版本支持 H.264 和 H.265 视频,但不支持 AAC 音频。您可以将不受支持的 AAC 格式的音频转码为受支持的无损格式,而不会破坏性地重新压缩视频或将音频与视频分离。
在#参见部分,请注意指向包含受支持编解码器官方列表的 PDF 的链接。
要将音频转码为Apple Lossless Audio Codec (-c:a alac
)。如果您喜欢使用 MOV 容器,这是一个不错的选择。
$ ffmpeg -i input.mp4 -c:v copy -c:a alac output.mov
FLAC 提供的压缩优势略优于 ALAC。要转码为 FLAC,您需要使用 MKV 容器。
$ ffmpeg -i input.mp4 -c:v copy -c:a flac -compression_level 12 output.mkv
使用 PCM 可能没有任何真正的优势,除非 MP4、MOV 和 MKV 容器都支持它,如果这对您很重要。
$ ffmpeg -i input.mp4 -c:v copy -c:a pcm_s32le output.mov
HiDPI
要启用与高分辨率显示器的兼容性,请相应地设置以下环境变量:[4]
QT_DEVICE_PIXEL_RATIO=2 QT_AUTO_SCREEN_SCALE_FACTOR=true
您可以在设置中更改 UI 缩放:Preferences (ctrl + ,) > User tab > UI settings > UI Display Scale(偏好设置 (ctrl + ,) > 用户选项卡 > UI 设置 > UI 显示比例)。
Wine 版本
有些插件可用于 Windows,但不可用于 Linux,因此您可能希望通过 wine 使用 Davinci Resolve。此外,wine 版本可能可以解决 mp4 格式问题的 linux 独有问题。Wine 6.5 带来了 OpenCL 1.2 支持,这是 DR 所需 的。不幸的是,通过 wine 启动 DR 并没有成功。请参阅 此处 的测试结果。在 17.4.1 DR 中,无法看到可用 gpu 的列表 (wine 6.21)。可能需要一些技巧来使 wine 向应用程序呈现 gpu。在 wine 8.7-1 的 dr 18.5b1 中,我遇到了 rocm 错误 (5.4.3-1),该错误在 此处 提交。
错误的 OpenCL 版本
如果应用程序根本无法启动,即使在成功显示安装程序和“导览”后,您的 OpenCL 版本也可能与您的 NVIDIA 驱动程序不匹配。如果您安装了 nvidia-440xx,请确保同时安装 opencl-nvidia-440xx。可能的错误消息
~/.local/share/DaVinciResolve/logs/LogArchive/ResolveDebug_C1.txt
... OpenCL error -1001: 'Unspecified Error', GPUPropertiesUtilUnix.cpp:338 ...
返回到 Onboarding 屏幕
如果您正在试验驱动程序安装,您可能希望从欢迎导览和 Onboarding 屏幕开始,它会检查您的系统和显卡。您可以通过删除配置目录来实现
rm -r $HOME/.local/share/DaVinciResolve/configs
全屏预览功能缺失
此功能仅在 Studio 版本中可用。它位于菜单 Workspace > Video Clean Feed(工作区 > 视频干净输出)中。
视频预览期间无音频
DaVinci 直接与 ALSA 接口,因此如果您使用 pulseaudio,则需要安装 pulseaudio-alsa 或 pipewire-alsa。或者,您可以创建内容如下的 asound.conf
在 /etc/
中,将音频重定向到 PulseAudio 本身
/etc/asound.conf
pcm.!default pulse ctl.!default pulse
Intel/NVIDIA 混合显卡上的错误代码 999
“GPU 因错误而无法执行图像处理。错误代码:999。”
如果在按需模式下使用 NVIDIA GPU,则必须显式请求它。要启用,请设置以下环境变量
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia
DaVinci Resolve 未在图形模式下启动。在控制台中,抛出此错误
$ /opt/resolve/bin/resolve bin/resolve: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
您需要安装 libxcrypt-compat。
在 Windows 和 Mac OS 的 DR Studio 中,有 Workspace -> Workflow Integrations(工作区 -> 工作流程集成)菜单。工作流程集成插件是用 JavaScript(electron 应用程序)编写的。正如文档(您可以在 Help -> Documentation -> Developer(帮助 -> 文档 -> 开发者)中找到)中指出的那样,Linux 目前不受支持(在 17.4.3 中检查过)。他们说 Linux 支持集成脚本,这很可能是一个错误,因为他们没有提供放置脚本的路径,并且菜单仍然缺失(它是相同的 Workspace -> Workflow Integrations)。
未找到 Python 3.6
当转到 Workspace -> Console -> Py3(工作区 -> 控制台 -> Py3)时,会出现错误窗口,显示“未找到 Python 3.6”。
一种解决方案如下(来自 此 问题)
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.11 sudo ln -s $HOME/.pyenv/versions/3.6.11/lib/python3.6 /usr/local/lib/python3.6 sudo ln -s $HOME/.pyenv/versions/3.6.11/lib/libpython3.so /usr/local/lib/libpython3.6.so
在 DR 18 中,他们 说 支持所有现代和未来的 python 3 版本用于脚本编写。
杀死挂起的进程
如果 dr 挂起,当您按 ctrl + c(发送 sigint)时无法释放终端,并且当其窗口未显示且您无法再次打开 dr 时(它说另一个实例已在运行),您仍然可以修复它。打开任务管理器(在 KDE 中为 ctrl + esc),然后搜索名为“GUI”的进程,然后杀死它(发送信号 9)。现在您可以正常启动 dr。
使用 Dolphin 代替 Qt 文件选择器
不幸的是,DR 尚不支持 XDG 桌面门户。请参阅 [5] 的功能请求。作为一种解决方法,您可以使用 Andrew Shark 的脚本 Import Media via Dolphin(通过 Dolphin 导入媒体)。
无法启动 (onetbb/log4cxx)
切换到 onetbb 导致挂起,并显示以下消息
/opt/resolve/bin/resolve
... ActCCMessage Already in Table: Code= c005, Mode= 13, Level= 1, CmdKey= -1, Option= 0 ActCCMessage Already in Table: Code= c006, Mode= 13, Level= 1, CmdKey= -1, Option= 0 ActCCMessage Already in Table: Code= c007, Mode= 13, Level= 1, CmdKey= -1, Option= 0 ActCCMessage Already in Table: Code= 2282, Mode= 0, Level= 0, CmdKey= 8, Option= 0 PnlMsgActionStringAdapter Already in Table: Code= 615e, Mode= 0, Level= 0, CmdKey= -1, Option= 0 log4cxx: No appender could be found for logger (BtCommon). log4cxx: Please initialize the log4cxx system properly. ...
一种建议的解决方法是暂时将 /opt/intel/oneapi/compiler/2023.0.0/linux/lib/libOpenCL.so
重命名为其他名称。
请参阅 tbb is replaced by onetbb and resolve cannot start on linux(tbb 已被 onetbb 替换,resolve 无法在 linux 上启动)论坛帖子,了解更多讨论。
无法启动 (libpango/glib)
由于 Resolve 处理库的方式,如果系统库与 resolve 附带的库差异太大,则启动软件可能会失败。
/opt/resolve/bin/resolve: symbol lookup error: /usr/lib64/libpango-1.0.so.0: undefined symbol: g_string_free_and_steal
要规避此问题,您可以强制 Resolve 使用系统版本
$ LD_PRELOAD="/usr/lib64/libglib-2.0.so" /opt/resolve/bin/resolve
Resolve 可能在第一次尝试时启动失败,但在后续尝试中将会工作正常。
可能会导致新的错误
/opt/resolve/bin/resolve: symbol lookup error: /usr/lib/libgdk_pixbuf-2.0.so.0: undefined symbol: g_task_set_static_name
截至 2024-05-23,针对 g_task_set_static_name
错误的修复是(Arch 论坛中的解决方案来源)
$ LD_PRELOAD="/usr/lib/libgio-2.0.so /usr/lib/libgmodule-2.0.so" /opt/resolve/bin/resolve
另一种解决方法是从 Resolve 的目录中删除一些库。这样,Resolve 将被迫使用系统库,而不是与其打包在一起的库。另请参阅软件包的 AUR 注释和 PKGBUILD 本身,以获取有关此技巧的更多信息。
/opt/resolve/libs/libglib-2.0.so* /opt/resolve/libs/libgio-2.0.so* /opt/resolve/libs/libgmodule-2.0.so*
参见
- 帖子,在 Davinci Resolve 论坛上,包含已测试的配置。
- PDF,其中包含 DaVinci Resolve 19 的 受支持格式和编解码器 列表
- 此处,您可以查看 BMD 是否发布了较新版本的文档,请参阅“最新支持说明”列。此外,它还列出了每个版本的最新功能说明。
- ResolveDevDoc - 非官方的脚本编写文档。使用 readthedocs 格式化,比原始 txt 文件更美观,更易于阅读和搜索。
- pydavinci - 重新设计的 resolve 脚本编写 api