菜单

命令行界面

相关源文件

本页面文档介绍了 ManimGL 的命令行界面 (CLI),这是渲染场景和自定义输出的主要方式。CLI 使您能够控制渲染过程的各个方面,从指定输出质量到配置动画行为。

有关安装说明,请参阅 安装和设置。有关创建场景和核心架构的详细信息,请参阅 核心架构

基本用法

ManimGL 可以使用 manimglmanim-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

配置系统

CLI 处理流程

ManimGL 使用分层配置系统,CLI 参数优先于配置文件

配置的确定顺序如下

  1. 来自 manimlib/default_config.yml 的默认配置
  2. 当前工作目录下的用户提供的 custom_config.yml
  3. 通过 --config_file 选项指定的自定义配置文件
  4. 命令行参数 (会覆盖所有之前的设置)

来源: 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 时,会发生以下过程

  1. parse_cli()manimlib/config.py 中处理命令行参数
  2. initialize_manim_config() 从默认值和覆盖项创建配置对象
  3. extract_scene.main() 根据配置创建场景对象
  4. 调用每个场景的 run() 方法,该方法执行 construct() 和/或 interact()
  5. 如果请求,则渲染帧并写入输出

来源: 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 调用时暂停)

来源: README.md98-106 manimlib/extract_scene.py127-194