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爬虫之打包生成exe文件
Nov 06 Python
Ruby元编程基础学习笔记整理
Jul 02 Python
python批量添加zabbix Screens的两个脚本分享
Jan 16 Python
python中文乱码不着急,先看懂字节和字符
Dec 20 Python
python SSH模块登录,远程机执行shell命令实例解析
Jan 12 Python
Python+tkinter使用40行代码实现计算器功能
Jan 30 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
django 实现电子支付功能的示例代码
Jul 25 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
Jul 11 Python
python不相等的两个字符串的 if 条件判断为True详解
Mar 12 Python
python图片指定区域替换img.paste函数的使用
Apr 09 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
linux下 C语言对 php 扩展
2008/12/14 PHP
zf框架的校验器InArray使用示例
2014/03/13 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
SESSION存放在数据库用法实例
2015/08/08 PHP
PHP解压tar.gz格式文件的方法
2016/02/14 PHP
php实现微信扫码自动登陆与注册功能
2016/09/22 PHP
PHP终止脚本运行三种实现方法详解
2020/09/01 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
JavaScript基本对象
2007/01/11 Javascript
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
jQuery实现动态添加和删除input框代码实例
2019/03/29 jQuery
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
python求crc32值的方法
2014/10/05 Python
Python 分享10个PyCharm技巧
2019/07/13 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
python plotly绘制直方图实例详解
2019/07/22 Python
flask框架json数据的拿取和返回操作示例
2019/11/28 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
Prototype是怎么扩展DOM的
2014/10/01 面试题
幼儿园亲子活动总结
2014/04/26 职场文书
书法大赛策划方案
2014/06/04 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
战友聚会致辞
2015/07/28 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
2019最新婚庆对联集锦!
2019/07/10 职场文书
Vue实现下拉加载更多
2021/05/09 Vue.js
SQL注入的实现以及防范示例详解
2021/06/02 MySQL