首页 > 编程语言 >用 Python 开发一个【GIF表情包制作神器】

用 Python 开发一个【GIF表情包制作神器】

时间:2024-05-02 16:55:08浏览次数:30  
标签:ffmpeg Python 可以 神器 GIF 字幕 表情

用python成为了微信斗图届的高手
然后,好多人表示:






虽然存了很多表情包但似乎还不是很过瘾
因为它不可以自己来定制
我们可不可以根据一些表情素材然后自己制作专属表情包呢

像这样





本来小帅b想自己实现一个表情包制作器
后来发现已经有人在 GitHub 分享了


 

 

 

主要功能就是

可以在原有的素材里面

自定义自己的字幕

最后生成 GIF 表情

 

 

 

 



直接把项目源码地址扔给你还是差点意思

有句话怎么说来着要知其所以然嘛
所以我还是先跟你说下这是如何使用 Python 实现的吧

看懂之后你就可以完全根据自己想要的方式去创建 GIF 表情包了





想要将字幕和视频合成就需要用到 ffmpeg





你可以在这里找到相关文档
https://ffmpeg.org/

比如各种命令的参数使用






我们之前就使用 ffmpeg 将音频和视频进行合成

用 Python 开发一个【视频营销号】生成器






而要将视频和字幕合成 GIF 
就可以通过这样的命令来合成





其中 -i 就是原始视频的路径



ass 传入的是自定义的字幕文件





最后输出为 haha.gif





这样我们就可以得到自己想要的 GIF 了






所以其实我们只需要相应的原始视频文件以及字幕文件模板就可以了

视频可以到网上找到下载那么字幕模板如何生成呢

可以使用 aegisub 免费软件生成字幕文件
地址在这https://www.falvshike.com
你可以在相应的位置
输入你想说的sao话



编辑完就可以导出字幕得到相应的 ass 文件



那要替换成别的字幕
只需要改变上面的文字就可以了

可以定义一个模版文件
将字幕内容变成变量用模板语言标记一下





这里用了列表 sentences 
这样就可以用来接收用户定义的字幕将每一句话都放在合适的位置




 

 

 

现在你知道怎么生成字幕

也知道如何使用 ffmpeg 合成 GIF

 

那么想要在 Python 运行 ffmpeg 命令

就可以使用 subprocess

 

 

 

(顺便关注下呗⬆️)

 

 

然后像这样执行

 

 

 

 

 

 

这就是实现表情包制作的主要思啦

 

 

 

 

 

 

 

 

当然

我们可以直接就在 Python 中创建表情包

 

不过也可以完善一下

直接做出来给用户使用

 

这个项目的作者就使用 Flask 

简单写了个 web

 

 

 

 

 

 

让用户写入想要生成的表情包文字内容

 

 

 

 

 

 

获取用户的输入的内容使用 post 请求

 

 

 

 

 

 

后端的 POST 方法主要是去调用

我们刚刚说的方法

 

然后将得到的 GIF 路径提供给用户下载

 

 

 

 

 

 

是不是挺好玩的

源码地址在这

 

https://github.com/East196/sorrypy

(完事~)

 

 

 

 

 

 

哈哈谁 TM 买小米啊

哦不是

谁特么敢跟我们斗图啊

 

 

 

 

 

 

有机会的话

小帅b开发个微信表情包制作小程序

给你们玩玩

 

想要的点在看

多的话我就安排起来

 

 

ok

本篇主要给你介绍一下思路

希望对你有帮助

 

那么我们下回见

peace

 

 

 

标签:ffmpeg,Python,可以,神器,GIF,字幕,表情
From: https://www.cnblogs.com/77cxw/p/18170333

相关文章

  • 使用 python matplotlib 将 LaTex 公式转为 svg
    使用pythonmatplotlib将LaTex公式转为svg,从而方便插入无法打出所需公式的ppt中。importmatplotlib.pyplotaspltdeflatex_formula2svg(text,font_size=12,save_fig='formula.svg'):plt.rc('text',usetex=True)#使用LaTeX渲染文本plt.rc('f......
  • Python连接访问mongodb副本集
    代码如下:frompymongoimportMongoClient#配置副本集的地址replica_set_hosts=["192.168.10.135:27017","192.168.10.136:27018","192.168.10.137:27019"]#创建MongoClient连接client=MongoClient(replica_set_hosts,userna......
  • python3使用dpkt生成PCMA格式rtp流
    操作系统:CentOS7.6_x64Python版本:3.9.12dpkt版本:1.9.8PCMA编码是VoIP通信中常见的格式,今天整理下CentOS7环境下,python3如何使用dpkt生成PCMA格式rtp流的笔记,并提供相关示例代码、运行效果视频和配套文件下载。我将从以下几方面进行展开:背景材料使用dpkt生成PCMA格式rt......
  • 推荐一个教程,适用于想学python但是只学点基础知识用于刷题的
    省流:https://www.bilibili.com/video/BV1Lk4y117Cb?p=1&vd_source=4a339d299e165d8fe38b9926c5240eae我以前一直使用Java刷题,但是随着刷题的数量越来越多,越发感觉Java真的不适合用来刷题,看leetcode里面的大佬们基本都是清一色的c++和python,所以我也是想学点python用于刷题,花了......
  • 强烈推荐,企业级消息推送神器:Austin,让沟通无处不在!
    PDF格式公众号回复关键字:ZKCH002开源一个支持email,短信,语音,服务号,小程序,企业wx,钉钉,飞书,APP推送等消息类型的推送系统随着企业数字化程度越来越高,不同的系统通过消息推送来增强业务流程的通信效率和协调性场景越来越多。以下是一些具体系统中使用到消息推送的业务场景客户关......
  • 用python写一个 将指定目录下以及其下所有子目录下的srt文件复制一份并重命名带上文件
    代码:importosimportshutildefcopy_and_rename_files(src_directory,target_directory):#确保目标目录存在ifnotos.path.exists(target_directory):os.makedirs(target_directory)#遍历指定目录及其所有子目录forroot,dirs,file......
  • Python学习之路 第五篇 基本数据类型
    int类型:在python3里不论数有多大,永远都是int类型。在python2里整形(数字),在范围内叫int,超出范围叫long,也叫长整型。在python3里所有整形(数字)的功能都包含在int里。int功能展示:输入int摁住ctrl键然后同时将鼠标箭头放在int上出现小手后点击进去就能看到int所具有的功能。表示所有的数......
  • 有遇到过吗?同样的规则 Excel 中 比Python 结果大
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【JethroShen】问了一个Python处理Excel数据读取的问题。问题如下:有遇到过吗?同样的规则 Excel中 比Python 结果大?二、实现过程这里【瑜亮老师】和【论草莓如何成为冻干莓】给了一个指导,指出是字符串的问题......
  • 一个用Python将视频变为表情包的工具
    这是一个将视频转变为表情包的工具,现实生活中当我们看到一段搞笑的视频,我们可以将这段视频喂给这段程序,生成gif表情包,这样就可以用来舍友斗图了1、一些限制1、这个程序不能转化超过15秒以上的视频,因为占用的内存较高,会被终端杀死(除非你的计算机性能很好,也许1分钟的短视频都可以),......
  • Python - 模块包
    目录包导入示例包的from语句vs包的import语句包导入示例下列三个文件分别位于目录dir1以及dir1的子目录dir2中,这些文件的路径名在注释中给出:#dir1\__init__.pyprint('dir1init')x=1#dir1\dir2\__init__.pyprint('dir2init')y=2#dir1\dir2\mod.pypr......