肝帝游戏手把手教你python处理视频,越学越有趣,全部源码奉上,不信试试?
Posted 川川菜鸟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了肝帝游戏手把手教你python处理视频,越学越有趣,全部源码奉上,不信试试?相关的知识,希望对你有一定的参考价值。
文章目录
亮点:作品展示
看够了吗?看够了就开始自己来学着做吧!!!
推荐系列教程,推荐的一定是好的!
一.前言一定要看!!!
每一句话都是干货,每一步你都要亲自操作,你才能感受到它的乐趣并同时学习python。有任何问题,可以主页左侧联系我,在我能力范围内,愿意帮助你。本视频教程虽然演示有些娱乐,实际上可以用于更多实际用途。制作不易,你的三连是我莫大的支持。
二.下载安装
无脑安装:
pip install moviepy
pip install ez_setup
如果你不会下载,可百度网盘下载,再按照我下面的教程安装:
ImageMagick软件链接:https://pan.baidu.com/s/1SsDZF0ThQhaQwHi-mWfxmQ
提取码:931q
当然你也可以按照我如下方式从头开始下载安装:
官网链接如下:
https://www.imagemagick.org/script/index.php
进去之后:
然后往下滑,找到window版本下载:
然后双击安装,勾选accept:
无脑next后选择安装在D盘:
next后勾选配置:
又是无脑next,最后finish
最后测试一下,在cmd执行:
magick --version
可以看到成功了:
现在还需要找到自己moviepy安装包路径,比如我的为
c:\\users\\hp\\appdata\\local\\programs\\python\\python39\\lib\\site-packages
怎么找路径?再下载一次moviepy模块,就会显示出路径了:
然后再文件夹跳到该目录下找到模块:
进去后修改为如下内容:(记得保存)
保存过后久好了!
三.视频转gif
比如我要把冒泡排序视频转为gif,代码如下:
from moviepy.editor import *
clip = (VideoFileClip("bili.mp4"))
clip.write_gif("转gif.gif")
效果为:
四.视频截取
在这里你需要知道一点的是:subclip()函数对应的参数为需要截取的视频起点和终点,其它的代码部分并不用更改。比如这里我将视频的0到3秒截取下来保存为gif。
from moviepy.editor import *
clip = (VideoFileClip("bili.mp4")
.subclip(0, 3))
clip.write_gif("截取.gif")
效果展示:
五.视频Gif缩放
这里是截取视频4到6秒,缩小为原来的0.5倍,保存为缩小.gif
from moviepy.editor import *
##截取4到6秒,缩小为原来的0.5倍
clip = (VideoFileClip("美女.mp4")
.subclip(4, 6)
.resize(0.5))
clip.write_gif("缩小.gif")
效果展示:
六.视频修剪
在典型的MoviePy脚本是这样的:加载视频或音频、修改、将他们连接在一起并最后生成一个新视频文件。比如我要加载我录制的的视频,降低音量,在前3秒添加标题在视频的中央,然后写入mp4文件.
代码注释如下:
from moviepy.editor import *
# 加载美女视频截取7搭配12秒部分
clip = VideoFileClip(r"美女.mp4").subclip(7,12)
# 降低音量为原来的0.8倍
clip = clip.volumex(0.8)
# 主题文字,文字等效和颜色 这里的字体只能为英文
txt_clip = TextClip("chuan",fontsize=70,color='white')
# 在前3秒的视频中央填出现:chuan
txt_clip = txt_clip.set_pos('center').set_duration(3)
# 覆盖文本第一视频剪辑
video = CompositeVideoClip([clip, txt_clip])
# 写入为新的文件,我保存为mp4
video.write_videofile("bili美女.mp4")
效果如下:
为了演示动态,我先把生成的视频转为gif,因此需要执行一遍如下代码:
from moviepy.editor import *
clip = (VideoFileClip("bili美女.mp4"))
clip.write_gif("舞蹈.gif")
效果如下:
七.视频堆叠
使用clip_array函数对剪辑进行堆叠操作,代码如下:
from moviepy.editor import VideoFileClip, clips_array, vfx
clip1 = VideoFileClip("bi.mp4").margin(5) # add 10px contour
clip2 = clip1.fx( vfx.mirror_x)
clip3 = clip1.fx( vfx.mirror_y)
clip4 = clip1.resize(0.99) # downsize 60%
final_clip = clips_array([[clip1, clip2],
[clip3, clip4]])
final_clip.resize(width=480).write_videofile("堆叠.mp4")
视频如下:
但是为了演示动态视频,于是我又把他转为gif,执行以下代码:
from moviepy.editor import *
clip = (VideoFileClip("堆叠.mp4"))
clip.write_gif("堆叠.gif")
效果如下:
八.视频剪辑部分语法
起始和终止时间
clip1 = clip1.set_start(5) # 五秒后
例如你的剪辑看起来会是这样:
video = CompositeVideoClip([clip1, # 从0秒开始
clip2.set_start(3), # 1秒开始 bi.mp4剪切4秒
clip3.set_start(2)]) # 2秒开始 bili美女.mp4剪切三秒
clip2可能先于clip1的结束时间开始。在这种情况下,你可以给clip2添加一个1秒钟的淡入效果:
video = CompositeVideoClip([clip1, # starts at t=0
clip2.set_start(3).crossfadein(2),
clip3.set_start(2).crossfadein(2)])
剪辑的定位
如果clip2和clip3都比clip1小,你可以决定他们出现在视频中的位置。在这里,我们指定了剪辑左上角像素的坐标:
video = CompositeVideoClip([clip1,
clip2.set_pos((45,150)),
clip3.set_pos((90,100))])
有很多方法可以指定位置:
clip2.set_pos((45,150)) # x=45, y=150 , in pixels
clip2.set_pos("center") #自动剧中
# clip2 水平居中,在图片的顶部
clip2.set_pos(("center","top"))
# clip2 垂直居中,在图片的左侧
clip2.set_pos(("left","center"))
# clip2 位于屏幕宽度的 40%,高度的 70%:
clip2.set_pos((0.4,0.7), relative=True)
# clip2's position is horizontally centered, and moving down !
clip2.set_pos(lambda t: ('center', 50+t) )
指定坐标的时候请记住,y坐标的0位置在图片的最上方:
这个太难调了,不演示了,感兴趣自己去调一下。
九.图片合成视频
为了演示,我九合成gif,因为语法都一样。
from moviepy.editor import *
# fps控制速度,列表图片大小必须完全一致,否则报错
clip = ImageSequenceClip(['1.jpg','3.jpg', '4.jpg','5.jpg','6.jpg'], fps=1)
clip.write_gif('合成.gif')
效果如下:
是不是在想给自己女朋友也做一个?
十.把制作好的作品部署为动态桌面背景
这里并不用描述太多,可以直接看我录的教程视频:
桌面动态美女背景设置教程
十一. 所有文件和源码下载地址
如果你没有网盘会员,下载可能会很大,需要我直接发你文件也可以主页左侧联系我。
链接:https://pan.baidu.com/s/1Rg9s08b2-F_ZoflxIhTkUQ
提取码:f29a
以上是关于肝帝游戏手把手教你python处理视频,越学越有趣,全部源码奉上,不信试试?的主要内容,如果未能解决你的问题,请参考以下文章
还不会搭建个人博客?手把手教你用Wordpress搭建只属于你的世界~(肝帝写近万字多图详解,全网最详细,建议收藏! ❤️)