mirror of
https://github.com/ManimCommunity/manim.git
synced 2026-06-22 10:01:47 +00:00
* added av as a dependency * make partial movie files use av instead of piping to external ffmpeg * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * opengl rendering: use av for movie files * no need to check for ffmpeg executable * refactor: *_movie_pipe -> *_partial_movie_stream * improve (oneline) documentation * pass more options to partial movie file rendering * move ffmpeg verbosity settings to config; renamed option dict * replaced call to ffmpeg in combine_files by using av Co-authored-by: Jérome Eertmans <jeertmans@icloud.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * there was one examples saved as a gif? * chore(deps): re-order av * chore(lib): simplify `write_frame` method Reduces the overall code complexity * chore(lib): add audio * fix(lib): same issue for conversion * fix(lib): webm export * fix(lib): transparent export Though the output video is weird * try(lib): fix gif + TODOs * chore(deps): lower dep crit * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * feat(lib): add support for GIF * fix(ci): rewrite tests * fix * chore(ci): prevent calling concat on empty list * add missing dot * fix(ci): update frame comparison ? * fix(log): add handler to libav logger * chore: add TODO * fix(lib): concat issue * Revert "fix(ci): update frame comparison ?" This reverts commit904cfb46ae. * fix(ci): make it pass tests * chore(lib/docs/ci): remove FFMPEG entirely This removes any reference to FFMPEG, except in translation files * added av as a dependency * make partial movie files use av instead of piping to external ffmpeg * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * opengl rendering: use av for movie files * no need to check for ffmpeg executable * refactor: *_movie_pipe -> *_partial_movie_stream * improve (oneline) documentation * pass more options to partial movie file rendering * move ffmpeg verbosity settings to config; renamed option dict * replaced call to ffmpeg in combine_files by using av Co-authored-by: Jérome Eertmans <jeertmans@icloud.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * there was one examples saved as a gif? * chore(deps): re-order av * chore(lib): simplify `write_frame` method Reduces the overall code complexity * chore(lib): add audio * fix(lib): same issue for conversion * fix(lib): webm export * fix(lib): transparent export Though the output video is weird * try(lib): fix gif + TODOs * chore(deps): lower dep crit * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * feat(lib): add support for GIF * fix(ci): rewrite tests * fix * chore(ci): prevent calling concat on empty list * add missing dot * fix(ci): update frame comparison ? * fix(log): add handler to libav logger * chore: add TODO * fix(lib): concat issue * Revert "fix(ci): update frame comparison ?" This reverts commit904cfb46ae. * fix(ci): make it pass tests * chore(lib/docs/ci): remove FFMPEG entirely This removes any reference to FFMPEG, except in translation files * chore(deps): update lockfile * chore(lib): rewrite ffprobe * fix typo * slightly more aggressive removal of ffmpeg in docs; minor language changes * fix gif output stream dimensions * minor style change * fix encoding of (transparent) mov files * fixed metadata / comment * set frame rate for --format=gif in output_stream * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * more video tests for different render settings, also test pix_fmt * improve default bitrate setting via crf * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * parametrized format/transparency rendering test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * context managers for (some) av.open * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update manim/utils/commands.py Co-authored-by: Jérome Eertmans <jeertmans@icloud.com> * fixed segfault * update test data involving implicit functions (output improved!) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * explicity set pix_fmt for transparent webms * special-special case extracting frame from vp9-encoded file with transparency * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix transparent gifs, more special casing in parametrized video format test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * run tests on macos-latest again * removed old control data * Revert "run tests on macos-latest again" This reverts commitf50efa4b88. * added sound to codec test; fixed issue with sound track in gif (disabled) and webm (now via opus) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * manual wav -> ogg transcoding * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fixed f-string * refactored codec test, split out gif * check for non-zero audio samples * more cleanup * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove ffmpeg from readthedocs apt_packages * round up run_time if positive and shorter than current frame rate * added more run_time tests * black * improve implementation of test * removed some unused imports * improve wording of logged warning Co-authored-by: Jérome Eertmans <jeertmans@icloud.com> * move run_time checks from Animation.begin to Scene.get_run_time * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * remove unused import * flake: PT012 --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Jérome Eertmans <jeertmans@icloud.com>
162 lines
4.2 KiB
ReStructuredText
162 lines
4.2 KiB
ReStructuredText
Linux
|
||
=====
|
||
|
||
The installation instructions depend on your particular operating
|
||
system and package manager. If you happen to know exactly what you are doing,
|
||
you can also simply ensure that your system has:
|
||
|
||
- a reasonably recent version of Python 3 (3.9 or above),
|
||
- with working Cairo bindings in the form of
|
||
`pycairo <https://cairographics.org/pycairo/>`__,
|
||
- and `Pango <https://pango.gnome.org>`__ headers.
|
||
|
||
Then, installing Manim is just a matter of running:
|
||
|
||
.. code-block:: bash
|
||
|
||
pip3 install manim
|
||
|
||
.. note::
|
||
|
||
In light of the current efforts of migrating to rendering via OpenGL,
|
||
this list might be incomplete. Please `let us know
|
||
<https://github.com/ManimCommunity/manim/issues/new/choose>` if you
|
||
ran into missing dependencies while installing.
|
||
|
||
In any case, we have also compiled instructions for several common
|
||
combinations of operating systems and package managers below.
|
||
|
||
Required Dependencies
|
||
---------------------
|
||
|
||
apt – Ubuntu / Mint / Debian
|
||
****************************
|
||
|
||
To first update your sources, and then install Cairo and Pango
|
||
simply run:
|
||
|
||
.. code-block:: bash
|
||
|
||
sudo apt update
|
||
sudo apt install build-essential python3-dev libcairo2-dev libpango1.0-dev
|
||
|
||
If you don't have python3-pip installed, install it via:
|
||
|
||
.. code-block:: bash
|
||
|
||
sudo apt install python3-pip
|
||
|
||
Then, to install Manim, run:
|
||
|
||
.. code-block:: bash
|
||
|
||
pip3 install manim
|
||
|
||
Continue by reading the :ref:`optional dependencies <linux-optional-dependencies>`
|
||
section.
|
||
|
||
dnf – Fedora / CentOS / RHEL
|
||
****************************
|
||
|
||
To install Cairo and Pango:
|
||
|
||
.. code-block:: bash
|
||
|
||
sudo dnf install cairo-devel pango-devel
|
||
|
||
In order to successfully build the ``pycairo`` wheel, you will also
|
||
need the Python development headers:
|
||
|
||
.. code-block:: bash
|
||
|
||
sudo dnf install python3-devel
|
||
|
||
At this point you have all required dependencies and can install
|
||
Manim by running:
|
||
|
||
.. code-block:: bash
|
||
|
||
pip3 install manim
|
||
|
||
Continue by reading the :ref:`optional dependencies <linux-optional-dependencies>`
|
||
section.
|
||
|
||
pacman – Arch / Manjaro
|
||
***********************
|
||
|
||
.. tip::
|
||
|
||
Thanks to *groctel*, there is a `dedicated Manim package
|
||
on the AUR! <https://aur.archlinux.org/packages/manim/>`
|
||
|
||
If you don't want to use the packaged version from AUR, here is what
|
||
you need to do manually: Update your package sources, then install
|
||
Cairo and Pango:
|
||
|
||
.. code-block:: bash
|
||
|
||
sudo pacman -Syu
|
||
sudo pacman -S cairo pango
|
||
|
||
If you don't have ``python-pip`` installed, get it by running:
|
||
|
||
.. code-block:: bash
|
||
|
||
sudo pacman -S python-pip
|
||
|
||
then simply install Manim via:
|
||
|
||
.. code-block:: bash
|
||
|
||
pip3 install manim
|
||
|
||
|
||
Continue by reading the :ref:`optional dependencies <linux-optional-dependencies>`
|
||
section.
|
||
|
||
|
||
.. _linux-optional-dependencies:
|
||
|
||
Optional Dependencies
|
||
---------------------
|
||
|
||
In order to make use of Manim's interface to LaTeX for, e.g., rendering
|
||
equations, LaTeX has to be installed as well. Note that this is an optional
|
||
dependency: if you don't intend to use LaTeX, you don't have to install it.
|
||
|
||
You can use whichever LaTeX distribution you like or whichever is easiest
|
||
to install with your package manager. Usually,
|
||
`TeX Live <https://www.tug.org/texlive/>`__ is a good candidate if you don't
|
||
care too much about disk space.
|
||
|
||
For Debian-based systems (like Ubuntu), sufficient LaTeX dependencies can be
|
||
installed by running:
|
||
|
||
.. code-block:: bash
|
||
|
||
sudo apt install texlive texlive-latex-extra
|
||
|
||
For Fedora (see `docs <https://docs.fedoraproject.org/en-US/neurofedora/latex/>`__):
|
||
|
||
.. code-block:: bash
|
||
|
||
sudo dnf install texlive-scheme-full
|
||
|
||
Should you choose to work with some smaller TeX distribution like
|
||
`TinyTeX <https://yihui.org/tinytex/>`__ , the full list
|
||
of LaTeX packages which Manim interacts with in some way (a subset might
|
||
be sufficient for your particular application) is::
|
||
|
||
collection-basic amsmath babel-english cbfonts-fd cm-super ctex doublestroke
|
||
dvisvgm everysel fontspec frcursive fundus-calligra gnu-freefont jknapltx
|
||
latex-bin mathastext microtype ms physics preview ragged2e relsize rsfs
|
||
setspace standalone tipa wasy wasysym xcolor xetex xkeyval
|
||
|
||
|
||
|
||
Working with Manim
|
||
------------------
|
||
|
||
At this point, you should have a working installation of Manim, head
|
||
over to our :doc:`Quickstart Tutorial <../tutorials/quickstart>` to learn
|
||
how to make your own *Manimations*!
|