自动化剪辑
平时会遇到一些需要保存视频里的部分片段,而不会使用剪辑软件的朋友或者觉得视频软件剪辑麻烦的朋友,可以使用 Python
代码进行剪辑。Python 代码进行剪辑只需要传入四个基础参数就可以自动进行剪辑。
单视频剪辑
from moviepy.editor import *
"""
org_mov : 原始文件地址 如:D:\Code_summary\User\usering\视频_音频_剪辑\video.mp4
ite: 剪辑参数 [new_mov, start, stop]
new_mov 剪出来的视频文件地址 如:D:\Code_summary\User\usering\视频_音频_剪辑\video_new.mp4 、 video_new.mp4
start 开始的 时间 单位: S 如 00:01:30 开始就需要传入 90
stop 结束的 时间 单位: S 如 00:02:30 结束就传入 150
"""
clip = VideoFileClip(org_mov) # 初始化 需要剪辑的原始视频对象
new_mov, start, stop = ite # 需要的剪辑参数
# 命名 , 开始时间 , 结束时间
clop = clip.subclip(start, stop) # 剪辑的片段规定;需要始末 秒数 S
# 将剪切的片段保存
clop.write_videofile(new_mov) # 保存 片段 视频
可以通过上述方法,将其中的一个小片段另存为,方法简单不需要打开任何软件。
多视频混剪拼接
自动拼接
concatenate_videoclips
这个方法可以直接将剪裁好的片段对象列表进行拼接连接。
def cut_music(org, select, new_file):
"""
:param org: 原始 视频
:param select: 需要 截取的 片段时间
:param new_file: 最终保存的文件名字
:return: 最终生成一个 需要截取出来的 视频文件
"""
org_video = VideoFileClip(org)
clip_video = []
for item in select:
start, stop = item # 这里需要 时间段
clip_video.append(org_video.subclip(start, stop))
# 剪辑50-60秒的视频 00:00:50 - 00:00:60
video = concatenate_videoclips(clip_video) # 自动拼接合成
video.write_videofile(new_file)
自定义拼接
CompositeVideoClip
这个方法可以将片段进行自定义的拼接,也可以加入转场特效等。
# 视频 可以分段定时插入拼接
video = CompositeVideoClip([video1, video2.set_start(5).crossfadein(1)]) # 先播放video1,在第五秒开始video2播放,并以“渐入”的特效显示
# 视频 也可以 通过定位坐标实现多视频 同时显示拼接
video = CompositeVideoClip([video1.set_pos((0, 150), video2.set_pos((100, 150))])
使用 自定义拼接时需要注意,若不给定任何参数进行拼接时,会导致出现在同一个时间段出现多条声音混合播放,并且后面的视频会覆盖之前的图像。
视频生成 GIF 动画
def creat_gif():
# 生成 gif 图片
# 剪辑50-60秒的音乐 00:00:50 - 00:00:60
video = CompositeVideoClip([VideoFileClip("video.mp4").subclip(50, 60)])
video.write_gif('test.gif', fps=12)
通过上述方法就可以完成简易的视频剪辑了,并且剪辑时完全可以去做其他的事情,只需要下载 Python 并且规划好视频的时间与拼接规则即可。