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之赋值,简单也不简单
Sep 24 Python
在Python中使用AOP实现Redis缓存示例
Jul 11 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
详解Python最长公共子串和最长公共子序列的实现
Jul 07 Python
Flask web开发处理POST请求实现(登录案例)
Jul 26 Python
python使用matplotlib画饼状图
Sep 25 Python
Python入门Anaconda和Pycharm的安装和配置详解
Jul 16 Python
Django实现web端tailf日志文件功能及实例详解
Jul 28 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
Python restful框架接口开发实现
Apr 13 Python
Python自动化测试PO模型封装过程详解
Jun 22 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 采集书并合成txt格式的实现代码
2009/03/01 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
jQuery 幻灯片插件(带缩略图功能)
2011/01/24 Javascript
jQuery.extend 函数详解
2012/02/03 Javascript
动态加载js和css(外部文件)
2013/04/17 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
DOM事件探秘篇
2017/02/15 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
jQuery实现的事件绑定功能基本示例
2017/10/11 jQuery
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
原生js实现购物车
2020/09/23 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
python中字符串前面加r的作用
2015/06/04 Python
python实现拓扑排序的基本教程
2018/03/11 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
使用Python制作一个打字训练小工具
2019/10/01 Python
Python对接支付宝支付自实现功能
2019/10/10 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
如何理解python中数字列表
2020/05/29 Python
中国网上药店领导者:1药网
2017/02/16 全球购物
如何开启linux的ssh服务
2015/02/14 面试题
总经理助理职责
2014/02/04 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
导游词之五台山
2019/10/11 职场文书
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android