moviepy主要用来处理视频,整理一下常用的方法,希望对大家有用

导入moviepy

from moviepy.editor import *

1.读取视频到内存

vfc = VideoFileClip(path)# path为输入视频路径

由此得到了一个VideoFileClip的对象,可通过对此对象的操作,得到想要的输出视频结果。

2.对视频时长进行剪切

vfc.subclip(time_1, time_2)# time_1和time_2为需要剪切视频时长的两个端点,不需要time_1在time_2之前

3.对多个视频在时长上进行拼接

concatente_videoclips(vfc_list, method='compose')# vfc_list为VideoFileClip的对象组成的list

注意:method=‘compose’是必要的,它使得各种编码方式不同的视频也可以进行拼接,否则,如果输入编码方式不同的视频会报错。

4.对视频播放区域进行剪辑

vfc.crop(x_center=x_center, y_center=y_center, width=width, height=height)

5.改变视频分辨率

vfc.resize(newsize=(width, height))

6.把图片列表变成视频

clip = ImageSequenceClip(pic_list, fps=fps)

7.把两个视频放在一个画面上同时播放

clip_1.set_position([0, 0])
clip_2.set_position([clip_1.w, 0])
CompositeVideoClip([clip_1, clip_2], size=(clip_1.w+clip_2.w, clip_1.h))

注意:.set_position([x1, y1])中的x1,y1为视频左上角的坐标

8.保存视频

clip.write_videofile(path, codec='mpeg4', verbose=False, audio=False)

其中,verbose为打印详细信息与否,audio为是否写入声音。