sk-video
Video Processing in Python
Decision gist · record as of 2026-08-14
Yes, if you need video I/O and quality metrics in a Python environment already using numpy and scipy. Install friction is low and maintenance is active. Requires FFmpeg >= 2.8 on system PATH and Python >= 3.10. Metric implementations changed in 1.2.0 (more accurate but incomparable to 1.1.x scores); verify this does not break existing workflows. No known security vulnerabilities.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- FFmpeg >= 2.8 must be installed and on system PATH; Python >= 3.10 required.
- Low install friction; pure Python wheel with only numpy and scipy as runtime dependencies.
- Actively maintained with recent metric accuracy fixes and NumPy 2.x compatibility.
License · maintenance · safety
BSD (permissive) — BSD permissive license allows commercial and private use with minimal restrictions; attribution and license notice required in distributions.
last release 2017-12-12 (3167 days) · last repo commit 2026-07-04 · 710 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 305,163 downloads/mo, #7,796 on PyPI
Alternatives
Verify before relying
pip install scikit-video
import skvideo.io
video_data = skvideo.io.vread('video.mp4')
metadata = skvideo.io.ffprobe('video.mp4')- Whether the metric accuracy changes in 1.2.0 (NIQE, BRISQUE, VIIDEO, Video-BLIINDS) affect existing workflows or benchmarks.
- Current state of the deprecated libav/avconv backend and mediainfo support (planned removal in 1.4.0).
- Whether Pillow >= 9.0 is a runtime or optional dependency.
What it is and what it does
This package provides video I/O and analysis capabilities, wrapping FFmpeg to read and write video frames, extract metadata, and compute video quality metrics. It follows the conventions of scikit-image and scikit-learn, sitting on top of numpy and scipy for workflows already using the scientific Python stack.
The library provides frame-by-frame video access, metadata inspection, and implementations of standard quality metrics (MSE, PSNR, SSIM, MS-SSIM, NIQE, BRISQUE, VIIDEO, Video-BLIINDS, ST-RRED). Recent versions validated metric implementations against reference code and fixed divergences; the 1.1.12+ line added pathlib.Path support, URL and file-like object I/O, and audio passthrough. The project is actively maintained with ongoing compatibility work for modern NumPy and Python versions.
Use it for
- Extract frames from video files and process them with numpy and scipy for computer vision tasks.
- Compute video quality metrics (SSIM, PSNR, NIQE, BRISQUE) for compression or enhancement evaluation.
- Read video metadata and properties without decoding all frames.
- Batch process video files to generate frame sequences for machine learning pipelines.
- Validate video codec compatibility and inspect FFmpeg-supported container formats.
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 a Python environment already using numpy and scipy.
Install friction is low and maintenance is active. Requires FFmpeg >= 2.8 on system PATH and Python >= 3.10. Metric implementations changed in 1.2.0 (more accurate but incomparable to 1.1.x scores); verify this does not break existing workflows. No known security vulnerabilities.
Install
sk-video on PyPI
Before you install
Low install friction; pure Python wheel with only numpy and scipy as runtime dependencies. Actively maintained with recent metric accuracy fixes and NumPy 2.x compatibility. Requires FFmpeg >= 2.8 on system PATH and Python >= 3.10.
FFmpeg >= 2.8 must be installed and on system PATH; Python >= 3.10 required.
License in practice
BSD permissive license allows commercial and private use with minimal restrictions; attribution and license notice required in distributions.
Quickstart
pip install scikit-video
import skvideo.io
video_data = skvideo.io.vread('video.mp4')
metadata = skvideo.io.ffprobe('video.mp4')
Verify before relying
- Whether the metric accuracy changes in 1.2.0 (NIQE, BRISQUE, VIIDEO, Video-BLIINDS) affect existing workflows or benchmarks.
- Current state of the deprecated libav/avconv backend and mediainfo support (planned removal in 1.4.0).
- Whether Pillow >= 9.0 is a runtime or optional dependency.
Package facts
| License | BSD permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesnumpyscipy |
| Maintenance | Actively maintained 3,167 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 305,163 / month, #7,796 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: sk_video-1.1.10-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 › “read write video files”
- sk-videoReads, writes, and processes video files using FFmpeg as its backend,…
- webvtt-pyReads, writes, and segments WebVTT caption files; converts captions…
- mediapyMediapy reads, writes, and displays images and videos directly in…
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 scikit-video · moviepy · imageio-ffmpeg · knowit · typed-ffmpeg · ffmpeg-python · ffmpeg · decord2 · decord · mediapy