Skip to main content
Yanked

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

License VapourSynth version Build Rust tests

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)

Source distribution for vapoursynth-imageseqs 0.4.0
File Size Uploaded Provenance
vapoursynth_imageseqs-0.4.0.tar.gz 816.8 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for vapoursynth-imageseqs 0.4.0
File
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 log

Release 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 log

Release 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 log

Release 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 log

Release 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 log

Security 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.

Select from 5 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.4.0 This release

5 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page