python编程简单几行代码实现视频转换Gif示例
作者:曲鸟 发布时间:2021-09-02 03:34:13
标签:python,Gif,视频转换
一、前言
很多网站提供视频转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. 转换效果
刚刚的GIF图虽然只有几秒,但大小却有9M之多!
(还是已经缩放了分辨率的情况下)
如果需要转换的视频有几十秒,那文件大小就得上百兆甚至更多!
那该怎么解决呢?
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倍之多!
而且视觉效果也没有多大的区别
5. 截取视频长度转换
我们还可以通过设置subclip
参数来指定转换的视频范围:
subclip:截取原视频中的自t_start
至t_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


猜你喜欢
- 在编写爬虫爬取数据的时候,因为很多网站都有反爬虫措施,所以很容易被封IP,就不能继续爬了。在爬取大数据量的数据时更是瑟瑟发抖,时刻担心着下一
- 代码import numpy as npimport matplotlib.pyplot as pltfrom sklearn.datase
- 1.变量的赋值操作只是多生成了一个变量,实际上还是指向同一个对象# -*- coding: utf-8 -*-class CPU: &nbs
- 今天在做一个老项目时,遇到一个需求,在javascript将url中的参数加密解密,从网上找发现了这段有用的代码:<SCRIPT LA
- 安装 iupdatable 包pip install iupdatableTimer类主要函数:获取 Unix 时间戳(精确到秒):time
- 前言在以前,商业分析对应的英文单词是Business Analysis,大家用的分析工具是Excel,后来数据量大了,Excel应付不过来了
- 一、绘制成品二、绘制代码实现本文效果的整体思路是:加载库—选择背景音乐—绘制心的外轮廓&md
- Flask框架介绍Flask诞生于2010年,是Armin ronacher用Python语言基于Werkzeug工具箱编写的轻量级Web开
- 许多网页开发者想从ASP.NET 页面传递一个值到另一个页面(比如从一个框架frame页面到一个弹窗页面)。看了代码就明白了。呵呵。(一)向
- 前言Django的模型(Model)的本质是类,并不是一个具体的对象(Object)。当你设计好模型后,你就可以对Model进行实例化从而创
- 临时表与内存表内存表,指的是使用Memory引擎的表,建表语法是create table … engine=memory。这种 表的数据都保
- 记得之前learn python一书里面,因为当时没有官方支持,只能通过hack的方式实现抽象方法,具体如下 最简单的写法class MyC
- 当我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻
- 蒙特卡罗方法是一种统计模拟方法,由冯·诺依曼和乌拉姆提出,在大量的随机数下,根据概率估计结果,随机数据越多,获得的结果越精确。下面我们将用p
- 主键索引排序失效环境:MySQL8有一张用户信息表user_info,建表DDL如下:CREATE TABLE `user_info` (
- 正则表达式并不是Python的一部分。正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自
- 使用 scipy.signal 的 argrelextrema 函数(API),简单方便import numpy as np import
- 本文为大家分享了virtualenv建立多个Python独立虚拟开发环境,供大家参考,具体内容如下1、安装virtualenv:pip in
- Hinton在论文《Improving neural networks by preventing co-adaptation of fea
- 在用户登录windows操作系统的时候,如果触发到了登录表单的密码录入框上,并且此时按下了“大写锁定键(Caps Lock)”,那么界面上会