肝帝游戏手把手教你python处理视频,越学越有趣,全部源码奉上,不信试试?

Posted 川川菜鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了肝帝游戏手把手教你python处理视频,越学越有趣,全部源码奉上,不信试试?相关的知识,希望对你有一定的参考价值。

亮点:作品展示


看够了吗?看够了就开始自己来学着做吧!!!

推荐系列教程,推荐的一定是好的!

十万字python基础教程,学不会主页联系找我!

qq机器人制作系列讲解专栏
qq机器人b站视频教程

三万字SQL数据库讲解系列

一.前言一定要看!!!

每一句话都是干货,每一步你都要亲自操作,你才能感受到它的乐趣并同时学习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 *
##截取46秒,缩小为原来的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处理视频,越学越有趣,全部源码奉上,不信试试?的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你使用 Python 制作贪吃蛇游戏

手把手教你使用 Python 制作贪吃蛇游戏

学编程太枯燥,整理11个边玩游戏边学编程网站,越学越上瘾

今天大佬手把手教你使用 Python 制作贪吃蛇游戏

手把手教你用python写游戏

还不会搭建个人博客?手把手教你用Wordpress搭建只属于你的世界~(肝帝写近万字多图详解,全网最详细,建议收藏! ❤️)