• 「Python|音视频处理|场景案例」如何将视频转换成gif动图


    本文主要介绍如何使用python常用的音视频处理第三方库moviepy将视频转换成gif动图。

    场景说明

    我们可能会有一些情况,希望将视频变成动图来保存和使用,比如看到一个很欢乐的影视片段或者自己的拍摄的生活片段适合拿来做动图表情包,那么就出现把视频变成动图的需求了。

    解决方案

    python中依旧可以使用moviepy这个库来快速简单地完这个任务。关于这个库的环境安装使用以及其他应用场景,我们在其他博文中也已经介绍过了(可以直接在我的博客目录中搜索"音视频处理"关键词查找)。令人惊喜的是,moviepy直接内置了将视频保存成gif动图的APIwrite_gif,所以我们只要调用这个API即可。

    write_gif()moviepy中视频片段对象下的一个方法,所以我们需要先把视频文件读入变成moviepy的视频对象,用的就是我们之前多次用到的VideoClip(),然后就可以调用write_gif()把读入的视频保存成动图输出了。

    所以整个过程步骤可以描述如下:

    • 导入moviepyfrom 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')
    
    • 1
    • 2
    • 3
    • 4
    • 5

    写文不易,如果对你有帮助的话,来一波点赞、收藏、关注吧~👇

  • 相关阅读:
    网络管理器(NetworkManager)未运行。 这个问题如何解决
    模式匹配算法 - Horspool
    Java 类型通配符下限以及案例说明(八)
    第三课 Python利器
    golang操作ES
    【无标题】
    Python文件及目录操作(高级文件操作篇)
    霸道的 AliPaladin64.sys
    滚雪球学Java(42):探索对象的奥秘:解析Java中的Object类
    拷贝构造函数vs移动构造函数
  • 原文地址:https://blog.csdn.net/qq_41785288/article/details/133180737