GitHub精选 | 用于处理视频的 Python 库
《GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是 MoviePy一个用于视频编辑的 Python 库:剪切、串联、标题插入、视频合成(又名非线性编辑)、视频处理和创建自定义效果。
举例
这个例子中,我们打开一个视频文件,选择 t=50s 和 t=60s 之间的子剪辑,在屏幕中央添加一个标题,并将结果写入一个新文件:
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([video, txt_clip]) # Overlay text on video
result.write_videofile("myHolidays_edited.webm",fps=25) # Many options...
安装
MoviePy 依赖于 Python 模块NumPy、Imageio、Decorator和Proglog,它们将在 MoviePy 安装期间自动安装。在您第一次使用 MoviePy 时,FFMPEG 软件应该会自动下载/安装(通过 imageio)(安装需要几秒钟)。如果要使用特定版本的 FFMPEG,请按照 中的说明进行操作config_defaults.py。
手动安装
$ (sudo) python setup.py install
使用 pip 安装
$ (sudo) pip install moviepy
如果你既没有setuptools也没有ez_setup安装,上面的命令就会失败。在这种情况下,在安装之前输入:
$ (sudo) pip install setuptools
对于高级图像处理,您将需要以下一个或多个软件包
- Python Imaging Library (PIL) 或者更好的是它的分支Pillow。
- 如果未安装 PIL 和 OpenCV,Scipy(用于跟踪、分割等)可用于调整视频剪辑的大小。
- 一些高级图像处理可能需要Scikit Image。
- cv2某些高级图像处理可能需要OpenCV 2.4.6或更新版本(提供包的版本)。
- Matplotlib
文档
构建文档具有需要安装的其他依赖项。
$ (sudo) pip install moviepy[doc]
可以通过以下方式生成和查看文档:
$ python setup.py build_docs
您可以将其他参数传递给文档构建,例如干净构建:
$ python setup.py build_docs -E
更多信息:https://www.sphinx-doc.org/en/master/usage/advanced/setuptools.html
新功能:Proglog 的进度条和消息
在 1.0.0 中引入了非向后兼容的更改,以使用Proglog管理进度条和消息 ,这可以在控制台以及 Jupyter 笔记本或任何用户界面(如网站)中显示漂亮的进度条。
要显示笔记本友好的进度条,首先安装 IPyWidgets:
sudo pip install ipywidgets
sudo jupyter nbextension enable --py --sys-prefix widgetsnbextension
然后在笔记本的开头输入:
import proglog
proglog.notebook()
完整文档:https://zulko.github.io/moviepy/