scikit-video
Video Processing in Python
Decision gist · record as of 2026-08-14
Yes, if you need video I/O and quality metrics in Python. The package is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive license. The main gotcha is the hard requirement for FFmpeg on the system PATH and Python >= 3.10; verify your environment supports both before committing. Recent metric accuracy fixes mean scores from 1.2.0+ are not comparable to 1.1.x, so check whether existing benchmarks or thresholds need recalibration.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- FFmpeg >= 2.8 must be installed and available on system PATH; Python >= 3.10 required.
- Low install friction with a pure-wheel distribution.
- Actively maintained as of 2026; recent releases modernized the codebase for NumPy 2.x and Python 3.10+ compatibility.
License · maintenance · safety
BSD (permissive) — Distributed under BSD (permissive), allowing commercial and private use with minimal restrictions beyond attribution and liability disclaimers.
last release 2018-09-18 (2887 days) · last repo commit 2026-07-04 · 710 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,246,075 downloads/mo, #4,164 on PyPI
Alternatives
Verify before relying
pip install scikit-video
import numpy
import scipy
import pillow
# Read video frames and process with numpy/scipy operations- Exact scope and performance of supported video codecs and containers beyond FFmpeg's defaults.
- Whether the metric accuracy overhaul in 1.2.0 affects existing workflows that depend on 1.1.x scores.
- Real-world latency and memory usage for large video files or batch processing.
What it is and what it does
scikit-video is a Python video processing library that reads, writes, and analyzes video files by delegating I/O to FFmpeg and providing a NumPy-based interface for frame manipulation and quality metrics. It borrows conventions from scikit-image and scikit-learn, exposing functions for motion estimation and video quality assessment (SSIM, PSNR, NIQE, BRISQUE, VIIDEO, Video-BLIINDS). The library is built on numpy, scipy, and Pillow, and is actively maintained with recent releases fixing metric accuracy against reference MATLAB implementations and adding support for modern Python and NumPy versions.
Typical use cases include extracting frames from video files, computing frame-level quality scores, analyzing motion between frames, and batch-processing video datasets. The package handles both local files and file-like objects, supports pathlib.Path, and can pass audio through unchanged during video processing. Recent versions removed deprecated libav/avconv support and cleaned up Python-2-era code, making it more maintainable for current environments.
Use it for
- Extract and analyze individual frames from video files for computer vision tasks.
- Compute video quality metrics (SSIM, PSNR, NIQE) to compare original and processed videos.
- Calculate motion vectors between consecutive frames for motion analysis.
- Batch-process video datasets to generate frame-level features for machine learning.
- Validate video codec and container compatibility before processing in production pipelines.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need video I/O and quality metrics in Python.
The package is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive license. The main gotcha is the hard requirement for FFmpeg on the system PATH and Python >= 3.10; verify your environment supports both before committing. Recent metric accuracy fixes mean scores from 1.2.0+ are not comparable to 1.1.x, so check whether existing benchmarks or thresholds need recalibration.
Install
scikit-video on PyPI
Before you install
Low install friction with a pure-wheel distribution. Actively maintained as of 2026; recent releases modernized the codebase for NumPy 2.x and Python 3.10+ compatibility. Requires FFmpeg >= 2.8 on system PATH as a runtime dependency.
FFmpeg >= 2.8 must be installed and available on system PATH; Python >= 3.10 required.
License in practice
Distributed under BSD (permissive), allowing commercial and private use with minimal restrictions beyond attribution and liability disclaimers.
Quickstart
pip install scikit-video
import numpy
import scipy
import pillow
# Read video frames and process with numpy/scipy operations
Verify before relying
- Exact scope and performance of supported video codecs and containers beyond FFmpeg's defaults.
- Whether the metric accuracy overhaul in 1.2.0 affects existing workflows that depend on 1.1.x scores.
- Real-world latency and memory usage for large video files or batch processing.
Package facts
| License | BSD permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagesnumpypillowscipy |
| Maintenance | Actively maintained 2,887 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,246,075 / month, #4,164 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3.6Topic :: Multimedia :: VideoTopic :: Scientific/Engineering |
Evidence: scikit_video-1.1.11-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “optical flow computation”
- scikit-videoscikit-video reads, writes, and analyzes video files using FFmpeg,…
- tidy3dTidy3D is a Python API for defining, submitting, and postprocessing…
- aot-biomapsAOT_biomaps is a Python library for Acousto-Optic Tomography image…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also sk-video · knowit · image-similarity-measures · imageio-ffmpeg · moviepy · decord · mediapy · decord2 · ffmpeg · ffmpeg-python