返回顶部
首页 > 资讯 > 后端开发 > Python >利用Python轻松实现视频转GIF动图
  • 920
分享到

利用Python轻松实现视频转GIF动图

2024-04-02 19:04:59 920人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录前言1. 准备工作2. 初探3. 截取区域转动图4. 固定区域转动图5. 添加自定义文本前言 不知道大家是不是有过类似的经历,在看视频的时候觉得某段非常有意思想弄成动图,但是无从

前言

不知道大家是不是有过类似的经历,在看视频的时候觉得某段非常有意思想弄成动图,但是无从下手! 或可以在网上找一些在线工具但是多多少少需要付费或者带有水印之类的,那么!?

对,今天我们就来学习python搞定这一需求吧!

动图效果

1. 准备工作

需要准备用于生成gif的视频文件,我这里用的是上次《用Python制作一个B站视频下载小工具》里案例中的视频。另外,就是需要用到moviepy库,关于这个库更详细的介绍可以查看它的官方文档。

https://zulko.GitHub.io/moviepy/

命令行键入pip安装吧

pip install moviepy

这就搞定第1步了!

2. 初探

这一步也是我们开篇第一张动图的制作脚本。

from moviepy.editor import *

video_path = "F:\PythonCool\视频\【咒术回战】第20集五条悟帅的有些过分了.mp4"
video = VideoFileClip(video_path)
clip = (video.subclip((2,4.5),(2,6.0))
        .resize(0.2))
clip.write_gif("动图搞定了.gif",fps=8)

我们原始视频素材是尺寸1920*1080,帧率是30

视频属性

本次转动图的参数设定如下:

subclip((2,4.5),(2,6.0)选取的是整个视频从2.45秒到2.60秒

resize(0.2)尺寸大小改为原始大小的0.2也就是1/5大小(毕竟动图尺寸大小其文件大小也太大)

write_gif("动图搞定了.gif",fps=8)保存gif的时候将帧率调整为了8

基于上述参数设定下,这个动图一共其实是(2.60-2.45)*8=12张图构成!

动图属性

3. 截取区域转动图

有时候我们可能只需要截取屏幕中指定矩形区域来进行动图的制作,这就要用到crop函数截图区域了。

video.crop(
    x1=None,
    y1=None,
    x2=None,
    y2=None,
    width=None,
    height=None,
    x_center=None,
    y_center=None,
)

参数:

x1y1:矩形区域左上角坐标

x2y2:矩形区域右下角坐标

widthheight:是宽度和高度

x_centery_center:表示x1的坐标为x_center-width/2,x2的坐标为x_center+width/2,y_center类似处理

比如,我们截图人物所在区域制作动图代码如下:

crop = (video.subclip((2,4.5),(2,6.0))
        .resize(0.2)
        .crop(x1=70,y1=0, x2=310,y2=216)) 
crop.write_gif("裁剪.gif",fps=8)

裁剪

这里关于左上角和右下角坐标的确定可以采用preview方法预览视频,然后鼠标点击对应位置来获取。

video.resize(0.2).preview()

4. 固定区域转动图

对于上面那个动图中 的搞定了,我们希望它常驻,那么可以通过截图搞定了出现这一时刻的内容,然后覆盖到原来位置常驻即可。

snapshot = (crop
            # 截图区域
            .crop(x1=100,y1=190, x2=140,y2=216) 
            # 截取的时间段(1秒的时候)
            .to_ImageClip(1)
            # 设置位置(左上角,和截取区域的左上角一致)
            .set_position((100, 190))
            .set_duration(crop.duration))
# 合并
composition = CompositeVideoClip([crop, snapshot])
composition.write_gif('覆盖.gif', fps=8)

覆盖

5. 添加自定义文本

对于上面这个操作,我们还有很多方法来完成,比如用一张带有搞定了的图片去覆盖(和上面的案例类似,只是不需要单独截图而是读取一张现成的);另外,我们还可以通过添加蒙版再加上自定义文字的形式来玩。

from moviepy.video.VideoClip import TextClip

# 蒙版
mask = (# 长宽为40*20的颜色为黑色的mask
     ColorClip((40, 20), (0, 0, 0))
     # 设置位置(同第4节)
        .set_pos((100, 190))
        .set_duration(crop.duration)
        )
# 文字
text = (TextClip("搞定啦",
                 fontsize=30, color='white',
                 font='SimHei', interline=-25)
        .set_pos((80, 160))
        .set_duration(crop.duration))

composition = CompositeVideoClip([crop, mask, text])
composition.write_gif('覆盖.gif', fps=8)

自定义文本

到此这篇关于利用Python轻松实现视频转GIF动图的文章就介绍到这了,更多相关Python视频转GIF内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 利用Python轻松实现视频转GIF动图

本文链接: https://lsjlt.com/news/163579.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 利用Python轻松实现视频转GIF动图
    目录前言1. 准备工作2. 初探3. 截取区域转动图4. 固定区域转动图5. 添加自定义文本前言 不知道大家是不是有过类似的经历,在看视频的时候觉得某段非常有意思想弄成动图,但是无从...
    99+
    2024-04-02
  • Python实现GIF动图以及视频卡通化详解
    目录前言环境依赖核心代码gif动图卡通化视频卡通化总结前言 参考文章:Python实现照片卡通化 我继续魔改一下,让该模型可以支持将gif动图或者视频,也做成卡通化效果。毕竟一张图可...
    99+
    2024-04-02
  • Mac上快速将视频转化为GIF动图
    找到需要转为GIF的视频,使用QuickTime Player打开,找到屏幕左上角的QuickTime Player菜单,点击【编辑】-【修剪】 视频下方会出现一个时间轴,拖动选取自己想要的时间段,修剪完成后保存  3、右键剪辑好的视频,...
    99+
    2023-08-31
    macos gif
  • 通过Python将MP4视频转换为GIF动画
    目录运行环境如何从 MP4 视频中提取帧将帧变成 GIF创建 MP4 到 GIF GUIPython 可用于读取常见的 MP4 视频格式并将其转换为 GIF动画。当然,如果你愿意,你...
    99+
    2024-04-02
  • 利用Python实现普通视频变成动漫视频
    目录容我废话一下一、思路流程二、图像转动漫三、视频帧读取与视频帧写入容我废话一下 最近几个月,毒教材被曝光引发争议,那些编写度教材的人着实可恶。咱程序员也没有手绘插画能力,但咱可以借...
    99+
    2024-04-02
  • 利用Python实现无损GIF动图的制作
    目录生成gif图无损压缩先讲一讲整理的目标 1.挑选喜欢的照片用python制作GIF图 2.动图太大了,对它无损压缩 生成gif图 调用python库imageio可以轻松实现 读...
    99+
    2023-05-15
    Python制作无损GIF动图 Python制作无损GIF Python 无损GIF Python GIF
  • Java用20行代码实现抖音小视频批量转换为gif动态图
    本文主要介绍了Java用20行代码实现抖音小视频批量转换为gif动态图,分享给大家,具体如下: 效果图  本功能实现需要用到第三方jar包 jave,JAVE ...
    99+
    2024-04-02
  • 如何通过Python将MP4视频转换为GIF动画
    这篇文章将为大家详细讲解有关如何通过Python将MP4视频转换为GIF动画,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。运行环境你需要安装 OpenCV 绑定以读取 MP4 文件并将视频中的每一帧转换为...
    99+
    2023-06-22
  • python编程简单几行代码实现视频转换Gif示例
    目录一、前言二、教程1. 安装必备库moviepy2. 写入代码3. 转换效果4. GIF很大的解决方案5. 截取视频长度转换6. 指定转换后的图片大小(分辨率)示例一、前言 很多网...
    99+
    2024-04-02
  • Python使用MoviePy轻松搞定视频编辑
    目录I. 简介II. 安装III. 使用1. 创建一个视频剪辑对象2. 剪辑视频3. 剪切视频片段4. 改变视频尺寸和速度5. 合并视频6. 合并多个视频7. 用混合模式合并视频8....
    99+
    2023-05-19
    Python MoviePy实现视频编辑 Python MoviePy视频编辑 Python MoviePy视频 Python MoviePy
  • 微信小程序实现自动播放视频模仿gif动图效果实例
    需求背景: 在小程序页面插入gif动态图,但gif图一般体积比较大,转而用自动播放视频的模式来模拟gif图的效果,丰富页面展示。自动播放的视频,无控制条,无声音,自动循环播放。 技术...
    99+
    2024-04-02
  • Python利用yarl实现轻松操作url
    目录1.简介2.在Python中利用yarl高效处理url2.1 利用yarl解析url信息2.2 利用yarl构造url2.3 利用/、%运算符快捷合成url1.简介 大家好我是费...
    99+
    2024-04-02
  • 微信小程序如何实现自动播放视频模仿gif动图效果
    这篇文章主要介绍了微信小程序如何实现自动播放视频模仿gif动图效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。需求背景:在小程序页面插入gif动态图,但gif图一般体积比较...
    99+
    2023-06-20
  • Python实现图片和视频的相互转换
    目录使用背景一、视频转图像二、图像转视频使用背景 有时候我们需要把很多的图片合成视频,或者说自己写一个脚本去加快或者放慢视频; 也有时候需要把视频裁剪成图片,进行后续操作。 这里提供...
    99+
    2024-04-02
  • Python利用Selenium实现自动观看学习通视频
    目录一、登录二、进行一个页面的视频观看三、所有视频的观看四、总代码其他一、登录 以信号与系统课程为例,直接输入网址则出现登录界面: 由于学号登录需要验证码,因此选择电话登录: ...
    99+
    2024-04-02
  • Android利用FlexboxLayout轻松实现流动布局
    前言相信大家应该都有所体会,在以前我们要实现流动性布局,比较繁琐,Google开源了一个项目叫FlexboxLayout,相信大家都不陌生。下面我们来学习一下FlexboxLayout基础知识,并通过一个案例来加深理解。如果你对Flexbo...
    99+
    2023-05-31
    android flexboxlayout 流动布局
  • Python怎么实现gif动图倒放
    今天小编给大家分享一下Python怎么实现gif动图倒放的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。开发环境 :pycha...
    99+
    2023-06-30
  • Python 轻松实现可视化大屏
    提到数据可视化,我们会想到 Plotly、Matplotlib、Pyecharts等可视化库,或者一些商用软件Tableau、FineBI等等。如果你希望操作更简单、展现效果更强大...
    99+
    2024-04-02
  • Python实现视频分解成图片+图片合成视频
    目录一、python视频拆分+图片合成(源码一)1.python视频拆分2.python图片合成二、python视频拆分+图片合成(源码二)三、python视频拆分(源码三)一、py...
    99+
    2024-04-02
  • 如何用python反转图片,视频
    目录利用python反转图片/视频安装库反转效果实现代码项目地址利用python反转图片/视频 准备:一张图片/一段视频 python库:Pillow,moviep...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作