本文将以哔哩哔哩–乘风破浪视频为例,you-get下载视频,同时利用python爬取B站视频弹幕,并利用opencv对视频进行分割,百度AI进行人像分割,moviepy生成词云跳舞视频,并添加音频。
1. 导入模块
1.1 下载所需模块
我们需要下载很多的模块,所以我们可以使用os.system()方法来自动安装所需模块,当然也有可能下载失败,特别是opencv-python,多安装几次就好啦.
1.2 导入模块
在这里统一先导入所需的模块
2. 视频处理
2.1 下载视频
从B站视频下载舞蹈视频:
https://blog.csdn.net/qq_45176548/article/details/113379829
使用you-get方法获取B站视频
2.2 视频分割
使用opencv,将视频的分隔为图片,本文截取 800 张图片来做词云。
opencv中通过VideoCaptrue类对视频进行读取操作以及调用摄像头
2.2.1代码展示
2.2.2 结果展示
2.3 人像分割
2.3.1创建应用
利用百度AI,创建一个人像分割的应用
2.3.2 Python SDK参考文档
利用参考文档(https://cloud.baidu.com/doc/BODY/s/Rk3cpyo93?_=5011917520845),来进行人像分割
2.3.3 代码展示
2.3.4 结果展示
3. 弹幕爬取
由于技术原因,我们改为此视频来获取弹幕,视频链接(https://www.bilibili.com/video/BV1jZ4y1K78N/?spm_id_from=333.788.recommend_more_video.0),哈哈哈哈哈。
3.1 网页分析
通过F12,找到pagelist,通过原始url,找到cid
3.2 观察历史弹幕
清楚元素,展开弹幕列表
日期列表,只有2021年的,点击其他日期,出来了history请求,点击查看
3.3爬取弹幕
3.3.1构造时间序列
该视频发布于2020-08-09,本文爬取该视频2020-08-08到2020-09-08日的历史弹幕数据,构造出时间序列:
3.3.2 爬取数据
3.3.3结果展示
4.生成词云图
4.1 评论内容机械压缩去重
对于一条评论来说,有些人可能手误,或者凑字数,会出现将某个字或者词语,重复说多次,因此在进行分词之前,需要做“机械压缩去重”操作。
4.2 添加停用词和自定义词组
4.3生成词云图
5. 合成视频
如官方文档所介绍的,moviepy是一个用于视频编辑Python库,可以切割、拼接、标题插入,视频合成(即非线性编辑),进行视频处理和自定义效果的设计。总的来说,可以很方便自由地处理视频、图片等文件。