python编程简单几行代码实现视频转换Gif示例

作者:曲鸟 时间:2021-09-02 03:34:13 

一、前言

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

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

二、教程

1. 安装必备库moviepy


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

2. 写入代码


from moviepy.editor import *

clip = (VideoFileClip("movie.mp4"))  # 需要转为GIF的视频文件路径
clip.write_gif("movie.gif")

3. 转换效果

python编程简单几行代码实现视频转换Gif示例

刚刚的GIF图虽然只有几秒,但大小却有9M之多!

(还是已经缩放了分辨率的情况下)

python编程简单几行代码实现视频转换Gif示例

如果需要转换的视频有几十秒,那文件大小就得上百兆甚至更多!

那该怎么解决呢?

4. GIF很大的解决方案

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


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

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

python编程简单几行代码实现视频转换Gif示例

而且视觉效果也没有多大的区别

python编程简单几行代码实现视频转换Gif示例

5. 截取视频长度转换

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

subclip:截取原视频中的自t_startt_end间的视频片段

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


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

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

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

接受的参数为:

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

  • 缩放百分比,如 0.5

示例

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


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

2.原视频缩放50%


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

来源:https://blog.csdn.net/momoda118/article/details/120561447

标签:python,Gif,视频转换
0
投稿

猜你喜欢

  • 使用Python编写一个在Linux下实现截图分享的脚本的教程

    2022-04-23 13:23:11
  • 使用python的turtle绘画滑稽脸实例

    2022-04-18 02:24:49
  • Python中非常实用的Math模块函数教程详解

    2022-12-08 02:12:49
  • Yii开启片段缓存的方法

    2023-11-21 05:00:40
  • Python实现将HTML转成PDF的方法分析

    2023-06-19 18:59:37
  • FrontPage2002简明教程四:网页超级链接

    2008-09-17 11:23:00
  • python集合比较(交集,并集,差集)方法详解

    2023-09-30 22:11:13
  • 基于Python的图像阈值化分割(迭代法)

    2022-10-23 21:25:01
  • Python读取一个目录下所有目录和文件的方法

    2023-05-30 23:04:21
  • PHP递归调用数组值并用其执行指定函数的方法

    2023-09-05 15:35:04
  • 可以输入的下拉菜单

    2009-01-04 14:21:00
  • 用Python 执行cmd命令

    2022-06-08 15:29:17
  • python实现发送和获取手机短信验证码

    2023-08-09 08:02:26
  • Python+OpenCV之形态学操作详解

    2021-11-24 23:37:58
  • python网络编程学习笔记(五):socket的一些补充

    2022-02-03 23:22:48
  • python-序列解包(对可迭代元素的快速取值方法)

    2023-12-28 23:23:57
  • 利用Python进行数据清洗的操作指南

    2022-07-22 22:59:41
  • asp中设置session过期时间方法总结

    2013-06-01 19:52:04
  • Python Flask框架模板操作实例分析

    2022-09-21 02:56:23
  • python进阶教程之函数对象(函数也是对象)

    2022-08-28 01:06:42
  • asp之家 网络编程 m.aspxhome.com