/scikit-video

Video Processing in Python

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

skvideologo

BSD3 Travis Coveralls CircleCI Python27 Python35 PyPi

Video Processing SciKit

Borrowing coding styles and conventions from scikit-image and scikit-learn, scikit-video is a Python module for video processing built on top of scipy, numpy, and ffmpeg/libav.

This project is distributed under the 3-clause BSD.

Visit the documentation at http://www.scikit-video.org

Dependencies and Installation

Here are the requirements needed to use scikit-video.

  • Either ffmpeg (version >= 2.8) or libav (either version 10 or 11)
  • python (2.7, 3.3<=)
  • numpy (version >= 1.9.2)
  • scipy (version >= 0.16.0)
  • PIL/Pillow (version >= 3.1)
  • scikit-learn (version >= 0.18)
  • mediainfo (optional)

Installation:

$ sudo pip install scikit-video

Installing from github

  1. Make sure minimum dependencies (above) are installed. In addition, install setuptools (python-setuptools or python2-setuptools).

  2. Clone the scikit-video repository, enter the project directory, then run:

    $ python setup.py build
    
  3. In that same project directory, run the command:

    $ sudo python setup.py install
    

where python may refer to either python2 or python3.

Known conflicts

If you installed scikit-video prior to version 1.1.10, you may have an import conflict. Run the following command(s) to fix it:

$ sudo pip uninstall sk-video

Then To check that the conflict no longer exists, import skvideo and print the file path:

import skvideo
print(skvideo.__file__)

if setup correctly, you should see scikit_video in the path:

/usr/lib/python*/site-packages/scikit_video-*.*.*-py*.egg/skvideo/__init__.pyc

TODO/Roadmap

  • Spatial-Temporal filtering helper functions
  • Speedup routines (using cython and/or opencl)
  • More ffmpeg/avconv interfacing
  • Wrapping ffmpeg/avconv inside a subprocess to reduce memory overhead
  • Add additional algorithms and maintain more comprehensive benchmarks

For Contributors

Quick tutorial on how to go about setting up your environment to contribute to scikit-video:

https://github.com/beyondmetis/scikit-video/blob/master/CONTRIBUTING.rst

Testing

After installation, you can launch the test suite from outside the source directory (you will need to have the nose package installed). To ensure that both python2 and python3 versions pass:

$ nosetests2 -v skvideo
$ nosetests3 -v skvideo

Copyright 2015-2019, scikit-video developers (BSD license).