This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.4.1 instead.
Reason given by maintainers: Cargo manifest is wrong and needs republishing
vapoursynth-imageseqs
A native VapourSynth plugin for reading ordered image sequences and writing PNG frames. File types are detected from their contents, so filenames do not need the matching extension.
install
Install the platform-specific wheel:
python -m pip install vapoursynth-imageseqs
You need VapourSynth R79 or newer. The wheel installs the plugin and manifest in VapourSynth's plugin directory; it does not install VapourSynth or provide a Python import package.
You can also download a plugin ZIP from Releases
or the build workflow.
Copy its imageseqs folder into your VapourSynth plugin directory. If the
plugin does not load automatically, load the library directly:
core.std.LoadPlugin(r"path/to/plugin-library")
read images
Pass paths in the order you want them in the clip:
from pathlib import Path
import vapoursynth as vs
core = vs.core
files = sorted(Path(r"I:\images").glob("*.png"))
clip = core.imgseqs.Read(files=[str(path) for path in files])
Each still image contributes one frame. Read returns the color clip.
ReadAlpha returns both the color clip and a separate gray alpha clip. Images
without alpha get a fully opaque alpha frame:
result = core.imgseqs.ReadAlpha(files=[str(path) for path in files])
clip = result["clip"]
alpha = result["alpha"]
Read and ReadAlpha options
| option | default | description |
|---|---|---|
files |
required | Image paths, in frame order. |
fpsnum, fpsden |
24, 1 |
Output frame rate. |
mismatch |
False |
Allow frames with different sizes or pixel formats. |
apply_rotation |
True |
Apply the orientation stored in each image. Some orientations swap width and height. |
icc_profile |
False |
Copy embedded ICC bytes to the ICCProfile frame property. Pixels are not color transformed. |
prefetch |
automatic, up to 4 workers | Background workers for upcoming frames. Set to 0 to disable lookahead. |
prefetch_memory |
automatic, at least 192 MiB | Memory budget for prefetched frames, in MiB. Must be positive. |
debug |
False |
Write timing information to the VapourSynth log. |
By default, all frames must have the same size and pixel format. Set
mismatch=True to allow variation; downstream filters may still need a
consistent clip, so convert it before using those filters.
supported formats
PNG (including APNG), JPEG, BMP, GIF, ICO, TIFF, DDS, Farbfeld, WebP, AVIF, HEIF/HEIC, JPEG XL, JPEG 2000, EXR, HDR, PNM, QOI, and TGA.
Animated GIF, APNG, WebP, JPEG XL, AVIF, and HEIF/HEIC contribute their displayed timeline at the requested frame rate. Each file plays once; its loop count is ignored. A picture held across multiple output ticks appears in each corresponding frame.
Gray and RGB images keep their supported bit depth, including depths from 9 to 15 bits. Compatible WebP, AVIF, HEIF/HEIC, and JPEG 2000 images may be returned as YUV planes instead of RGB. Monochrome images are returned as gray.
color and metadata
The plugin applies image orientation by default and reports the source's color
metadata through VapourSynth frame properties. It does not apply ICC color
transforms. Use icc_profile=True to copy the raw profile into ICCProfile;
ImgSeqHasICC reports whether a profile exists either way.
You can then utilize VapourSynth-ICCConvert to do the ICC color transform.
VapourSynth resize filters can convert YUV clips to RGB using the frame's color properties:
rgb = core.resize.Bicubic(clip, format=vs.RGB24)
For clips without matrix metadata, provide the correct matrix to the resize filter. See the VapourSynth resize documentation.
Useful source properties include ImgSeqPath, ImgSeqIndex,
ImgSeqAnimationIndex (for animated files), ImgSeqOrientation, and
ImgSeqHasICC. Standard color properties are set when the file provides
values VapourSynth supports.
write PNGs
PNGWrite creates a node with the same frames as its input clip. Requesting a
frame writes it as a PNG; creating the node alone writes no PNG:
writer = core.imgseqs.PNGWrite(
clip,
output_path=r"exports\frame%04d.png",
)
for n in range(writer.num_frames):
with writer.get_frame(n):
pass
To keep each source file's own name, give output_dir instead of
output_path:
writer = core.imgseqs.PNGWrite(clip, output_dir=r"exports")
The directory is created recursively. output_path and output_dir are
mutually exclusive.
Use a literal path for a one-frame clip, or a numbered path such as %d,
%04d, or %06d for a longer clip. %% writes a literal percent sign. The
output_path directory must already exist. With output_dir, a still is
written as <stem>.png from ImgSeqPath; an animated file's output frames
use the writer's own frame index, <stem>-0000.png, <stem>-0001.png, and so
on, because the picture index repeats while a picture is held.
| option | default | description |
|---|---|---|
clip |
required | Gray, RGB, or YUV integer frames from 8 to 16 bits, or float gray/RGB. |
output_path |
None |
One filename or a numbered filename template. Required unless output_dir is given. |
output_dir |
None |
Directory to write into; a still is named from ImgSeqPath, an animated frame from the writer's index; created recursively. Required unless output_path is given. |
alpha |
None |
Matching gray clip to write as alpha. |
depth |
8 for 8-bit input, otherwise 16 |
PNG sample depth: 1, 2, 4, 8, or 16. Packed depths are for gray clips. |
compression |
6 |
Lossless compression level from 0 to 9. |
start_number |
0 |
Number added to the writer's frame index. Only with output_path. |
always_save |
False |
Write a frame again if this writer has already saved it. |
overwrite |
False |
Allow replacing an existing destination. |
icc_profile |
False |
Embed the frame's raw ICCProfile property. |
matrix |
frame metadata | Matrix code to use when converting YUV without matrix metadata. |
debug |
False |
Write timing information to the VapourSynth log. |
The writer converts supported YUV formats to RGB using the frame's matrix,
range, and chroma location. If the frame has no matrix, pass matrix= or
convert it before writing. Float samples are treated as values from 0 to 1 and
clamped to that range. For 9–15-bit input, the default 16-bit PNG preserves the
source precision; depth=8 reduces it by rounding.
build from source
Build a wheel with Python 3.12 or newer, Rust 1.94 or newer, CMake, Ninja, and pkg-config. Native codec dependencies vary by platform; the Linux release build setup is documented in the Linux build guide.
python -m pip install ".[dev]"
python -m build
license
The plugin is licensed under the Mozilla Public License 2.0. See LICENSE and the third-party notices for the licenses of bundled libraries.
Metadata
Release files for vapoursynth-imageseqs 0.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| vapoursynth_imageseqs-0.4.0.tar.gz | 816.8 kB | With provenance | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| vapoursynth_imageseqs-0.4.0-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details |
| vapoursynth_imageseqs-0.4.0-py3-none-musllinux_1_2_x86_64.whl | Python 3 | none | Linux musl 1.2+ x86-64 | Details |
| vapoursynth_imageseqs-0.4.0-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details |
| vapoursynth_imageseqs-0.4.0-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details |
Total release size: 37.5 MB
Release files / vapoursynth_imageseqs-0.4.0.tar.gz
| Download URL | vapoursynth_imageseqs-0.4.0.tar.gz |
|---|---|
| Size | 816.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2a3bbdb01016fab3cb7ab0fa296805505c387bd67219186e61d20b55753e98e2
|
|
BLAKE2b-256 checksum How to use checksums |
994ea29ab94da3d6c0b88ff9bb66b2b16b5c4469f023993fd48453804b90dd3a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / vapoursynth_imageseqs-0.4.0-py3-none-win_amd64.whl
| Download URL | vapoursynth_imageseqs-0.4.0-py3-none-win_amd64.whl |
|---|---|
| Size | 11.2 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c30044a6baa29503a26de6d83a0265c84068ba9bd85222906c7eaeff59b347ad
|
|
BLAKE2b-256 checksum How to use checksums |
82760718ee25f492401577be0800271c20dc2b94988d45e4e1475848ac42e853
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / vapoursynth_imageseqs-0.4.0-py3-none-musllinux_1_2_x86_64.whl
| Download URL | vapoursynth_imageseqs-0.4.0-py3-none-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 11.6 MB |
| Tags | Linux musl 1.2+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
72aa5358b0808dd710a05b643d00b28cd415a18deeeddcf8cc2aca7260893092
|
|
BLAKE2b-256 checksum How to use checksums |
57f68602e00f55f1960edf4533687b8e7c0a2fcf5971dc4c70f238bc05018508
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / vapoursynth_imageseqs-0.4.0-py3-none-manylinux_2_28_x86_64.whl
| Download URL | vapoursynth_imageseqs-0.4.0-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 10.5 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
8ad4c74224a91b5d5ed078afd2a78d0bb6b59b26f480f6335709120b868f1343
|
|
BLAKE2b-256 checksum How to use checksums |
b5277d744bb1375ec06b06c5f7cfa3de2e25962d91917b594b24b3787c5b42df
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / vapoursynth_imageseqs-0.4.0-py3-none-macosx_11_0_arm64.whl
| Download URL | vapoursynth_imageseqs-0.4.0-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 3.4 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7308afb2967569a60ce3c021e48629781c1a410450435491bc45f502507ab2c9
|
|
BLAKE2b-256 checksum How to use checksums |
3dcc79252b0feef60d0386c78972488c2325b01ca9ca2fb56e801a15864895d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logSecurity for vapoursynth-imageseqs 0.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 5 files in this release have been uploaded with provenance metadata.
Attestation for vapoursynth_imageseqs-0.4.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.