本页面文档介绍了 ManimGL 的命令行界面 (CLI),这是渲染场景和自定义输出的主要方式。CLI 使您能够控制渲染过程的各个方面,从指定输出质量到配置动画行为。
有关安装说明,请参阅 安装和设置。有关创建场景和核心架构的详细信息,请参阅 核心架构。
ManimGL 可以使用 manimgl 或 manim-render 命令调用
file.py:包含场景类(或多个类)的 Python 文件路径SceneName:要渲染的场景类的名称options:用于自定义渲染过程的各种标志如果未提供场景名称,ManimGL 将显示文件中可用的场景列表,并提示您选择一个。
来源: README.md90-96 manimlib/__main__.py manimlib/extract_scene.py40-52
| 选项 | 描述 |
|---|---|
-l, --low_quality | 渲染为 480p (854×480) |
-m, --medium_quality | 渲染为 720p (1280×720) |
--hd | 渲染为 1080p (1920×1080) |
--uhd | 渲染为 4K (3840×2160) |
-r WxH, --resolution WxH | 自定义分辨率,例如“1600x900” |
--fps N | 设置帧率为每秒 N 帧 |
| 选项 | 描述 |
|---|---|
-w, --write_file | 将场景渲染为视频文件 |
-s, --skip_animations | 跳过动画,仅渲染最后一帧 |
-i, --gif | 保存为 GIF 而不是 MP4 |
-t, --transparent | 渲染时使用透明背景 |
-o, --open | 完成后自动打开输出文件 |
--finder | 渲染后在文件浏览器中显示输出文件 |
--file_name NAME | 为输出文件设置自定义名称 |
--video_dir DIR | 指定输出目录 |
--vcodec CODEC | 指定自定义视频编码器 |
--pix_fmt FORMAT | 设置像素格式 (默认: yuv420p) |
| 选项 | 描述 |
|---|---|
-n N, --start_at_animation_number N | 从第 N 个动画开始渲染 |
-n N1,N2 | 从动画 N1 开始,到动画 N2 结束 |
--subdivide | 为每个动画创建单独的视频文件 |
-p, --presenter_mode | 在每个 wait() 调用处暂停,直到按下空格键/右箭头键 |
--leave_progress_bars | 完成后在终端中保留进度条可见 |
--show_animation_progress | 为每个动画显示进度条 |
--prerun | 渲染前计算总帧数,以获得准确的进度 |
| 选项 | 描述 |
|---|---|
-f, --full_screen | 全屏显示 |
-c COLOR, --color COLOR | 设置背景颜色 |
-e N, --embed N | 在第 N 行进入交互式 Python shell |
--autoreload | 代码更改时自动重新加载模块 |
--log-level LEVEL | 设置日志级别 (DEBUG/INFO/WARNING/ERROR/CRITICAL) |
--clear-cache | 清除用于 Tex 和 Text 渲染的缓存 |
--config_file FILE | 使用特定的配置文件 |
-v, --version | 显示 ManimGL 版本 |
来源: manimlib/config.py54-232 README.md98-106
ManimGL 使用分层配置系统,CLI 参数优先于配置文件
配置的确定顺序如下
manimlib/default_config.yml 的默认配置custom_config.yml--config_file 选项指定的自定义配置文件来源: manimlib/config.py23-51 manimlib/config.py235-332
CLI 选项直接影响 ManimGL 渲染管线的不同组件
来源: manimlib/scene/scene.py62-116 manimlib/scene/scene_file_writer.py29-69 manimlib/window.py30-43
在窗口中打开场景进行快速预览
渲染高清视频文件
跳过动画,仅渲染最后一帧
在特定行进入交互式 Python shell
这将在脚本的第 42 行打开一个 IPython shell,让您可以实时尝试场景状态。
用于需要手动控制动画时序的演示
这将以演示者模式创建高清视频,在每个 wait() 调用处暂停,直到按下空格键或右箭头键。
来源: README.md98-106 manimlib/scene/scene_embed.py22-77 manimlib/scene/scene.py444-452
使用 -n 标志可以精细控制要渲染的动画
这在处理长场景时尤其有用,如果您只想渲染特定部分。
您可以在工作目录中创建一个 custom_config.yml 文件来为您的项目指定默认设置,然后通过 CLI 为单个渲染覆盖特定选项
这使您能够在整个项目中保持一致的设置,同时在需要时进行特定调整。
来源: manimlib/config.py335-342 manimlib/extract_scene.py63-77 manimlib/scene/scene.py444-452
当您从命令行运行 ManimGL 时,会发生以下过程
parse_cli() 在 manimlib/config.py 中处理命令行参数initialize_manim_config() 从默认值和覆盖项创建配置对象extract_scene.main() 根据配置创建场景对象run() 方法,该方法执行 construct() 和/或 interact()来源: manimlib/__main__.py19-65 manimlib/extract_scene.py127-194 manimlib/scene/scene.py148-196
| 命令 | 解释 |
|---|---|
manimgl example.py Scene1 | 在窗口中显示 example.py 中的 Scene1 |
manimgl example.py Scene1 -w | 将 Scene1 渲染为视频文件 |
manimgl example.py Scene1 -s -o | 仅渲染 Scene1 的最后一帧并打开它 |
manimgl example.py Scene1 --hd -w -o | 以 1080p 分辨率渲染 Scene1,保存到文件并打开它 |
manimgl example.py Scene1 -t -i | 以透明背景渲染 Scene1,并保存为 GIF |
manimgl example.py -a | 渲染 example.py 中的所有场景 |
manimgl example.py Scene1 -n 5,10 | 渲染 Scene1,但只渲染动画 5 到 10 |
manimgl example.py Scene1 -e 42 | 运行 Scene1,但在第 42 行暂停以进入交互式 shell |
manimgl example.py Scene1 -p -w | 以演示者模式渲染 Scene1 (在每次 wait 调用时暂停) |