MoviePy’s Python library for video editing: clipping, concatenating, title insertion, video compositing (aka non-linear editing), video processing, and creating custom effects.
illustrate
In this example, we open a video file, select a subclip between t=50s and t=60s, add a title in the center of the screen, and write the result to a new file:
from moviepy import *video = VideoFileClip("myHolidays.mp4").subclip(50,60)# Make the text. Many more options are available.txt_clip = ( TextClip("My Holidays 2013",fontsize=70,color='white') .with_position('center') .with_duration(10) )result = CompositeVideoClip(
) # Overlay text on videoresult.write_videofile("myHolidays_edited.webm",fps=25) # Many options...
install
MoviePy relies on Python modules NumPy, Imageio, Decorator, and Proglog, which will be installed automatically during MoviePy installation. The first time you use MoviePy, the FFMPEG software should download/install automatically (via imageio) (installation takes a few seconds). If you want to use a specific version of FFMPEG, follow the instructions in config_defaults.py.
install manually
$ (sudo) python setup.py install
Install with pip
$ (sudo) pip install moviepy
If you have neither setuptools nor ez_setup installed, the above command will fail. In this case, before installing, enter:
$ (sudo) pip install setuptools
For advanced image processing, you will need one or more of the following packages
Python Imaging Library (PIL) or, better yet, its offshoot, Pillow.
If PIL and OpenCV are not installed, Scipy (for tracking, segmentation, etc.) can be used to resize video clips.
Some advanced Image processing may require Scikit Image.
cv2 Some advanced image processing may require OpenCV 2.4.6 or later (the version provided with the package).
Matplotlib
document
The build document has additional dependencies that need to be installed.
$ (sudo) pip install moviepy[doc]
Documents can be generated and viewed in the following ways:
$ python setup.py build_docs
You can pass other parameters to document builds, such as clean builds:
$ python setup.py build_docs -E
You can pass other parameters to document builds, such as clean builds:
https://www.sphinx-doc.org/en/master/usage/advanced/setuptools.html
New feature: Proglog’s progress bar and messages
A non-backward-compatible change was introduced in 1.0.0 to manage progress bars and messages using Proglog, which can display a nice progress bar in the console as well as in a Jupyter notebook or any user interface such as a website.
To display a laptop-friendly progress bar, first install IPyWidgets:
sudo pip install ipywidgetssudo jupyter nbextension enable --py --sys-prefix widgetsnbextension
Then at the beginning of the notebook type:
import proglogproglog.notebook()