笔记
MoviePy 最近升级到 v2.0,引入了重大突破性变化。您可以在此处查阅最新的 v1 文档,但请注意 v1 不再维护。有关如何将代码从 v1 更新到 v2 的更多信息,请参阅本指南。
MoviePy(此处的在线文档)是一个用于视频编辑的 Python 库:剪切、串联、标题插入、视频合成(又名非线性编辑)、视频处理和创建自定义效果。
MoviePy 可以读取和写入所有最常见的音频和视频格式,包括 GIF,并在 Windows/Mac/Linux 上运行,使用 Python 3.9+。
在此示例中,我们打开一个视频文件,选择 10 到 20 秒之间的子剪辑,在屏幕中央添加标题,然后将结果写入新文件:
from moviepy import VideoFileClip , TextClip , CompositeVideoClip
# Load file example.mp4 and keep only the subclip from 00:00:10 to 00:00:20
# Reduce the audio volume to 80% of its original volume
clip = (
VideoFileClip ( "long_examples/example2.mp4" )
. subclipped ( 10 , 20 )
. with_volume_scaled ( 0.8 )
)
# Generate a text clip. You can customize the font, color, etc.
txt_clip = TextClip (
font = "Arial.ttf" ,
text = "Hello there!" ,
font_size = 70 ,
color = 'white'
). with_duration ( 10 ). with_position ( 'center' )
# Overlay the text clip on the first video clip
final_video = CompositeVideoClip ([ clip , txt_clip ])
final_video . write_videofile ( "result.mp4" )
在底层,MoviePy 导入媒体(视频帧、图像、声音)并将它们转换为 Python 对象(numpy 数组),以便每个像素都可以访问,并且只需几行代码即可定义视频或音频效果(请参阅内置效果示例)。
该库还提供了将剪辑混合在一起的方法(串联、并排播放剪辑或以透明度相互叠加播放剪辑等)。然后,最终剪辑被编码回 mp4/webm/gif/等。
这使得 MoviePy 非常灵活且易于使用,尽管由于数据导入/导出操作较繁重而比直接使用 ffmpeg 慢。
使用pip install moviepy
安装 moviepy 。有关其他安装选项(例如自定义 FFMPEG 或预览),请参阅本节。对于开发,请在本地克隆该存储库并使用pip install -e .
每次推送到主分支时都会自动构建在线文档(此处)。要在本地构建文档,请通过pip install moviepy[doc]
安装额外的依赖项,然后转到docs
文件夹并运行make html
。
MoviePy 是最初由 Zulko 编写并在 MIT 许可下发布的开源软件。该项目托管在 GitHub 上,欢迎每个人贡献并提出问题或提供反馈,请阅读我们的贡献指南。要寻求帮助或只是讨论用法和示例,请使用我们的 Reddit 频道。
想要维护者!这个库只是通过其维护者的参与才得以维持,有时我们都没有足够的带宽。我们很乐意听到开发人员有兴趣伸出援手并解决一些问题(尤其是影响您的问题)或审查拉取请求。如果您有兴趣,请提出问题或直接联系我们。谢谢!