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为是否写入声音。