你知道吗,用moviepy一行代码就能够快速剪辑视频中某个区间的片段:
clip = VideoFileClip("videoplayback.mp4").subclip(50,60)
这一段代码,能够在3秒内将videoplayback.mp4的50秒-60秒的视频片段提取出来,非常方便。
不仅如此,moviepy还支持添加字幕、调整音量、片段链接等功能。下面看看详细的操作方法。
1.准备
开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda
Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。
当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南。
在终端输入以下命令安装我们所需要的依赖模块:
pip install moviepy
看到 Successfully installed xxx 则说明安装成功。
2.视频剪辑
剪辑个视频,多大点事,比起下载PR,用Python 写3行代码,3秒剪辑不香吗?
from moviepy.editor import * # 剪辑50-60秒的音乐 00:00:50 - 00:00:60 video = CompositeVideoClip([VideoFileClip("videoplayback.mp4").subclip(50,60)]) # 写入剪辑完成的音乐 video.write_videofile("done.mp4")
3.视频拼接
“哦?Python?哼,那你肯定很难进行拼接工作吧,PR多方便,拖拽即可完成拼接。”
那你可真是太小看Python了,moviepy几行代码随随便便就能拼接许多片段:
from moviepy.editor import VideoFileClip, concatenate_videoclips clip1 = VideoFileClip("myvideo.mp4") # 结合剪辑,你甚至能够完全自动化剪辑拼接视频的操作 clip2 = VideoFileClip("myvideo2.mp4").subclip(50,60) clip3 = VideoFileClip("myvideo3.mp4") final_clip = concatenate_videoclips([clip1,clip2,clip3]) final_clip.write_videofile("my_concatenation.mp4")
结合剪辑,你甚至能够完全自动化剪辑拼接视频的操作。
4.逐帧变化
“那你能完成针对每一帧图像的快速图像处理吗?PR可是做得到的哦”
我擦,你简直是在侮辱Python,教你如何反转视频每一帧的绿色和蓝色通道:
from moviepy.editor import VideoFileClip my_clip = VideoFileClip("videoplayback.mp4") def scroll(get_frame, t): """ 处理每一帧图像 """ frame = get_frame(t) frame_region = frame[:,:,[0,2,1]] return frame_region modifiedClip = my_clip.fl(scroll) modifiedClip.write_videofile("test.mp4")
5.导出GIF
哇,听起来好像挺牛逼的,那用来导出到GIF吗
当然可以:
from moviepy.editor import * # 剪辑50-60秒的音乐 00:00:50 - 00:00:60 video = CompositeVideoClip([VideoFileClip("videoplayback.mp4").subclip(50,60)]) my_clip.write_gif('test.gif', fps=12)
扫描下方二维码,可以加入我们的Python互助群哦:
我们的文章到此就结束啦,如果你喜欢我们今天的Python 实战教程,请持续关注我们,如果对你有帮助,麻烦在下面点一个赞/在看哦
Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典
hi你们的python学习互助群二维码过期了~
最近营销号太多了,我把二维码通道关了。请加微信Z_Salp,备注下列语句执行答案,拉你进群:
” “.join([“I”, “AM”, “PERSON”])
ERROR: Could not find a version that satisfies the requirement moviepy (from versions: none)
ERROR: No matching distribution found for moviepy
这怎么办
源的问题,要用pypi源:
pip install moviepy -i https://pypi.org/simple/