本文主要介绍如何使用python常用的音视频处理第三方库moviepy将视频转换成gif动图。
文章目录
- 场景说明
- 解决方案
- 源代码
我们可能会有一些情况,希望将视频变成动图来保存和使用,比如看到一个很欢乐的影视片段或者自己的拍摄的生活片段适合拿来做动图表情包,那么就出现把视频变成动图的需求了。
python
中依旧可以使用moviepy
这个库来快速简单地完这个任务。关于这个库的环境安装使用以及其他应用场景,我们在其他博文中也已经介绍过了(可以直接在我的博客目录中搜索"音视频处理"关键词查找)。令人惊喜的是,moviepy
直接内置了将视频保存成gif动图的APIwrite_gif
,所以我们只要调用这个API即可。
write_gif()
是moviepy
中视频片段对象下的一个方法,所以我们需要先把视频文件读入变成moviepy
的视频对象,用的就是我们之前多次用到的VideoClip()
,然后就可以调用write_gif()
把读入的视频保存成动图输出了。
所以整个过程步骤可以描述如下:
moviepy
:from moviepy.editor import *
video = VideoFileClip("D:/视频文件名.mp4")
video.write_gif("D:/动图.gif")
另外,需要注意的是,有可能转换出来的gif动图大小会很大,如果我们希望输出的图片大小小一些,可以尝试传入"ffmpeg"
给write_gif()
的program
参数,如下:
video.write_gif("D:/动图.gif", program='ffmpeg')
除此之外,还可以事先缩小视频的尺寸来缩小视频本身的大小,这样可以缩小图片每一帧的大小,达到减小输出动图文件大小的目的,如下:
video = video.resize(0.2)
这样一来,转换视频成动图的目的就达成了,够不够简单快速?!
from moviepy.editor import *
video = VideoFileClip("D:/视频文件名.mp4")
video = video.resize(0.2)
video.write_gif("D:/动图.gif", program='ffmpeg')
写文不易,如果对你有帮助的话,来一波点赞、收藏、关注吧~