周末在家,天气好冷好冷啊,我们这边都下雪了!宅在家里没有啥事情,于是炖了只老母鸡,补补身子。
一边炖鸡汤,一边用Python码些好玩的脚本。辛苦了一个周末,菜鸟哥写了一个好玩的小脚本,赶紧跟大家分享一下。
B站上的漂亮的小姐姐真的好多好多,今天我们来玩一个来抓取B站上跳舞的小姐姐视频,并利用视频中大家的弹幕来绘制一个跳动弹幕的舞蹈视频,非常炫酷~~一起来看看吧。
01.弹幕抓取
首先,我们选定一个弹幕比较多的小姐姐舞蹈视频,并下载该视频,同时,利用以下程序来抓取小姐姐视频中的弹幕信息。
上述程序中,首先构造指定日期的弹幕url链接,由于弹幕链接是静态网页,所以直接采用requests来请求网页源代码,并提取弹幕信息,将提取到的弹幕信息进行去重并写入到本地文件即可。
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:810735403
02.视频转化成图片
接下来我们将视频转化为图片,由于视频过长,所以需要提取视频中的一部分,来作为接下来的处理视频,程序如下:
videoCrop = VideoFileClip("video.flv").subclip(18, 33)videoCrop.write_videofile("subvideo.mp4")
上述的程序中,提取了完整视频的18秒到33秒的视频,并保存为mp4文件。提取视频之后,接下来是将视频的每一帧转化为图片并保存到本地的文件夹下,程序如下所示:
上述的程序中,利用opencv来逐帧的读取视频,并按照顺序保存到本地的文件夹中,转化的图片如下图所示。
03.利用百度AI来人像分割转化为二值图
进行完视频转化图片之后,接下来需要进行人像的分割,将小姐姐转化为二值图像,实现人像和背景的分离,这里,可以使用百度AI的人像分割接口,程序如下所示。
上述程序中,利用百度AI的接口来进行人像分割,这里只需要返回二值化的结果即可,我们将返回的二值结果进行处理,并保存为png格式的图片。
04.小姐姐词云生成
有了小姐姐的二值化分割图后,接下来就是利用这些图作为mask,来生成词云图,程序如下所示:
程序中,首先将图片以二进制的形式读入,然后利用jieba来分词并去除分词结果中我们不希望出现的词组;将分好的词组利用stylecloud来进行词云的制作。
这里需要注意的是,stylecloud的源码中是不支持自定义mask的,所以我们需要自己在stylecloud的源码中进行修改添加,让它支持自定义mask。制作好的词云图如下所示。
可以看到,大家的弹幕信息中,大多是对于小姐姐绝妙身材的羡慕和喜欢。接下来我们看一下,如何利用程序将词云制作成视频,并结合原音频进行展示。
05.合成视频
程序首先设置了输出视频的名称和帧率,然后利用opencv,将图片写入到视频文件中去,形成词云视频,最后将词云视频和原视频的音频进行合并,形成我们最终的小姐姐词云视频,合成的视频效果如下所示:
以上就是今天为大家带来的小姐姐词云舞蹈视频,大家也可以自己来做一个喜欢的动态词云视频,合成自己最喜欢的视频。
在这里还是要推荐下我自己建的Python开发交流学习(qq)群:810735403
,群里都是学Python开发的,如果你正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和高级开发教程,欢迎进阶中和想深入Python的小伙伴!