• 「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

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

  • 相关阅读:
    平衡二叉树的 AVL 实现
    04-开发自己的npm包及发布流程详细讲解
    SpringBoot拦截器和动态代理有什么区别?
    永恒之蓝 ms17-010
    中移链DDC-SDK技术对接全流程(二)
    JUC_8锁问题
    数据中心蓄电池监控,这个技术太高级了!
    Docker 命令详解:容器、镜像、网络和数据卷管理
    Django5+React18前后端分离开发实战05 序列化
    微服务治理-含服务线上稳定性保障建设治理
  • 原文地址:https://blog.csdn.net/qq_41785288/article/details/133180737