添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
MoviePy - 用Python玩转视频剪辑!(MoviePy安装及视频文件读取)

MoviePy - 用Python玩转视频剪辑!(MoviePy安装及视频文件读取)

最近有一些视频需要剪辑,但本人比较懒,不想逐一手工处理。第一个想到的,就是万能的Python。

果不其然google一搜,真的有现成的库 moviepy 。如官方文档所介绍的,moviepy是一个用于视频编辑Python库,可以切割、拼接、标题插入,视频合成(即非线性编辑),进行视频处理和自定义效果的设计。总的来说,可以很方便自由地处理视频、图片等文件。

英文版官方文档: zulko.github.io/moviepy

中文版文档: moviepy.cn/

接下来,介绍一下MoviePy的安装及基本操作。欢迎来我的网站查看此文章,排版会更好看一些

MoviePy的安装

首先, 安装moviepy基本包。与其他的库一样,直接采用 pip 的方式安装即可。

pip install moviepy

第二步 ,安装依赖包ImageMagic

ImageMagic是用于在视频中填入文本信息的工具,我认为还是很有用处的,需要单独下载exe程序安装。

下载地址为: imagemagick.org/script/ ,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"))