church_archive_script/Programs/doc/installation.html

476 lines
31 KiB
HTML
Raw Normal View History

2023-11-29 16:12:35 +00:00
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Installation &mdash; VapourSynth R64 documentation</title>
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/css/custom.css" type="text/css" />
<!--[if lt IE 9]>
<script src="_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="_static/jquery.js"></script>
<script src="_static/_sphinx_javascript_frameworks_compat.js"></script>
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/doctools.js"></script>
<script src="_static/sphinx_highlight.js"></script>
<script src="_static/js/theme.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Getting Started" href="gettingstarted.html" />
<link rel="prev" title="Introduction" href="introduction.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="index.html" class="icon icon-home">
VapourSynth
</a>
<div class="version">
R64
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduction.html">Introduction</a></li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Installation</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#basic-program">Basic Program</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#windows-installation">Windows Installation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id1">Installation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#windows-installation-portable">Windows Installation (Portable)</a></li>
<li class="toctree-l3"><a class="reference internal" href="#os-x-installation">OS X Installation</a></li>
<li class="toctree-l3"><a class="reference internal" href="#linux-installation">Linux installation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#debian">Debian</a></li>
<li class="toctree-l4"><a class="reference internal" href="#fedora-centos-and-rhel">Fedora, CentOS and RHEL</a></li>
<li class="toctree-l4"><a class="reference internal" href="#gentoo">Gentoo</a></li>
<li class="toctree-l4"><a class="reference internal" href="#arch-linux">Arch Linux</a></li>
<li class="toctree-l4"><a class="reference internal" href="#nix-and-nixos">Nix and NixOS</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#windows-compilation">Windows Compilation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#preparing-the-build-environment-on-windows">Preparing the Build Environment on Windows</a></li>
<li class="toctree-l4"><a class="reference internal" href="#preparing-the-c-project">Preparing the C++ Project</a></li>
<li class="toctree-l4"><a class="reference internal" href="#preparing-the-python-project">Preparing the Python Project</a></li>
<li class="toctree-l4"><a class="reference internal" href="#distribution">Distribution</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#linux-and-os-x-compilation">Linux and OS X Compilation</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#required-packages-os-x">Required packages (OS X)</a></li>
<li class="toctree-l4"><a class="reference internal" href="#compilation">Compilation</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#plugins-and-scripts">Plugins and Scripts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#installing-with-vsrepo">Installing with VSRepo</a></li>
<li class="toctree-l3"><a class="reference internal" href="#installing-manually">Installing Manually</a></li>
<li class="toctree-l3"><a class="reference internal" href="#plugin-autoloading">Plugin Autoloading</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#windows">Windows</a></li>
<li class="toctree-l4"><a class="reference internal" href="#windows-portable">Windows Portable</a></li>
<li class="toctree-l4"><a class="reference internal" href="#linux">Linux</a></li>
<li class="toctree-l4"><a class="reference internal" href="#os-x">OS X</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="gettingstarted.html">Getting Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="pythonreference.html">Python Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="functions.html">Function Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="output.html">Output</a></li>
<li class="toctree-l1"><a class="reference internal" href="applications.html">Applications and Libraries</a></li>
<li class="toctree-l1"><a class="reference internal" href="apireference.html">VapourSynth C API Reference</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">VapourSynth</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Installation</li>
<li class="wy-breadcrumbs-aside">
<a href="_sources/installation.rst.txt" rel="nofollow"> View page source</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="installation">
<h1>Installation<a class="headerlink" href="#installation" title="Permalink to this heading"></a></h1>
<section id="basic-program">
<h2>Basic Program<a class="headerlink" href="#basic-program" title="Permalink to this heading"></a></h2>
<p>The installation contains two main steps:</p>
<ol class="arabic simple">
<li><p>Install VapourSynth core library.</p></li>
<li><p>Install the Python wrapper of VapourSynth.</p></li>
</ol>
<p>After you completed the second step, you can test it by opening a Python command line
and type this:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">vapoursynth</span> <span class="kn">import</span> <span class="n">core</span>
<span class="nb">print</span><span class="p">(</span><span class="n">core</span><span class="o">.</span><span class="n">version</span><span class="p">())</span>
</pre></div>
</div>
<p>After pressing return at the final line, you should see the version printed along with a
few other lines describing the options used when instantiating the Core object.
In fact, these lines should be the same as the output result of <code class="docutils literal notranslate"><span class="pre">vspipe</span> <span class="pre">--version</span></code>.</p>
<section id="windows-installation">
<h3>Windows Installation<a class="headerlink" href="#windows-installation" title="Permalink to this heading"></a></h3>
<section id="prerequisites">
<h4>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this heading"></a></h4>
<dl class="simple">
<dt>First download and install the prerequisites:</dt><dd><ul class="simple">
<li><p><a class="reference external" href="http://www.python.org/">Python 3.11.x</a> or Python 3.8.x 32 or 64 bit version depending on which version of VapourSynth you want to install</p></li>
</ul>
</dd>
</dl>
<p>Note that VapourSynth and Python have to be matched so both are either installed
for all users or for only for the current user.</p>
<p>Also note that per user installs will not install the required Visual Studio
2019 runtimes.</p>
</section>
<section id="id1">
<h4>Installation<a class="headerlink" href="#id1" title="Permalink to this heading"></a></h4>
<p>Simply run the <a class="reference external" href="https://github.com/vapoursynth/vapoursynth/releases">VapourSynth installer</a>.
It should automatically detect and install everything, including the Python wrapper.</p>
<p>If the tests mentioned at the beginning fails, there may be a bug in the installer or there are
old copies of vapoursynth.pyd and vapoursynth.dll lying around.</p>
</section>
</section>
<section id="windows-installation-portable">
<h3>Windows Installation (Portable)<a class="headerlink" href="#windows-installation-portable" title="Permalink to this heading"></a></h3>
<dl class="simple">
<dt>First download and decompress the prerequisites:</dt><dd><ul class="simple">
<li><p><a class="reference external" href="http://www.python.org/">Python 3.11.x</a> or Python 3.8.x 32 or 64 bit embeddable version</p></li>
</ul>
</dd>
</dl>
<p>Simply decompress the <a class="reference external" href="https://github.com/vapoursynth/vapoursynth/releases">portable VapourSynth archive</a>
into the Python dir and overwrite all existing files.Run <code class="docutils literal notranslate"><span class="pre">vs-detect-python.bat</span></code>
to configure it for the current Python version. Done.</p>
<p>You can also use the VapourSynth Editor by decompressing it into the same directory.</p>
</section>
<section id="os-x-installation">
<h3>OS X Installation<a class="headerlink" href="#os-x-installation" title="Permalink to this heading"></a></h3>
<dl class="simple">
<dt>First download and install the prerequisites:</dt><dd><ul class="simple">
<li><p>Xcode Available from the AppStore</p></li>
<li><p><a class="reference external" href="http://brew.sh/">Homebrew</a> A package manager</p></li>
</ul>
</dd>
</dl>
<p>Simply run these commands in a terminal and wait for them to complete:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">brew</span> <span class="n">install</span> <span class="n">vapoursynth</span>
</pre></div>
</div>
</section>
<section id="linux-installation">
<h3>Linux installation<a class="headerlink" href="#linux-installation" title="Permalink to this heading"></a></h3>
<p>Several distributions have VapourSynth packages. Note that those packages are usually OUT OF DATE.</p>
<section id="debian">
<h4>Debian<a class="headerlink" href="#debian" title="Permalink to this heading"></a></h4>
<p>The VapourSynth packages are provided by <a class="reference external" href="https://www.deb-multimedia.org/">deb-multimedia repository</a>.
You need to add the repository first following the guide on the official website.</p>
</section>
<section id="fedora-centos-and-rhel">
<h4>Fedora, CentOS and RHEL<a class="headerlink" href="#fedora-centos-and-rhel" title="Permalink to this heading"></a></h4>
<p>For Fedora, the VapourSynth packages can be downloaded from official repository directly.
For CentOS and RHEL, you should install EPEL (Extra Packages for Enterprise Linux) repository first.</p>
</section>
<section id="gentoo">
<h4>Gentoo<a class="headerlink" href="#gentoo" title="Permalink to this heading"></a></h4>
<p>There is an <a class="reference external" href="https://github.com/4re/vapoursynth-portage">unofficial Portage tree</a> with all VapourSynth related ebuilds.
Check the Github link for more information and instructions.</p>
</section>
<section id="arch-linux">
<h4>Arch Linux<a class="headerlink" href="#arch-linux" title="Permalink to this heading"></a></h4>
<p><a class="reference external" href="https://www.archlinux.org/packages/?q=vapoursynth">VapourSynth-related packages</a> are provided by the Community repository.</p>
</section>
<section id="nix-and-nixos">
<h4>Nix and NixOS<a class="headerlink" href="#nix-and-nixos" title="Permalink to this heading"></a></h4>
<p><code class="docutils literal notranslate"><span class="pre">vapoursynth</span></code> is available on nixpkgs, either via <code class="docutils literal notranslate"><span class="pre">nixpkgs#vapoursynth</span></code> or via <code class="docutils literal notranslate"><span class="pre">nixpkgs#python3Packages.vapoursynth</span></code> (currently on unstable only).
Be aware that the derivation is broken on MacOS.</p>
<p>VapourSynth releases are not backported to the current stable branch.
To get the newest version use the unstable branch.</p>
</section>
</section>
<section id="windows-compilation">
<h3>Windows Compilation<a class="headerlink" href="#windows-compilation" title="Permalink to this heading"></a></h3>
<section id="preparing-the-build-environment-on-windows">
<h4>Preparing the Build Environment on Windows<a class="headerlink" href="#preparing-the-build-environment-on-windows" title="Permalink to this heading"></a></h4>
<p>Default install paths are assumed in all projects and scripts, be prepared to adjust many things if you changed them</p>
<p>Required languages and applications:</p>
<ul class="simple">
<li><p>Needs <a class="reference external" href="https://visualstudio.microsoft.com/de/vs/">Visual Studio 2019</a></p></li>
<li><p>It also needs both <a class="reference external" href="https://www.python.org/">32bit</a> and <a class="reference external" href="https://www.python.org/">64bit</a> Python 3.8.x and 3.11.x (the msvc project assumes that you installed python for all users.)</p></li>
<li><p><a class="reference external" href="http://www.jrsoftware.org/isdl.php">InnoSetup</a> is needed to create the installer (default installation path assumed)</p></li>
<li><p><a class="reference external" href="https://www.7-zip.org/">7-zip</a> is needed to compress the portable version (default installation path assumed)</p></li>
</ul>
</section>
<section id="preparing-the-c-project">
<h4>Preparing the C++ Project<a class="headerlink" href="#preparing-the-c-project" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Clone VapourSynth</p></li>
<li><p>Clone VSRepo into the VapourSynth dir (<code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">clone</span> <span class="pre">https://github.com/vapoursynth/vsrepo</span></code>)</p></li>
<li><p>Clone zimg into the VapourSynth dir (<code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">clone</span> <span class="pre">https://github.com/sekrit-twc/zimg.git</span> <span class="pre">--recurse-submodules</span></code>)</p></li>
<li><p>Clone avs+ into the VapourSynth dir (<code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">clone</span> <span class="pre">https://github.com/AviSynth/AviSynthPlus.git</span></code>)</p></li>
<li><p>Clone libp2p into the VapourSynth dir (<code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">clone</span> <span class="pre">https://github.com/sekrit-twc/libp2p.git</span></code>)</p></li>
<li><p>Compile 32 and 64 bit releases using the VapourSynth solution</p></li>
</ul>
</section>
<section id="preparing-the-python-project">
<h4>Preparing the Python Project<a class="headerlink" href="#preparing-the-python-project" title="Permalink to this heading"></a></h4>
<ul class="simple">
<li><p>Run <code class="docutils literal notranslate"><span class="pre">py</span> <span class="pre">-3.11</span> <span class="pre">-m</span> <span class="pre">pip</span> <span class="pre">install</span> <span class="pre">-r</span> <span class="pre">python-requirements.txt</span></code> for 64bit.</p></li>
<li><p>Run <code class="docutils literal notranslate"><span class="pre">py</span> <span class="pre">-3.8</span> <span class="pre">-m</span> <span class="pre">pip</span> <span class="pre">install</span> <span class="pre">-r</span> <span class="pre">python-requirements.txt</span></code> for 64bit.</p></li>
<li><p>Run <code class="docutils literal notranslate"><span class="pre">cython_build.bat</span></code> to compile the Python modules</p></li>
<li><p>Run <code class="docutils literal notranslate"><span class="pre">docs_build.bat</span></code> to compile the documentation</p></li>
</ul>
</section>
<section id="distribution">
<h4>Distribution<a class="headerlink" href="#distribution" title="Permalink to this heading"></a></h4>
<p>All the above steps are necessary to create the installer</p>
<p>You also need 7z.exe and 7z.dll from <a class="reference external" href="https://www.7-zip.org/">7-zip</a>
Both need to be placed in the “installer” dir.</p>
<p>Youll also have to grab the file <code class="docutils literal notranslate"><span class="pre">pfm-192-vapoursynth-win.exe</span></code>
which is only available from installations/portable releases.</p>
<p>Run <code class="docutils literal notranslate"><span class="pre">make_portable.bat</span></code> and <code class="docutils literal notranslate"><span class="pre">make_installers.bat</span></code> to package things.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Note that the Avisynth side of AVFS wont work properly in debug builds (memory allocation and exceptions across module boundaries trolololol)</p>
</div>
</section>
</section>
<section id="linux-and-os-x-compilation">
<h3>Linux and OS X Compilation<a class="headerlink" href="#linux-and-os-x-compilation" title="Permalink to this heading"></a></h3>
<dl class="simple">
<dt>These are the requirements:</dt><dd><ul class="simple">
<li><p>Autoconf, Automake, and Libtool, probably recent versions</p></li>
<li><p>pkg-config</p></li>
<li><p>GCC 4.8 or newer, or Clang</p></li>
<li><p><a class="reference external" href="https://github.com/sekrit-twc/zimg">zimg</a></p></li>
<li><p>Python 3</p></li>
<li><p>Cython 0.28 or later installed in your Python 3 environment</p></li>
<li><p>Sphinx for the documentation (optional)</p></li>
</ul>
</dd>
</dl>
<p>Note: <strong>any version of Python 3 will do.</strong> A specific version is only
required when using the official Windows binaries.</p>
<section id="required-packages-os-x">
<h4>Required packages (OS X)<a class="headerlink" href="#required-packages-os-x" title="Permalink to this heading"></a></h4>
<dl class="simple">
<dt>First download and install the prerequisites:</dt><dd><ul class="simple">
<li><p>Xcode Available from the AppStore</p></li>
<li><p><a class="reference external" href="http://brew.sh/">Homebrew</a> A package manager</p></li>
</ul>
</dd>
</dl>
<p>Installation of the required packages is very easy. Simply run these
commands in a terminal and wait for them to complete:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">brew</span> <span class="n">install</span> <span class="n">python3</span> <span class="n">ffmpeg</span> <span class="n">libass</span> <span class="n">zimg</span> <span class="n">imagemagick</span>
<span class="n">pip3</span> <span class="n">install</span> <span class="n">cython</span>
</pre></div>
</div>
<p>If youve already installed all the required packages and instead want
to update them, simply run:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">brew</span> <span class="n">update</span> <span class="o">&amp;&amp;</span> <span class="n">brew</span> <span class="n">upgrade</span>
<span class="n">pip3</span> <span class="n">install</span> <span class="o">--</span><span class="n">upgrade</span> <span class="n">cython</span>
</pre></div>
</div>
</section>
<section id="compilation">
<h4>Compilation<a class="headerlink" href="#compilation" title="Permalink to this heading"></a></h4>
<p>If you havent checked out the source code before, use git to do so:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">vapoursynth</span><span class="o">/</span><span class="n">vapoursynth</span><span class="o">.</span><span class="n">git</span>
</pre></div>
</div>
<p>Or if you already have a copy of the source, update it with:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">pull</span>
</pre></div>
</div>
<p>Enter the VapourSynth directory and run these commands to compile and install:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="o">./</span><span class="n">autogen</span><span class="o">.</span><span class="n">sh</span>
<span class="o">./</span><span class="n">configure</span>
<span class="n">make</span>
<span class="n">make</span> <span class="n">install</span>
</pre></div>
</div>
<p>Depending on your operating systems configuration, VapourSynth may not
work out of the box with the default prefix of /usr/local. Two errors
may pop up when running <code class="docutils literal notranslate"><span class="pre">vspipe</span> <span class="pre">--version</span></code>:</p>
<ul>
<li><p>“vspipe: error while loading shared libraries: libvapoursynth-script.so.0:
cannot open shared object file: No such file or directory”</p>
<p>This is caused by the non-standard location of libvapoursynth-script.so.0.
Your dynamic loader is not configured to look in /usr/local/lib. One
way to work around this error is to use the LD_LIBRARY_PATH environment
variable:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ LD_LIBRARY_PATH=/usr/local/lib vspipe --version
</pre></div>
</div>
</li>
<li><p>“Failed to initialize VapourSynth environment”</p>
<p>This is caused by the non-standard location of the Python module,
vapoursynth.so. Your Python is not configured to look in
/usr/local/lib/python3.x/site-packages. One way to work around this
error is to use the PYTHONPATH environment variable:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ PYTHONPATH=/usr/local/lib/python3.x/site-packages vspipe --version
</pre></div>
</div>
<p>Replace “x” with the correct number.</p>
</li>
</ul>
<p>The documentation can be built using its own Makefile:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ make -C doc/ html
</pre></div>
</div>
<p>The documentation can be installed using the standard program <code class="docutils literal notranslate"><span class="pre">cp</span></code>.</p>
</section>
</section>
</section>
<section id="plugins-and-scripts">
<h2>Plugins and Scripts<a class="headerlink" href="#plugins-and-scripts" title="Permalink to this heading"></a></h2>
<p>If youre looking for plugins and scripts then one of the most complete lists
available can be found at <a class="reference external" href="http://vsdb.top/">vsdb.top</a>.</p>
<section id="installing-with-vsrepo">
<h3>Installing with VSRepo<a class="headerlink" href="#installing-with-vsrepo" title="Permalink to this heading"></a></h3>
<p>On windows you can use the included vsrepo.py to install and upgrade plugins and scripts.</p>
<p>Simply run <code class="docutils literal notranslate"><span class="pre">vsrepo.py</span> <span class="pre">install</span> <span class="pre">&lt;namespace</span> <span class="pre">or</span> <span class="pre">identifier&gt;</span></code> to install them.</p>
<p>If you need a list of known plugins and scripts you can run <code class="docutils literal notranslate"><span class="pre">vsrepo.py</span> <span class="pre">available</span></code> or visit <a class="reference external" href="http://vsdb.top/">vsdb.top</a>.</p>
<p>For more reference, visit <a class="reference external" href="https://github.com/vapoursynth/vsrepo">vsrepos repository</a></p>
</section>
<section id="installing-manually">
<h3>Installing Manually<a class="headerlink" href="#installing-manually" title="Permalink to this heading"></a></h3>
<p>You can put your plugin (<code class="docutils literal notranslate"><span class="pre">.dll</span></code>) and script (<code class="docutils literal notranslate"><span class="pre">.py</span></code>) to where you think it is convenient.</p>
<p>For plugins, you can use <code class="docutils literal notranslate"><span class="pre">std.LoadPlugin</span></code> function to load it. there is also a plugin autoloading mechanism to save your time, see blow.</p>
<p>For scripts, you should add a relative path to <code class="docutils literal notranslate"><span class="pre">python&lt;your_python_version&gt;._pth</span></code>, then you can import it in your script.</p>
</section>
<section id="plugin-autoloading">
<h3>Plugin Autoloading<a class="headerlink" href="#plugin-autoloading" title="Permalink to this heading"></a></h3>
<p>VapourSynth automatically loads all the native plugins located in certain
folders. Autoloading works just like manual loading, with the exception
that any errors encountered while loading a plugin are silently ignored.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Avoid autoloading from folders that other applications might also
use, such as /usr/lib or /usr/local/lib in a Linux system. Several
users reported crashes when VapourSynth attempted to load some
random libraries (*cough*wxgtk*cough*).</p>
</div>
<section id="windows">
<h4>Windows<a class="headerlink" href="#windows" title="Permalink to this heading"></a></h4>
<p>Windows has in total 3 different autoloading directories: user plugins, core plugins and global plugins. They are searched in that order.
User plugins are always loaded first so that the current user can always decide which exact version of a plugin is used. Core plugins follow.
Global plugins are placed last to prevent them from overriding any of the included plugins by accident.</p>
<p>The searched paths are:</p>
<ol class="arabic simple">
<li><p><em>&lt;AppData&gt;</em>\VapourSynth\plugins32 or <em>&lt;AppData&gt;</em>\VapourSynth\plugins64</p></li>
<li><p><em>&lt;VapourSynth path&gt;</em>\core\plugins</p></li>
<li><p><em>&lt;VapourSynth path&gt;</em>\plugins</p></li>
</ol>
<p>Note that the per user path is not created by default.
On modern Windows versions the <em>AppData</em> directory is located in <em>&lt;user&gt;</em>\AppData\Roaming by default.</p>
<p>Shortcuts to the global autoload directory are located in the start menu.</p>
<p>Avisynth plugins are never autoloaded. Support for this may be added in the future.</p>
<p>User plugins should never be put into the <em>core\plugins</em> directory.</p>
</section>
<section id="windows-portable">
<h4>Windows Portable<a class="headerlink" href="#windows-portable" title="Permalink to this heading"></a></h4>
<p>The searched paths are:</p>
<ol class="arabic simple">
<li><p><em>&lt;VapourSynth.dll path&gt;</em>\vapoursynth32\coreplugins or <em>&lt;VapourSynth.dll path&gt;</em>\vapoursynth64\coreplugins</p></li>
<li><p><em>&lt;VapourSynth.dll path&gt;</em>\vapoursynth32\plugins or <em>&lt;VapourSynth.dll path&gt;</em>\vapoursynth64\plugins</p></li>
</ol>
<p>User plugins should never be put into the <em>coreplugins</em> directory.</p>
</section>
<section id="linux">
<h4>Linux<a class="headerlink" href="#linux" title="Permalink to this heading"></a></h4>
<p>Autoloading can be configured using the file
$XDG_CONFIG_HOME/vapoursynth/vapoursynth.conf,
or $HOME/.config/vapoursynth/vapoursynth.conf if XDG_CONFIG_HOME is not
defined.</p>
<p>To provide your own path to the config file, you can use $VAPOURSYNTH_CONF_PATH.</p>
<p>Two configuration options may be used: <strong>UserPluginDir</strong>, empty by default,
and <strong>SystemPluginDir</strong>, whose default value is set at compile time to
<code class="docutils literal notranslate"><span class="pre">$libdir/vapoursynth</span></code>, or to the location passed to the <code class="docutils literal notranslate"><span class="pre">--with-plugindir</span></code>
argument to <code class="docutils literal notranslate"><span class="pre">configure</span></code>.</p>
<p>UserPluginDir is tried first, then SystemPluginDir.</p>
<p>Example vapoursynth.conf:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">UserPluginDir</span><span class="o">=/</span><span class="n">home</span><span class="o">/</span><span class="n">asdf</span><span class="o">/</span><span class="n">vapoursynth</span><span class="o">/</span><span class="n">plugins</span>
<span class="n">SystemPluginDir</span><span class="o">=/</span><span class="n">special</span><span class="o">/</span><span class="n">non</span><span class="o">/</span><span class="n">default</span><span class="o">/</span><span class="n">location</span>
</pre></div>
</div>
</section>
<section id="os-x">
<h4>OS X<a class="headerlink" href="#os-x" title="Permalink to this heading"></a></h4>
<p>Autoloading can be configured using the file
$HOME/Library/Application Support/VapourSynth/vapoursynth.conf. Everything else is
the same as in Linux.</p>
<p>Like on linux, you can use $VAPOURSYNTH_CONF_PATH to provide your own configuration.</p>
</section>
</section>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="introduction.html" class="btn btn-neutral float-left" title="Introduction" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="gettingstarted.html" class="btn btn-neutral float-right" title="Getting Started" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2012-2023, Fredrik Mellbin.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>