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


Posted in Python onOctober 05, 2021

一、前言

很多网站提供视频转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))

以上就是简单使用几行python代码将视频转换Gif示例的详细内容,更多关于python将视频转换Gif的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
跟老齐学Python之私有函数和专有方法
Oct 24 Python
举例讲解Python中metaclass元类的创建与使用
Jun 30 Python
Python原始字符串与Unicode字符串操作符用法实例分析
Jul 22 Python
通过Python实现自动填写调查问卷
Sep 06 Python
python学习笔记之列表(list)与元组(tuple)详解
Nov 23 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
Jun 07 Python
python3监控CentOS磁盘空间脚本
Jun 21 Python
Numpy中的mask的使用
Jul 21 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 Python
Python3实现的反转单链表算法示例
Mar 08 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
wxpython绘制圆角窗体
Nov 18 Python
用 Python 定义 Schema 并生成 Parquet 文件详情
Sep 25 #Python
使用pipenv管理python虚拟环境的全过程
Sep 25 #Python
Django实现WebSocket在线聊天室功能(channels库)
Sep 25 #Python
Python天气语音播报小助手
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
You might like
使用adodb lite解决问题
2006/12/31 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
基于JavaScript代码实现随机漂浮图片广告
2016/01/05 Javascript
全面解析JavaScript中的valueOf与toString方法(推荐)
2016/06/14 Javascript
Bootstrap框架实现广告轮播效果
2016/11/28 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
详解在React里使用"Vuex"
2018/04/02 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
Scrapy-redis爬虫分布式爬取的分析和实现
2017/02/07 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
Tkinter中复选菜单是否被选中的判断与设置方式
2020/03/04 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
PyQt5通过信号实现MVC的示例
2021/02/06 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
求职信的七个关键技巧
2014/02/05 职场文书
六查六看剖析材料
2014/10/06 职场文书
迎新生标语大全
2014/10/06 职场文书
婚前协议书范本
2014/10/27 职场文书
javaScript Array api梳理
2021/03/31 Javascript
Android自定义双向滑动控件
2022/04/19 Java/Android