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:可以为图片文件路径,一个 3d numpy.ndarray 数组(包含 RGB 通道的图像数组:width × height × 3)

    • video_clip.to_ImageClip(t = 1):返回 ImageClip(),第 1 秒时的图面

  • mpy.TextClip(txt)

    • txt:字符串,需要添加的文字

    • 其他参数:font 字体,fontsize 字体大小,stroke_width 字体粗细

    • TextClip.list('fonts') :查找可用字体;TextClip.search('Amiri','fonts'):查找所有包含 Amiri 的字体

注意:当不需要所读取的句柄时,需要关闭(即:clip.close()),否则在程序运行结束会报错。

2.2 写入

  • clip.write_videofile(filename):保存视频

    • 其他参数:fps 帧率;audio bool 类型,是否保存音频
  • clip.write_gif(filename):保存 gif,需要 ImageMagick library 支持

  • clip.save_frame(filename, t=0) :保存图片

    • t 指定时间,格式:in seconds 15.35, in (min, sec), in (hour, min, sec), or as a string: '01:03:05.35'.
  • clip.write_audiofile(filename):保存音频

测试实例:从视频中提取音轨并保存

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 单位 或 缩放因子

    • heightwidth:pixel 单位

  • clip.subclip(t_start, t_end) 截取时间片段

    • t_startt_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) 画面裁剪

    • x1y1 左上坐标;x2y2 右下坐标
  • mpy.concatenate_videoclips(clips, *):多 clips 合并

    • finalclip = mpy.concatenate_videoclips([clip_1, clip_2])

参考资料

[1] MoviePy - 中文文档, InfoQ, 地址

posted @ 2022-02-11 20:45  veager  阅读(236)  评论(0编辑  收藏  举报