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中内置的日志模块logging用法详解
Jul 12 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
Python常用模块之requests模块用法分析
May 15 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
Sep 20 Python
tensorflow使用range_input_producer多线程读取数据实例
Jan 20 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
Django如何实现防止XSS攻击
Oct 13 Python
Python代码风格与编程习惯重要吗?
Jun 03 Python
用Python爬取某乎手机APP数据
Jun 15 Python
Django基础CBV装饰器和中间件
Mar 22 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 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
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
2011/10/31 PHP
PHP遍历数组的几种方法
2012/03/22 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
PHP文件缓存smarty模板应用实例分析
2016/02/26 PHP
ThinkPHP 模板引擎使用详解
2017/05/07 PHP
详解PHP文件的自动加载(autoloading)
2018/02/04 PHP
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
JavaScript常用函数工具集:lao-utils
2016/03/01 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
jQuery替换节点元素的操作方法
2018/03/18 jQuery
js 图片转base64的方式(两种)
2018/04/24 Javascript
微信小程序实现收藏与取消收藏切换图片功能
2018/08/03 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
[02:44]2014DOTA2 国际邀请赛中国区预选赛 大神红毯秀
2014/05/25 DOTA
在Python的Django框架上部署ORM库的教程
2015/04/20 Python
Python装饰器基础详解
2016/03/09 Python
简述Python中的进程、线程、协程
2016/03/18 Python
Python编程实现及时获取新邮件的方法示例
2017/08/10 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
Python将8位的图片转为24位的图片实现方法
2018/10/24 Python
python将字典列表导出为Excel文件的方法
2019/09/02 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
开水果连锁店创业计划书
2013/12/29 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
冬季安全检查方案
2014/05/23 职场文书
环保标语大全
2014/06/12 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书