MoviePy - 用Python玩转视频剪辑!(MoviePy安装及视频文件读取)
最近有一些视频需要剪辑,但本人比较懒,不想逐一手工处理。第一个想到的,就是万能的Python。
果不其然google一搜,真的有现成的库
moviepy
。如官方文档所介绍的,moviepy是一个用于视频编辑Python库,可以切割、拼接、标题插入,视频合成(即非线性编辑),进行视频处理和自定义效果的设计。总的来说,可以很方便自由地处理视频、图片等文件。
英文版官方文档: https:// zulko.github.io/moviepy /
中文版文档: http:// moviepy.cn/
接下来,介绍一下MoviePy的安装及基本操作。欢迎来我的网站查看此文章,排版会更好看一些
MoviePy的安装
首先, 安装moviepy基本包。与其他的库一样,直接采用 pip 的方式安装即可。
pip install moviepy
第二步 ,安装依赖包ImageMagic
ImageMagic是用于在视频中填入文本信息的工具,我认为还是很有用处的,需要单独下载exe程序安装。
下载地址为: https:// imagemagick.org/script/ download.php ,windows系统页面拖到最下面可以找到。下载完毕后双击安装即可
第三步 ,设置ImageMagic路径
在上一步中安装了ImageMagic,但此时仍无法使用,因为Python不知道ImageMagic安装在哪里,需要在Python的库文件中找到
moviepy/config_defaults.py
,并在最后一行加入
IMAGEMAGICK_BINARY = "C:\\Program Files\\ImageMagick_VERSION\\convert.exe"
(此处修改为你的安装路径)
至此,moviepy安装完毕!
视频文件的读取
剪辑处理视频,首先需要读取到视频文件,主要有
VideoFileClip
、
clips_array
、
CompositeVideoClips
这三种方法
读取视频文件,合并,再导出文件
clip1 = VideoFileClip("1.flv").subclip(10,20) #读取视频,并截取10-20秒的内容
clip2 = VideoFileClip("2.webm").resize(0.60) # 将视频画面尺寸缩小到60%
final_clip = concatenate_videoclips([clip1,clip2]) #视频合并
final_clip.write_videofile("hebing.mp4")
将多段视频以列表展现的形式显示
final_clip = clips_array([[clip1, clip2],[clip3, clip4]])
CompositeVideoClips(视比concatenate_videoclips、clips_array好用,推荐使用此方法)
合并视频文件,可选择起止位置,也可设置渐进切换
video = CompositeVideoClip([clip1, # starts at t=0
clip2.set_start(5), # start at t=5s
clip3.set_start(9)]) # start at t=9s,fade-in 的形式转换
video = CompositeVideoClip([clip1,
clip2.set_pos((45,150)),
clip3.set_pos((90,100))])
其他设置视频位置的函数
clip2.set_pos((45,150)) # x=45, y=150 , 设置视频展示的位置
clip2.set_pos("center") # 居中
# 顶部居中
clip2.set_pos(("center","top"))
# 顶部靠左
clip2.set_pos(("left","center"))