admin管理员组

文章数量:1568329

生成GIF动图🚀

由于目前自己是在做大模型,还有一些树莓派硬件之类的东西,一是大模型的流式输出的例子需要用到GIF,二是做单片机的时候例如一些灯的闪烁和变化需要用到,所以之前也是一直有这个打算所以就记录一下这个生成GIF的这个过程,我自己是先用录屏软件先把视频录好,然后再用python程序将视频转换成GIF图的这样一个过程。


文章目录

  • 生成GIF动图🚀
  • 1.录屏工具OBS(我自己用的其他的也行)
    • 1.1 下载OBS
    • 1.2 安装OBS
    • 1.3 配置OBS(基础设置/输出路径/输出格式等)
      • 1.3.1 首次安装初始化设置
      • 1.3.2 视频输出格式设置
      • 1.3.3 更改录制视频的保存路径
      • 1.3.4 设置视频源(录哪个软件或显示器的视频)
      • 1.3.5 设置开始录制和结束录制的快捷键
    • 1.4 录制视频
  • 2.使用python将MP4文件转换为GIF动图
    • 2.1 基础转换代码
    • 2.2 压缩转换代码
  • 结束

1.录屏工具OBS(我自己用的其他的也行)


OBS (Open Broadcaster Software) 是一个免费且开源的视频录制和直播软件。它广泛应用于游戏直播、网络研讨会、教育培训等场景,支持多平台操作系统(如Windows、macOS和Linux)。OBS具有强大的功能,包括实时视频和音频捕获、场景切换、视频编码、以及与流媒体平台的无缝集成。其高度可定制的用户界面和插件支持,使用户能够根据需求调整设置,满足各种复杂的录制和直播需求。

1.1 下载OBS

我自己的话是比较喜欢使用OBS进行录屏的,而且视频的清晰度质量上也有一定的保证,当然如果有其他录屏软件也是可以的,不管是QQ的快捷键录屏,还是腾讯会议的是录屏其实都是可以用的,然后这里我自己是Windows所以就点了windows,点完之后就自动下载了。

电玩Download之后就会自动下载然后进入到这个页面(我自己是用谷歌浏览器下载的)。

然后双击下载的安装包就可以了。

1.2 安装OBS


然后安装的时候也没什么特殊的到这里愿意换个安装路径就换个安装路径就行。

然后点Install等待安装。

然后出现这个界面就算安装完成了。

1.3 配置OBS(基础设置/输出路径/输出格式等)

1.3.1 首次安装初始化设置


然后下一步选择基础画布的分辨率和帧率,因为我自己的是4K 144HZ的屏幕所以直接就给拉满了,之后也方便我自己录制一些教程。

然后点下一步就行,之后还会跳出一个测试完成的界面,直接点击取消就可以。
之后进入到这个页面就是

1.3.2 视频输出格式设置

OBS默认的录制获得的格式是Matroska模式(.mkv)格式,是一个可以存储多种数据的很优秀的格式,但是为了之后在程序中,或者我们自己打开查看视频的时候,不会出现格式原因打不开的情况,所以这里我们把输出的格式转换成MP4格式。点击右下角的设置。

然后左侧菜单栏选择输出,然后再输出菜单栏的录像菜单栏里选择录像格式。


选择MP4格式,简简单单才是真!

设置完成之后提示如果要录制多个音轨还是要用MKV格式,我们一个音轨都不录,我们只录视频我们什么都不怕!

1.3.3 更改录制视频的保存路径

因为我们后续可能要录很多素材,而OBS录制视频的保存路径是C盘下用户下的的Video路径,而且我还要录制4K的视频为了防止之后C盘爆满,所以要对这个路径进行一下修改。

首先在D盘下新建一个OBSvedio文件夹,当然这里位置和文件夹名字都可以自己选。

在设置的左侧菜单栏的输出选项卡内找到录像中的录像路径设置,然后顺手把录像路径设置下面的生成没有空格的文件名的对号给打上,避免之后生成视频名字里面用于python程度读取的时候有非法字符。

找到录像路径,然后给生成没有空格的文件名打上对号之后,点击录像路径后面的浏览。

然后找到D盘下之前新建的OBSvideo文件夹,点开文件夹。

里面是空白的,然后点击右下角的选择文件夹。

然后录像路径就设置完成了,然后点击应用。

应用按键变按被锁定之后再点击确定即可退出设置回到主页面。

1.3.4 设置视频源(录哪个软件或显示器的视频)

之后需要设置我们录制的视频的源头,也是录制哪个应用或者哪个显示器的视频。
点击来源中的加号。

然后点击显示器采集

然后点击确认就行。

再然后在这里选择你要录制的显示器之后点击确定

1.3.5 设置开始录制和结束录制的快捷键

为啥要设置快捷键,因为如果不设置的话就需要在软件中点击开始录制,会把软件录上,即使是可以通过设置将软件隐藏掉,则开始录制之后也会需要先把软件给关掉自己才能看见想录的内容。
设置快捷键就在设置的快捷键部分,然后分别选中开始录制和结束录制,选中之后按下你想使用的快捷键即可,我这里开始录制设置Ctrl+NUM 1(Ctrl 加小键盘的数字1不然我发现其他快捷键好多都冲突)。然后点击应用,点击确定就行了,之后将OBS缩在后台的时候就可以直接点击按键开始录制和结束录制了。

1.4 录制视频

全部配置好之后后点击右上角的最小化缩到底部菜单栏。

之后可以将界面打开到准备开始录制的页面,准备开始录制的时候安装快捷键开始录制ctrl+NUM 1 (Ctrl 加小键盘的数字1),开始录制之后屏幕下放的OBS图标会出现一个红点。

然后再按快捷键ctrl+NUM 1 (Ctrl 加小键盘的数字1)结束录制的时候,红点会消失。


之后就会在1.3.3中设置的视频保存文件夹下生成一个格式为mp4的视频文件。

2.使用python将MP4文件转换为GIF动图


在得到了录制的视频MP4文件之后,可以直接用python的moviepy库,将MP4的视频转成gif,输入下面的命令安装moviepy库,然后新建项目,选解释器这个就不说了,不会的同学找一下周围会的同学帮助一下。

pip install moviepy

将视频转换成GIF的基础代码如下,之后这个库还可以进行裁减抽帧等一系列操作,我们先直接转换成GIF。

2.1 基础转换代码

from moviepy.editor import VideoFileClip

# 加载MP4视频文件 视频路径换成自己的
clip = VideoFileClip("视频文件.mp4")

# 将视频转换为GIF并保存
clip.write_gif("output.gif")

运行之后出现如下进度条。

再之后出现使用imageio构建output.gif的图片的提示,这个过程时间略长,我转了一个5秒的视频,用了差不多50s。

进入到项目路径文件夹下查看差不多两2500KM多一点,但GIF图像如果过大的话CSDN是不允许插入的,但是要插到博客里需要给降到1500KB以下基本就可以,不然会提示插入失败。

一般双击图片就可以双击查看动图了,我这边的动图查看默认使用WPS打开了,然后Pycharm默认是不能打开GIF文件的,所以智能从外部查看,之前也稍微找了有没有Pycharm查看GIF的插件,没找到比较好的。
这里的GIF图片是一个跑深度学习例子代码的一个动图。

2.2 压缩转换代码

为了压缩GIF的大小我们主要使用两招,裁剪视频和降低帧率,虽然还有缩小视频尺寸,但是变糊的话显然是最不希望看到的情况。
裁剪视频就是在使用VideoFileClip读取视频的时候调用subclip方法,降低帧率就是在保存的时候使用一个fps参数,我记得我们录制的视频在默认开始的时候我调成了60fps,所以下面的代码设置成15之后,会缩小生成的GIF文件的大小。

from moviepy.editor import VideoFileClip

# 裁剪视频
clip = VideoFileClip("2024-08-19_16-02-11.mp4").subclip(3, 6)


# 降低帧数并保存
clip.write_gif("output.gif", fps=15)  # 设置帧率为15帧每秒

结束

转换的代码很简单,基本流程就是录屏加转换,而且GIF还可以设置成博客的封面,转成GIF没啥难度,就自己录个屏就行了。

本文标签: 插图封面博客PythonGIF