【懒人系列】造一个达芬奇渲染农场
“为了更快地完成渲染交付任务,我们现在购买了22台 Mac Mini,装上最新版本的DaVinci Resolve,接入万兆以太网,告诉你的客户说这个88集的剧明天就可以出好。”
快醒醒 起来出片了
想必各位都希望能把可调配的闲置算力用来加快比急更急的交付任务。那么在有了共享存储、共享数据库,合理的网络基建的前提下,我们完全可以利用一些闲置的电脑,在同事都下班之后(实惨),统统利用起来帮助你早点回家。
我们都希望这样的操作:不必走到每一台电脑前各自执行一遍;同时还需要确保调色工程所需的资源都可以保持一致;当然最好可以搭建一个独立的渲染农场来让大家都可以随时享用。
要实现这一目的其实也不难:
统一生产环境
最理想的当然是硬件配置尽量相似,甚至完全一致,比如我们现在下单88台同一型号的Mac Mini;如果有一模一样的配置,可以把整个系统也做到一模一样,仅仅是起个不同的名字来加以区分。
当然,达芬奇的版本自然得完全相同,这是一个最基本的要求。剩下的自然就是都连接到同一 PostgreSQL 数据库啦。
在搭建这个环境的过程中,通常我们需要确保以下几类内容能保持一致:
素材路径
显然,拥有一个共享存储即可解决,这也是一个最基础的需求;如果涉及跨操作系统,请确保存储的映射设置,以及非法路径在不同的操作系统中带来的读取错误(这个太可怕了,所以强烈建议大家用最简单的命名方法,并尽可能避免使用中文)
LUT
最暴力的方式自然是大家各自都拷贝一份,不过17版达芬奇加入了手动指定附加的LUT路径功能,这也让我们对于临时用一套LUT更便捷了一些

OFX(如果有)
由于OFX的安装和应用其实比较复杂,毕竟许多OFX会涉及到授权的问题,所以这个不在讨论范围内的问题我们果断跳过吧
Cache(如果有)
聪明的你想必会记得把cache路径指定到共享存储里即可解决
读写权限
如果你有IT,呼唤他们就好了(认真的;如果没有请确认你的权限管理策略没有阻碍你的脚步
熟悉小黄灯的你也可以使用之前我们介绍过的方法 [请移步并关注小黄灯啦],来实现一部分目的

或者可以使用一个macOS/Linux下的绝招*
说好的不用一个个进去点来着
首次准备完成,并做好一些必要的测试后,我们可以回想一下,在需要远程渲染的时候,哪些必须的操作是通常会一台台电脑依次执行的:
开机
检查各种设置
启动达芬奇
切换到某个数据库(如果你有多个工作用的数据库的话,比如是按项目建立)
进入远程渲染模式
等待渲染完毕
收工关机
开关机这件事得看机器本身支不支持网络启动之类的操作,剩下的几项似乎是有希望可以解决的?
解决这几个步骤本来很早以前就还比较困扰,直到后来有了两个关键功能:
启动达芬奇时自动进入远程渲染模式
自动扫描其他数据库的远程渲染任务

启动达芬奇时自动进入远程渲染模式
其实很多软件都有一个通过命令行启动的【隐藏入口】,达芬奇也不例外。想必我们在启动达芬奇的时候加入一个特定的参数,就能顺利以远程渲染模式启动了。
要实现这一目的,只需找到达芬奇本体,右键【显示包内容】,找到 Contents > MacOS > Resolve,复制其文件路径,或将其拽进终端:

通常大家安装的都是默认路径。要以远程渲染模式启动,只需加上 -rr 即可:
/applications/DaVinci\ Resolve/DaVinci\ Resolve.app/Contents/MacOS/Resolve -rr
此时达芬奇将会以 headless 模式启动,没有任何界面,稍等片刻应该就启动完毕了。
TIPS
聪明的你可能会想到,界面都没有,要是某一台渲染途中出现了某种错误该怎么办?
/Library/application Support/Blackmagic Design/DaVinci Resolve/logs
大部分错误都可以在日志中看到,但还有个老毛病是某些报错只会在GUI中体现,并不一定会写在日志里,这就有点尴尬了

自动扫描其他数据库的远程渲染任务
这就更简单了,在17之前这个问题确实是一个令人苦恼的事,尤其是因为按项目区分不同数据库来工作的方式想必非常常见。所以17之后终于在偏好设置中有了这个选项:

到此为止,这个农场基本上就可以开始运转起来啦。
我们是一家带公司
哦?……大公司啊?听说隔壁VFX部门还有个专门来搞农场管理的 Deadline 来着:

虽然不太熟,但看上去很科学的样子,要是达芬奇也能接入就好了……诶等等

好吧,看上去没我什么事了
楼上提到的绝招还没说呢
macOS/Linux下我们还可以通过【软链接】搞定某些生产环境的共享问题。例如:
不希望在偏好设置中附加LUT文件夹(担心有重名的?);
多个电脑之间都确保可以在达芬奇内执行自己写的脚本;
共享同一套系统偏好设置(实现要求略高,例如最好完全一样的硬件配置)(不建议);
都可以通过找到它们所在路径,用一个位于共享存储的路径来代替它们,这将会在系统级【欺骗】达芬奇去读取这些以为是本地的文件,但实际上文件本体都指向了同一个地方。
要创建软链接,最简单的方式就是这样:
ln -s {source_file} {target_location}
例如我要把指定的脚本的软链接放进可供在达芬奇内执行特定文件夹:
ln -s ./playground.py ~/Library/application\ Support/Blackmagic\ Design/DaVinci\ Resolve/Fusion/Scripts/Edit
当然这中间需要具体做一些可靠性测试,这一【欺骗】手段也不是100%能成功的,需要大家自己去摸索