小python帮大忙——用python将一个视频分割成多个视频

内容分享2个月前发布
0 0 0

最近朋友在学习视频剪辑的过程中接到一个任务,要求他把一个时长三个小时左右的视频剪辑成一部100集的短剧,并且在每一集结尾加上一个统一的结尾。朋友平时习惯使用剪映等视频剪辑工具,但是这种工具基本上只支持单次手动分割视频,很难满足他的需求,网上能实现这个功能的工具看上去挺多,但是鱼龙混杂,多数都要收费才能使用。最终,朋友想到了使用python来尝试解决这个问题,没想到还真找到了——MoviePy库,MoviePy是一个用于视频编辑的Python库,它可以用来进行视频剪辑、视频处理、视频合成等,下面详细介绍一下windows11环境下这个需求的实现过程。

安装 MoviePy

moviepy 可以通过 pip 安装:

小python帮大忙——用python将一个视频分割成多个视频

安装 FFmpeg

moviepy 依赖于 FFmpeg 进行多媒体处理。确保系统中已安装 FFmpeg:

  • Windows:下载 FFmpeg 的预编译二进制文件,将其路径添加到系统环境变量 PATH 中。

MoviePy加载及分割视频

使用moviepy剪切视频超级简单,下面几行代码就可以实现从一个视频中剪辑一段视频的功能

from moviepy.editor import VideoFileClip

video_clip = VideoFileClip(“my_video.mp4”) # 加载视频文件

clip = VideoFileClip(“my_video.mp4”).subclip(2, 5) # 剪切视频的第2秒到第5秒

clip.write_videofile(“my_subclip.mp4”) # 保存切片视频

MoviePy合并视频

使用moviepy合并两个视频也超级简单,相关代码实现如下:

from moviepy.editor import VideoFileClip, concatenate_videoclips

clip1 = VideoFileClip(“my_video1.mp4”) # 加载第一个视

clip2 = VideoFileClip(“my_video2.mp4”) # 加载第二个视频

final_clip = concatenate_videoclips([clip1, clip2]) # 合并两个视频


final_clip.write_videofile(
“my_concatenated_video.mp4”) # 保存合并后的视频

整体实现

有了以上两段代码作为基础,把一个长视频分割成多个视频并加上结尾,无非就是把原视频按照固定长度切片分割保存,然后把保存后的视频跟结尾视频进行合并的循环操作,相关实现代码如下:

from moviepy.editor import VideoFileClip, concatenate_videoclips

num = int(input('请输入总集数:'))

t = int(input('请输入每一集的时长(秒):'))

video_path = 'demo.mp4'

video_clip = VideoFileClip(video_path)

duration = video_clip.duration

for i in range(0, num + 1):

begin = t * i

end = t * (i + 1)

try:

if end < duration:

clip = VideoFileClip(video_path).subclip(begin, end)

else:

clip = VideoFileClip(video_path).subclip(begin, duration)

except Exception as e:

print(e)

break

new_file = '第' + str(i + 1) + '集无结尾.mp4'

finally_file = '第' + str(i + 1) + '集.mp4'

clip.write_videofile(new_file)

clip1 = VideoFileClip(new_file)

# 加载结尾视频

clip2 = VideoFileClip(“end.mp4”)

# 合并两个视频,请务必保证两个视频的尺寸是一样的

final_clip = concatenate_videoclips([clip1, clip2])

# 输出合并后的视频

final_clip.write_videofile(finally_file)

执行脚本前需要注意的点:合并的两个视频的尺寸最好保持一致,否则会出现视频被拉伸的情况。

几行代码就实现了手工操作需要一天的工作量,并且后来如果遇到同样的需求还能重复使用,小python又一次帮了大忙~

请关注我的wx公众号 知了二三w,脚本在使用过程中有任何问题随时沟通~

小python帮大忙——用python将一个视频分割成多个视频

END

小python帮大忙——用python将一个视频分割成多个视频

© 版权声明

相关文章

暂无评论

none
暂无评论...