Desmos Bezier Renderer安装&使用指南
项目地址:Desmos Bezier Renderer
参考文章:Installation and Usage Guide for Desmos Bezier Renderer on Windows with WSL
本篇文章使用VMware workstation部署虚拟机
Demo
安装Ubuntu
创建虚拟机
- 打开VMware workstation
- 点击左上角
文件
,选择新建虚拟机
- 选择
自定义
,然后选择Workstation 17.x
的硬件兼容性(我使用的是VMware Workstation 17.0.0 build-20800274,其他版本也应该适用) - 选择
稍后安装操作系统
- 客户机系统选择
Linux
,版本选择Ubuntu 64位
- 选择一个空闲空间大于
20GB
的路径存储虚拟机文件 - 为虚拟机分配合适的处理器核心数,不建议高于物理机核心数(脚本是单线程运行的,对核心线程数不敏感)
- 为虚拟机分配
4G/4096MB
以上的内存(影响单次运行时可以渲染的图片数量,越高越好,我使用的是8G) - 选择
使用网络地址转换(NAT)
类型的网络连接 - 选择
LSI Logic
- 选择
SCSI
- 选择
创建新的虚拟磁盘
- 为虚拟机分配
20.0G
以上的磁盘空间,选择将虚拟磁盘拆分成多个文件
- 完成虚拟机创建
安装操作系统
- 点击
编辑虚拟机设置
- 选择
CD/DVD(SATA)
- 在右侧选择
使用ISO映像文件
,选择ubuntu-22.04.5-desktop-amd64.iso(点击此处下载文件)
推荐使用Ubuntu22.04 - 开启虚拟机
- 按下回车键选择
Try or Install Ubuntu
- 左侧语言列表下滑找到简体中文并点击右侧
安装Ubuntu
- 选择
Chinese-Chinese
键盘布局 - 选择
正常安装
,取消选择安装Ubuntu时下载更新
- 选择
清除整个磁盘并安装Ubuntu
,弹出的对话框选择继续 - 选择
Shanghai
时区 - 填写并记住这些信息,这些信息在后续的操作中很重要,可以选择开启自动登录
- 等待Ubuntu操作系统安装完成并重启系统
- 点击上分
虚拟机
,点击设置
,选择CD/DVD(SATA)
,点击下方移除
- 回到虚拟机窗口,点击回车键
配置操作系统
跳过添加账户
跳过Ubuntu PRO(Skip for now)
自行选择是否向Ubuntu发送数据
跳过隐私选项
完成安装引导
点击虚拟机下方vmware的黄色弹窗,选择
我已完成安装
左上角
Ubuntu 24.04.1 LTS升级可用
弹窗,选择不升级,中间的弹窗点击确定左上角
软件更新器
,点击设置,将更新
页面设置为
订阅:仅安全更新
自动检查更新:从不
当有安全更新时:自动下载
当有其他更新时:每两周显示一次
有新版本时通知我:从不
点击关闭,在可用软件的列表信息已过时
窗口,选择重新载入
左上角软件更新器弹窗,点击稍后提醒
点击左下角显示所有应用程序
点击设置
在网络选项卡中,点击右侧网络代理,选择手动
自行填写网络代理地址,或查看这篇文章通过Clash在局域网设备上配置代理在左侧找到电源选项卡,将自动息屏设置为
从不
安装Desmos Bezier Renderer
- 右键桌面打开终端
- 在终端执行以下命令更新APT的软件包存储库
sudo apt update
这里会要求你输入安装操作系统时填写的密码,终端不会显现输入的字符
- 安装Desmos Bezier Renderer所依赖的组件
sudo apt install git python3.10-dev python3-pip python3.10-venv build-essential libagg-dev libpotrace-dev pkg-config ffmpeg
输入Y,按下回车键确认
- 下载Desmos Bezier Renderer
git clone https://github.com/kevinjycui/DesmosBezierRenderer.git
- 关闭终端窗口,在桌面右下角打开Desmos Bezier Renderer文件夹
- 右键文件夹空白处打开一个新的终端
- 创建python虚拟环境
python3 -m venv env
- 激活虚拟环境
. env/bin/activate
执行完成后,终端前面出现(env)代表执行成功
- 安装python依赖
pip install wheel
- 安装其他依赖
pip install -r requirements.txt
- 关闭终端窗口完成安装
使用SMB在虚拟机和Windows主机之间传输文件
在主机创建SMB共享文件夹
请不要在不信任的网络环境下开启SMB共享,若需要,请限制可访问SMB共享文件夹的用户数量(>2)
- 右键文件夹打开属性,按照上图开启文件夹共享
- 在Windows主机上打开文件资源管理器,右键左侧
此电脑
点击管理
,打开计算机管理器 - 在左侧依次打开
系统工具
-本地用户和组
-用户
- 在右侧空白处右键选择
新用户
- 在弹出的窗口内填写和Ubuntu虚拟机一致的用户名(我忘记了用户名怎么办)
- 填写密码
- 取消选择
用户下次登录时须更改密码
- 选择
密码永不过期
在Ubuntu虚拟机上连接到SMB服务器
- 在Windows主机上右键任务栏打开任务管理器,找到
性能
选项卡 - 在性能选项卡找到以太网
- 在右侧找到IPv4地址:
192.xxx.xx.x
- 回到虚拟机,打开左侧
文件
- 点击下方添加
其他位置
- 输入服务器地址
smb://192.xxx.xx.x
- 在弹出的身份认证选项卡内输入刚才在Windows上新添加的用户的用户名和密码
- 底部选择
永远记住
- 连接到SMB服务器后点击刚才在Windows上共享的文件夹(这一步是在Ubuntu虚拟机中操作)
- 在弹出的窗口中选择
已注册用户
并再次填写用户名和密码 - 底部选择
永远记住
- 过程中可能会弹窗要求你输入Ubuntu用户的登录密码,输入即可
- 至此,成功挂载SMB共享文件夹到Ubuntu虚拟机
- 右键挂载的SMB文件夹(左侧栏的SMB文件夹,通常以IPv4地址开头)选择添加到书签,这样在重启后可以快速挂载SMB共享文件夹
准备渲染素材
单张图片文件处理
- 在Windows主机上复制图片到SMB共享文件夹目录下(必须是PNG文件)
- Ubuntu虚拟机重新打开SMB文件夹即可见到文件
- 将文件重命名为
frame1.png
- 复制图片文件到Desmos Bezier Renderer文件夹下的frames文件夹(注意提前清空这个文件夹的其他文件)
- 按照教程开始渲染
视频文件处理
处理视频素材
- 打开Adobe Premiere
- 新建项目并选择保存路径,
取消选择创建序列
- 点击左上角
文件
-新建
-序列
- 转到
设置
选项卡
编辑模式:DSLR
时基根据需求自行选择30.0或者60.0(若视频为30帧,请选择30.0)
帧大小建议使用640x360或者854x480
创建序列 - 导入视频到项目
- 将视频素材移动到序列轨道上,在弹出的警告窗口中选择
保持现有设置
- 选中轨道上的素材
- 在左侧打开效果控件
- 左右拖动缩放后面的
100%
,在右侧预览窗口观察缩放的画面到合适的大小(铺满预览窗口) - 按下
C
键切换到剃刀工具 - 点击右侧轨道任意位置进行裁切(按照个人需求进行裁切,例如你只需要20秒的素材进行渲染)
- 按下
V
键切换到选择工具 - 点击裁切后的素材右端,按下del键或者右键选择清除(目的是删除裁切后多余的画面)
- 按下
Ctrl+M
切换到导出选项卡 - 在顶部可以看到文件名和保存路径的设置,自行更改
- 注意选中
视频
后面的开关 - 导出视频素材
- 回到编辑窗口按下
Ctrl+S
保存项目文件
分解视频素材
- 复制导出的视频素材到SMB共享文件夹
- 复制视频素材到Desmos Bezier Renderer文件夹下
- 注意提前清空
frames
文件夹的其他文件(不要直接删除这个文件夹,点开文件夹按Ctrl+a全选,右键删除) - 右键空白处打开终端
- 输入
ffmpeg -i
(注意有两个空格) - 拖动素材视频文件到终端窗口
- 输入
-vf "fps=视频帧数" "frames/frame%d.png"
其中视频帧数与你在上一步设置的序列时基有关,他影响到最终输出的视频帧数
完整命令示例
ffmpeg -i 'example.mp4' -vf "fps=30.0" "frames/frame%d.png"
- 按照教程开始渲染
使用Desmos Bezier Renderer渲染
- 打开Desmos Bezier Renderer文件夹
- 激活虚拟环境
. env/bin/activate
- 运行Desmos Bezier Renderer开始渲染
python3 backend.py -d
后面加上
-d
会自动下载渲染后的图片到下载
文件夹,注意提前清空下载
文件夹
注意输入Y并按下回车同意EULA
- 在打开的浏览器窗口左侧可以看到一些信息
F代表渲染帧
513
代表一共有513帧画面
F=16
代表正在渲染第几帧
L代表这一帧画面计算的函数数量
- 找到
f=0
- 将
0
改为1
(代表从第1帧开始渲染) - 按下上方
<<<
箭头收起侧面板 - 等待渲染完成(在终端查看输出的信息
GET /?frame=11
可以知道正在渲染第几帧) - 在终端按下
Ctrl+C
即可终止程序
重启虚拟机恢复运行
部署完整套系统,下次运行只需要输入这两条命令即可
. env/bin/activate
python3 backend.py -d
处理渲染后的文件
单张图片文件
若在渲染时启用了-d
参数,你可以在下载
文件夹找到渲染后的图片,将其复制到SMB共享文件夹即可在Windows主机上的SMB共享文件夹内找到
视频文件
合成渲染文件
确保在渲染时启用了-d
参数,最终合成视频分辨率取决于你渲染时设定的分辨率
- 打开
下载
文件夹 - 右键空白处打开终端
- 执行以下命令,注意修改
视频帧数
(30.0/60.0)
ffmpeg -r 视频帧数 -f image2 -i frame-%05d.png output.mp4
合成视频文件
- 复制合成后的渲染文件
output.mp4
到SMB共享文件夹 - 在Windows主机上导入这个视频文件到Adobe Premiere项目中
- 依次点击左上角
文件
-新建
-序列
- 转到设置选项卡
编辑模式:DSLR
时基请选择和之前一致的
帧大小填写和渲染文件一致的(在导入渲染文件后,在左下角素材库右键选择属性,查看图像大小)
创建序列 - 将渲染文件拖到右侧序列轨道上
- 打开之前处理视频素材时的序列(通常命名为序列01)
- 右键轨道上的素材,选择
取消链接
- 选择下面的音频部分,右键选择
复制
- 回到刚刚新建的序列(通常命名为序列02)
- 点击轨道,按下
Ctrl+V
粘贴
注意对齐视频轨道,可以在选择工具模式下拖动轨道上分的时间轴,让他靠齐零位 - 按下
Ctrl+M
设定导出路径,注意开启视频和音频 - 导出视频
常见问题
无法连接网络
配置网络代理或查看这篇文章通过Clash在局域网设备上配置代理
查找Ubuntu上的用户名
任意位置打开终端,@
字符前面的就是你的用户名
例如blog-test@ubuntu-blog
blog-test就是你的用户名
自定义渲染后的图像大小
在这条命令python3 backend.py
后面加上--size <宽><高>
例如python3 backend.py --size 1920x1080
如果渲染画面出现不正确的拉伸,请不要添加这条参数,并直接修改Ubuntu设置里的显示屏分辨率
在渲染时将浏览器窗口最大化,这样他渲染的画面就是你设置的显示屏分辨率
若实在是要输出高分辨率,请修改Ubuntu设置的显示屏分辨率为目标渲染分辨率
的整数倍,并在渲染时最大化浏览器窗口
例如需要输出3840x2160的画面,修改显示屏分辨率为1920x1080,并且最大化浏览器窗口,然后开始渲染
隐藏网格
在这条命令python3 backend.py
后面加上-g
自动同意EULA
在这条命令python3 backend.py
后面加上--yes
python3 backend.py
后面可以同时添加多条参数,注意使用空格分开
命令参考python3 backend.py -d -g --yes --size 2560x1440
渲染中断
当需要渲染帧较多,而虚拟机配置的内存较少时,可能出现渲染中断的情况
具体表现为共600帧画面,实际渲染到450帧时浏览器出现崩溃,下载文件夹也中断到第450帧
解决方案,在渲染器终端按下Ctrl+C
终止渲染器运行
重启浏览器和渲染器,在浏览器以F=451
继续进行渲染