Manim v0.22.0 发布
See [our rendered changelog](https://docs.manim.community/en/stable/changelog/0.22.0-changelog.html).
## Highlights 🌟
### Unified output selection and configurable video encoding
Choosing what Manim produces has been reworked around a single `format`
setting. `--format` (or `format` in the `[CLI]` section of a config file)
selects exactly one primary artifact: `auto` (the default; MP4, or MOV for
transparent output), `mp4`, `mov`, `webm`, `gif`, `png` (last frame only),
`png-sequence` (every frame), or `none` (evaluate the scene without writing
media). It replaces the overlapping `--write_to_movie`, `-g`/`--save_pngs`,
`-i`/`--save_as_gif`, and `--force_window` options. Viewing the result is now
separate from choosing what to write: `-p`/`--preview` opens the finished file
with either renderer, while `-l`/`--live-preview` shows a live window (OpenGL).
As a consequence, the OpenGL renderer now writes files by default, just like
Cairo. The `--custom_folders` preset has been removed in favor of setting
each output location separately. (https://github.com/manimcommunity/manim/pull/4966, https://github.com/manimcommunity/manim/pull/4969)
Video encoding is now configurable, too: the new `[video_encoder]` config
section and the `--video-codec`, `--pixel-format`, and repeatable
`--encoder-option KEY=VALUE` options control how partial movie files are
encoded, for example
`manim render --video-codec libx264 --encoder-option crf=18 --encoder-option preset=slow scene.py`.
The new `manim cache clear` command replaces the `--flush_cache` flag. (https://github.com/manimcommunity/manim/pull/4976)
Scenes rendered with default settings need no changes, but scripts and config
files relying on the removed options have to be updated. See the migration
notes in the Breaking Changes section below.
Comprehensive documentation for the updated configuration system
can be found in the
[configuration guide](https://docs.manim.community/en/stable/guides/configuration.html) and the
[output settings tutorial](https://docs.manim.community/en/stable/tutorials/output_and_config.html).
### A `Manager` for coordinating the render flow
This release takes a first step towards a full overhaul of Manim's
render lifecycle by introducing a `Manager` object that coordinates
the processing of a `Scene`. Regular scenes (i.e., those without
custom cameras, renderers, or file writers) do
not need any changes.
Until now, the responsibilities of the ren