python版某某人最火毽子操
最近刘老师的本草纲目毽子操真的火遍全网,魔性的舞蹈带动了全民健身的热潮,今天有点空闲时间,整点有意思的,做一个Python版的毽子操。本文将从素材下载>>提取视频片段>>制作gif2txt
进行讲解。
you-get 下载视频素材
作为一款优秀的视频下载工具,如果没有安装 you-get 的小伙伴,可以直接通过下面语句进行安装。
pip install you-get
网上的视频素材有很多,我从B站找了一个播放量比较高的视频,可以先通过you-get -i
命令查看视频信息
D:\funny_demo> you-get -i https://www.bilibili.com/video/BV1Pa411v7vgsite: Bilibilititle: 本草纲目毽子操|快来雕塑马甲线!streams: # Available quality and codecs [ DASH ] ____________________________________ - format: dash-flv container: mp4 quality:高清 1080P size: 68.3 MiB (71568955 bytes) # download-with: you-get --format=dash-flv [URL] - format: dash-flv720 container: mp4 quality:高清 720P size: 43.9 MiB (46037629 bytes) # download-with: you-get --format=dash-flv720 [URL] - format: dash-flv480 container: mp4 quality:清晰 480P size: 27.2 MiB (28503438 bytes) # download-with: you-get --format=dash-flv480 [URL] - format: dash-flv360 container: mp4 quality:流畅 360P size: 12.2 MiB (12841765 bytes) # download-with: you-get --format=dash-flv360 [URL] [ DEFAULT ] _________________________________ - format: flv container: flv quality:高清 1080P size: 77.5 MiB (81286715 bytes) # download-with: you-get --format=flv [URL] - format: flv720 container: flv quality:高清 720P size: 53.1 MiB (55646607 bytes) # download-with: you-get --format=flv720 [URL] - format: flv480 container: flv quality:清晰 480P size: 26.2 MiB (27428400 bytes) # download-with: you-get --format=flv480 [URL] - format: flv360 container: flv quality:流畅 360P size: 12.4 MiB (12992160 bytes) # download-with: you-get --format=flv360 [URL]
为了后续处理更快速,这里选择下载【清晰 480P】即可,执行下面命令完成下载,文件默认存放在当前目录中。
D:\funny_demo>you-get --format=flv480 https://www.bilibili.com/video/BV1Pa411v7vgsite: Bilibilititle: 本草纲目毽子操|快来雕塑马甲线!stream: - format: flv480 container: flv quality:清晰 480P size: 26.2 MiB (27428400 bytes) # download-with: you-get --format=flv480 [URL]Downloading 本草纲目毽子操|快来雕塑马甲线!.flv ... 100% ( 26.2/ 26.2MB) ├████████████████████████████████████████┤[1/1] 273 kB/sDownloading 本草纲目毽子操|快来雕塑马甲线!.cmt.xml ...
moviepy 提取视频片段
moviepy 是一个用于视频编辑的 Python 模块,可用于一些基本操作(如剪切、拼接、插入标题)、视频合成、视频处理和创建高级特效,可通过下面命令安装。
pip install moviepy
我们需要用 moviepy 将视频中的部分需求片段转成 gif。
om moviepy.editor import *video = CompositeVideoClip([VideoFileClip("本草纲目毽子操|快来雕塑马甲线!.flv").subclip(6, 70)])video.write_gif('6-70.gif', fps=12)
代码十分简洁,我们提取 6-70s 的视频,并保存为gif(代码运行时间大约4-5min,可适当减小提取视频的时间区间)。
gif2txt
gif2txt: Gif image to to Ascii Text. (Just a toy),即 gif -> ASCII
无论你用任何方式将项目 clone 到本地,在使用时你只需进入项目文件夹,并打开 cmd,运行以下命令即可完成转化。
ython gif2txt.py [Gif PATH] -m 80 -o [OUT_PATH xxx.html]
例如:
D:\funny_demo\gif2txt>python gif2txt.py 6-70.gif -m 80 -o 6-70_out.html
有一点值得注意,生成的 gif 会因为代码中的 img 缩放导致形状发生变换,如果需要可以,修改源文件 gif2txt.py。
不要把 width,height 设置的过大,因为这样会造成输出的文件中有大量的填充字符,导致文件大小剧增。
最后,html中的字符变换的比较快,录gif的效果不太好,大家就先看看图片算了。感兴趣的可以自己动手尝试一下。