三行代码使用Python将视频转Gif的方法示例

目录
  • 一、前言
  • 二、教程
    • 1. 安装必备库moviepy
    • 2. 写入代码
    • 3. 转换效果
    • 4. GIF很大的解决方案
    • 5. 截取视频长度转换
    • 5. 指定转换后的图片大小(分辨率)

一、前言

很多网站提供视频转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").subclip(t_start=1, t_end=2).resize((488, 225)))
clip.write_gif("movie.gif", fps=15)

设置为每秒15帧后,文件大小只有2m多,一下缩小了4倍之多!

而且视觉效果也没有多大的区别

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)

5. 指定转换后的图片大小(分辨率)

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内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python将视频或者动态图gif逐帧保存为图片的方法

    本文是基于opencv将视频和动态图gif保存为图像帧.可以根据输入视频格式的不同,修改第21行. 对动图的处理不同于视频,PIL库包含对图像序列的基本支持.当打开gif图像时,自动加载第一帧.当图像读取完成时,抛出EOFError异常.我们可以使用seek()与tell()函数完成图像帧的读取. 本代码的前部分是对文件的读取.数据集文件结构如下: |--datasets |--action1 action1_1.gif action1_2.gif ...... |--action2 actio

  • 三行代码使用Python将视频转Gif的方法示例

    目录 一.前言 二.教程 1. 安装必备库moviepy 2. 写入代码 3. 转换效果 4. GIF很大的解决方案 5. 截取视频长度转换 5. 指定转换后的图片大小(分辨率) 一.前言 很多网站提供视频转GIF的功能,但要么收费要么有广告 实际上我们通过python,几行代码就能够实现视频转gif 二.教程 1. 安装必备库moviepy pip install moviepy -i https://pypi.tuna.tsinghua.edu.cn/simple 2. 写入代码 from

  • Python实现视频自动打码的示例代码

    目录 序言 准备工作 实现原理 模块 素材工具 代码解析 完整代码 序言 我们在观看视频的时候,有时候会出现一些奇怪的马赛克,影响我们的观影体验,那么这些马赛克是如何精确的加上去的呢? 本次我们就来用Python实现对视频自动打码! 准备工作 环境咱们还是使用 Python3.8 和 pycharm2021 即可 实现原理 将视频分为音频和画面: 画面中出现人脸和目标比对,相应人脸进行打码: 处理后的视频添加声音: 模块 手动安装一下 cv2 模块 ,pip install opencv-pyt

  • Python实现视频下载与合成的示例代码

    目录 模块使用 开发环境 案例实现 1.明确需求 2.代码实现步骤 实现代码 模块使用 requests >>> pip install requests (数据请求 第三方模块) re # 正则表达式 去匹配提取数据 json 开发环境 Python 3.8 解释器 Pycharm 2021.2 版本 建议 win + R 输入cmd 输入安装命令 pip install 模块名 如果出现爆红 可能是因为 网络连接超时 切换国内镜像源 案例实现 1.明确需求 采集内容, 先分析一个视频

  • 20行代码教你用python给证件照换底色的方法示例

    1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流. 2.读取图片并显示 imread():读取图片: imshow():展示图片: waitkey():设置窗口等待,如果不设置,窗口会一闪而过: import cv2 import numpy as np # 读取照片 img=cv2.imread('girl.jpg') # 显示图像 cv2.imshow('img',img) # 窗口等待的命令,0表示无限等待 cv2.waitKey(0) 效果如下: 3.图片缩

  • 在iOS中给视频添加滤镜的方法示例

    「众所周知,视频可以 P」,今天我们来学习怎么给视频添加滤镜. 在 iOS 中,对视频进行图像处理一般有两种方式: GPUImage 和 AVFoundation . 一.GPUImage 在之前的文章中,我们对 GPUImage 已经有了一定的了解.之前一般使用它对摄像头采集的图像数据进行处理,然而,它对本地视频的处理也一样方便. 直接看代码: // movie NSString *path = [[NSBundle mainBundle] pathForResource:@"sample&q

  • 使用python脚本自动生成K8S-YAML的方法示例

    1.生成 servie.yaml 1.1.yaml转json service模板yaml apiVersion: v1 kind: Service metadata: name: ${jarName} labels: name: ${jarName} version: v1 spec: ports: - port: ${port} targetPort: ${port} selector: name: ${jarName} 转成json的结构 { "apiVersion": "

  • Python更改pip镜像源的方法示例

    问:为何要更改pip镜像源? 答:因为默认使用的镜像源是https://pypi.org/,国内访问的时候是其慢无比,特别是有时紧急安装库的时候:这时候我们就可以换成国内的镜像源网站,来提升下载的速度,以获得更好的编写代码体验 具体操作流程: 1.使用Win键(也就是键盘上那个Windows图标键)+ R键打开运行窗口 2.输入英文下的点(.)或者使用命令:%USERPROFILE% 3.入到用户家目录后,点击鼠标右键新建一个名为pip的文件 4.进入这个新建的pip文件:然后创建一个名为pip

  • python同时替换多个字符串方法示例

    本文介绍了python同时替换多个字符串方法示例,分享给大家,具体如下: import re words = ''' 钟声响起归家的讯号 在他生命里 仿佛带点唏嘘 黑色肌肤给他的意义 是一生奉献 肤色斗争中 年月把拥有变做失去 疲倦的双眼带着期望 今天只有残留的躯壳 迎接光辉岁月 风雨中抱紧自由 一生经过彷徨的挣扎 自信可改变未来 问谁又能做到 可否不分肤色的界限 愿这土地里 不分你我高低 缤纷色彩闪出的美丽 是因它没有 分开每种色彩 年月把拥有变做失去 疲倦的双眼带着期望 今天只有残留的躯壳

  • python自动生成证件号的方法示例

    前言 在跟进需求的时候,往往涉及到测试,特别是需要用到身份信息的时候,总绕不开身份证号码这个话题.之前在跟一个互联网产品的时候,需要很多身份证做测试,又不想装太多软件自动生成(有需要的小伙伴可自行搜索身份证号码自动生成软件),按照身份证规则现编也比较浪费时间,在处理身份数据时,Python就非常有用了. 方法示例如下 # Author:BeeLe # -*-coding:utf-8-*- # 生成身份证号码主程序 import urllib.request import requests fro

  • Python如何获取实时股票信息的方法示例

    如何获取实时股票信息 股票信息的接口有很多,之前大家常用的是新浪的,但在年初的时候,新浪的接口突然不能使用,给大家造成了很大的困扰,为此网上也有很多教程教大家如何从新浪获取数据,跟着教程弄了半天也不行,索性换到126(也就是网易了),感觉速度都还不错. 首先我们看下接口地址:http://api.money.126.net/data/feed/1000001,money.api 其中的1000001就是股票代码了,跟新浪的不同,他的第一位代表交易所,后面6位是股票代码 0:上交所 1:深交所 2

随机推荐