Python Library 学习 - MoviePy 库 视频剪辑
MoviePy 库
视频剪辑库,官方文档
1 安装 和 引入
安装
pip3 install moviepy
引入
import moviepy.editor as mpy
2. 读取与写入
2.1 读取
-
mpy.VideoFileClip(filename, *):可读取视频或 gif 文件路径 -
mpy.ImageSequenceClip(file, fps=25):读取图片序列file:可以为一系列图片文件路径(list),或一个文件夹目录(包含需要加载的图片),或一系列 frame
-
mpy.ImageClip(file):-
file:可以为图片文件路径,一个 3dnumpy.ndarray数组(包含 RGB 通道的图像数组:width × height × 3) -
video_clip.to_ImageClip(t = 1):返回ImageClip(),第 1 秒时的图面
-
-
-
txt:字符串,需要添加的文字 -
其他参数:
font字体,fontsize字体大小,stroke_width字体粗细 -
TextClip.list('fonts'):查找可用字体;TextClip.search('Amiri','fonts'):查找所有包含 Amiri 的字体
-
注意:当不需要所读取的句柄时,需要关闭(即:clip.close()),否则在程序运行结束会报错。
2.2 写入
-
clip.write_videofile(filename):保存视频- 其他参数:
fps帧率;audiobool类型,是否保存音频
- 其他参数:
-
clip.write_gif(filename):保存 gif,需要ImageMagicklibrary 支持 -
clip.save_frame(filename, t=0):保存图片t指定时间,格式:in seconds15.35, in(min, sec), in(hour, min, sec), or as a string:'01:03:05.35'.
测试实例:从视频中提取音轨并保存
clip = mpy.VideoFileClip('test.mp4') # 读取视频
new_clip = clip.audio # 提取音轨
new_clip.write_audiofile('test.wav') # .wav 为无损音质
new_clip.write_audiofile('test.mp3') # .mp3 为有损音质
2. 展示
-
clip.show(t=0, interactive=False):预览某一画面,interactive = True:点击画面会输出该点的坐标和颜色的RGB值
-
clip.preview(fps=15, audio=True):预览视频
注意:clip.show() 和 clip.preview() 需要 Pygame 库支持
-
clip.ipython_display()和ipython_display(path):在 IPython Notebook 中显示- 可用参数:
t,width,fps,autoplay,loop
- 可用参数:
3. 编辑
-
clip.resize(newsize=None, height=None, width=None):缩放画面-
newsize:(width,height) pixel 单位 或 缩放因子 -
height和width:pixel 单位
-
-
clip.subclip(t_start, t_end)截取时间片段t_start和t_end格式:in seconds (15.35), in (min, sec), in (hour, min, sec), or as a string: '01:03:05.35'.
-
clip.subclip(x1, y1, x2, y2)画面裁剪x1和y1左上坐标;x2和y2右下坐标
-
mpy.concatenate_videoclips(clips, *):多 clips 合并如:finalclip = mpy.concatenate_videoclips([clip_1, clip_2])
参考资料
[1] MoviePy - 中文文档, InfoQ, 地址

浙公网安备 33010602011771号