• 三行Python代码即可将视频转Gif


    一、前言

    很多网站提供视频转GIF的功能,但要么收费要么有广告

    实际上我们通过python,几行代码就能够实现视频转gif

    二、教程

    1. 安装必备库moviepy

    pip install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple

    2. 写入代码

    1. from moviepy.editor import *
    2. clip = (VideoFileClip("movie.mp4")) # 需要转为GIF的视频文件路径
    3. clip.write_gif("movie.gif")

    刚刚的GIF图虽然只有几秒,但大小却有9M之多!(还是已经缩放了分辨率的情况下)

    在这里插入图片描述
    如果需要转换的视频有几十秒,那文件大小就得上百兆甚至更多!

    那该怎么解决呢?

    4. GIF很大的解决方案

    我们除了设置缩放分辨率resize外,还可以通过设置fps参数抽帧来减少大小

    1. from moviepy.editor import *
    2. clip = (VideoFileClip("movie.mp4").resize((488,225)))
    3. clip.write_gif("movie.gif",fps=15) #设置为每秒15

    设置为每秒15帧后,文件大小只有2m多,一下缩小了4倍之多!

    在这里插入图片描述
    而且视觉效果也没有多大的区别

    5. 截取视频长度转换

    我们还可以通过设置subclip参数来指定转换的视频范围:

    subclip:截取原视频中的自t_start至t_end间的视频片段

    将视频1-2秒片段转化为Gif

    1. from moviepy.editor import *
    2. clip = (VideoFileClip("movie.mp4").subclip(t_start=1, t_end=2).resize((488, 225)))
    3. clip.write_gif("movie.gif", fps=15)

    6. 指定转换后的图片大小(分辨率)

    resize参数可指定转换后的图片大小

    接受的参数为:

    1.以像素或浮点表示的(width,height)

    2.缩放百分比,如 0.5

    示例

    1.设置转换后的图片为600*400

    clip = (VideoFileClip("movie.mp4").resize((600, 400)))
    

    2.原视频缩放50%

    clip = (VideoFileClip("movie.mp4").resize(0.5))
    

    关于Python技术储备

    学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

    一、Python的学习大礼包

    Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(文末获取!)

    祝:学习愉快、工作顺利

    温馨提示:获取方式 关注【码农园区】 回复   “ python ”  !!!

    在这里插入图片描述

  • 相关阅读:
    氮化镓充电器芯片 NV6128、NV6127、NV6125 QFN6x8mm
    MySQL空间函数知识点总结
    Mybatis
    【力扣题解】2139. 得到目标值的最少行动次数
    java.lang.reflect.InvocationTargetException null,依赖版本,配置文件的地址都对了。但还是出现这个错误。
    人工智能 | ShowMeAI资讯日报 #2022.06.22
    java.sql.SQLException: Value ‘xxx‘ can not be represented as java.sql.Timestamp
    一个用C#开发的操作系统的开源项目
    c# ValueTuple
    Shader入门精要笔记-屏幕后处理效果(1)
  • 原文地址:https://blog.csdn.net/lwzhang1101/article/details/134433917