知行编程网知行编程网  2022-02-10 17:00 知行编程网 隐藏边栏 |   抢沙发  19 
文章评分 0 次,平均分 0.0
前言
最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿遍又亿遍,久久不能离开!
看着仙紫小姐姐的蹦迪视频,除了一键三连还能做什么?突发奇想,能不能把小仙女的蹦迪视频转成代码舞呢?
说干就干,今天就手把手教大家如何把跳舞视频转成代码舞,跟着仙女姐姐一起蹦起来~
视频来源:

一、核心功能设计
总体来说,我们需要分为以下几步完成:
1、从B站上把小姐姐的视频下载下来
2、对视频进行截取GIF,把截取的GIF进行ASCII字符转换
3、把转换的字符gif根据每一帧的顺序重命名排序
4、将排序后的帧gif转换为图片
5、将字符图片合并成视频
6、视频添加背景音乐
二、实现步骤
1. 下载视频
首先我们需要准备工作,安装you-get用来下载视频。

我用 Python 做了个小仙女代码蹦迪视频

安装完成后,通过you-get将视频下载到本地。
 
仙女姐姐蹦迪视频链接:https://www.bilibili.com/video/BV124411Q7iV

我用 Python 做了个小仙女代码蹦迪视频

这样我们就把视频成功下载到本地了。

我用 Python 做了个小仙女代码蹦迪视频

2. 截取GIF并转换成ASCII字符
 
接下来我们要将下载的视频进行GIF截取,方法也比较多,用python也可以实现。
 
因为后面需要把GIF转成ASCII字符,截取的GIF时长尽量不能太长,所以这里就介绍通过迅雷播放器自带的gif截取工具,每次截取20s。
 

我用 Python 做了个小仙女代码蹦迪视频

将每段截取出来之后, 可以按照顺序1 2 3将gif命名。

我用 Python 做了个小仙女代码蹦迪视频

我用 Python 做了个小仙女代码蹦迪视频

使用ASCII Animator将截取的GIF每一帧转换成ASCII。我们可以通过设置每100个像素宽度的字符数修改转换的字符密集程度。输出类型可以选择动画ASCII(.gif)

我用 Python 做了个小仙女代码蹦迪视频

我们可以在目录文件下找到temp文件,里面就是存储的每个gif中每一帧转换的ASCII的gif。下面我们就是需要处理这些ASCII的gif,可以将文件夹拷贝到python项目下面。
 

我用 Python 做了个小仙女代码蹦迪视频

3. GIF重命名
 
老规矩,最开始我们把后面要用到的库全部导入。
所有转换成功的ASCII的gif已经拿到了,为了后面我们将图片合并成视频,接下来我们就要把这些gif进行排序。
 
我们先从temp文件夹中读取,筛选出所有后缀名是 .gif 的,然后根据命名规则,将这些gif重命名,方便后面排序。
 
gif重命名之后,所有的gif都已经按照每一帧的顺序排好了。后面我们合成视频的时候,只要根据图片的名称来进行合并添加就可以了。
 

我用 Python 做了个小仙女代码蹦迪视频

4. gif转换为图片jpg
 
接下来,我们要把按帧顺序排列的gif转换成jpg图片

我用 Python 做了个小仙女代码蹦迪视频

 
5. 合成代码舞视频
 
图片合成视频,这里我们使用python-openvc模块实现,同样如果之前没有安装的小伙伴,需要先安装下。
我们可以将图片文件夹的路径传入参数,还可以通过fps设置每秒多少张图片。

我用 Python 做了个小仙女代码蹦迪视频

 
6. 添加背景音乐
 
代码舞已经完成了,最后一步就是把视频中的背景音乐添加到代码舞中。我们使用的是moviepy 模块,截取原视频的背景音乐并保存,最后再将代码舞视频中插入音频保存。
 
至此,小仙女跳舞视频转成代码舞就完成啦~
 
最后的代码舞视频我已经上传到B站了,大家可以一起来欣赏下喔。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享