pip install moviepy
安装完成后,你就可以开始利用MoviePy进行视频编辑了。但有些繁芜的操作可能须要安装ImageMagick:
https://www.imagemagick.org/script/download.php#google_vignett
以WIN10为例,我们还须要手动将ImageMagick的安装目录加入到环境变量中。或者可以直接修正已经安装好的MoviePy中的config_defaults.py:

IMAGEMAGICK_BINARY = os.getenv('IMAGEMAGICK_BINARY', 'auto-detect')
修正成:IMAGEMAGICK_BINARY = r"C:\ImageMagick-7.1.1-Q16-HDRI\magick.exe"
须要将这个文件路径修正成你自己的安装路径。
基本剪辑导入MoviePy库和视频文件
首先,导入MoviePy库并加载你想编辑的视频文件:
from moviepy.editor import VideoFileClip video = VideoFileClip('input.mp4')
你可以利用剪辑方法来选择视频的一部分:
# 剪辑从第10秒到第30秒的视频 clip = video.subclip(10, 30)
subclip 方法是 MoviePy 库中用于剪辑视频的主要方法之一。它许可你从原始视频中选择一个韶光段(子剪辑)并返回一个新的 VideoClip 工具,该工具只包含所选韶光段的视频内容。
语法:
subclip(start_time, end_time)
start_time和end_time以秒位单位,如果视频过长可以换算成秒,但也可以利用下面的格式:
clip.subclip(): 截取视频全部,相称于没做处理clip.subclip(10): 从视频的 `第10秒` 截取到 `结尾`clip.subclip(10, -2): 从视频的 `第10秒` 截取到结尾的 `前两秒`clip.subclip((1, 35), (3, 10)): 从视频的 `第1分35秒` 截取到 `3分10秒`clip.subclip((1, 2, 18), (2, 1, 34)): 从视频的 `第1小时2分18秒` 截取到 `第2小时1分34秒`
保存剪辑后的视频要保存剪辑后的视频,可以利用以下命令:
clip.write_videofile('output.mp4')
截图
要在视频中截取一帧作为图片,可以利用以下命令:
frame = video.get_frame(15) # 在第15秒截取一帧 frame.save_frame('screenshot.png')
添加笔墨
你可以在视频上添加笔墨,利用MoviePy的TextClip类:
from moviepy.editor import TextClip text = TextClip('Hello, MoviePy!', fontsize=50, color='white') text = text.set_pos('center').set_duration(5) # 在视频中央显示,并持续5秒 final_video = CompositeVideoClip([video, text]) final_video.write_videofile('video_with_text.mp4')
制作GIF
要制作GIF,你可以选择视频的一部分并将其保存为GIF格式:
clip = (video.subclip((2, 45), (2, 60)).resize(0.2))clip.write_gif("test.gif", fps=1)
截取原视频2分45到2分60秒的片段,并将尺寸缩小至原来的20%,以1帧每秒保存成GIF文件。
resize语法:
resize(newsize, apply_to="everything", padding_color=None)
newsize:新的视频尺寸,可以是一个二元元组 (width, height),也可以是一个数字,表示新的宽度(高度会根据原始宽高比自动打算)。apply_to:指定要调度尺寸的内容,可选值为 "mask", "video", "audio", "transition" 或 "everything"。默认为 "everything",表示将尺寸调度运用到视频、音频和过渡效果等所有内容。padding_color:可选参数,指定在调度尺寸时,如果视频被裁剪或者添补的颜色。这该当是一个RGB元组或颜色名称。如果未指定,则默认利用玄色。
write_gif语法:
write_gif(filename, fps=None, program='imageio', opt='nq', loop=0, remove_temp=True, verbose=True)
filename:要保存的 GIF 文件的名称,包括文件扩展名(例如:"output.gif")。fps:可选参数,GIF 的帧速率(帧每秒)。如果未指定,将利用原始视频剪辑的帧速率。program:可选参数,用于天生 GIF 的程序。默认为 'imageio',但也可以选择 'ffmpeg'。opt:可选参数,用于指定压缩选项的字符串。默认为 'nq',表示没有压缩。你可以根据须要变动这些选项,例如利用 'nq' 进行无损压缩,或者利用 'iq' 进行高质量压缩。loop:可选参数,GIF 播放的循环次数。0 表示无限循环。remove_temp:可选参数,如果为 True,则在天生 GIF 后删除临时文件。默认为 True。verbose:可选参数,如果为 True,则在天生 GIF 时显示详细信息。默认为 True。视频合并
如果你有多个视频文件想要合并,可以利用MoviePy的concatenate_videoclips方法:
仅供参考,欢迎互换。