python版本草纲目
大家好,我是丁小杰!
最近刘老师的本草纲目毽子操真的火遍全网,魔性的舞蹈带动了全民健身的热潮,今天有点空闲时间,整点有意思的,做一个Python版的毽子操。本文将从素材下载>>提取视频片段>>制作gif2txt
进行讲解。
you-get 下载视频素材
最为一款优秀的视频下载工具,目前 you-get 已在 Github 获得 43.7K 的星标,如果没有安装 you-get 的小伙伴,可以直接通过下面语句进行安装。
pip install you-get
网上的视频素材有很多,我从B站找了一个播放量比较高的视频,可以先通过you-get -i
命令查看视频信息。
D:\funny_demo> you-get -i https://www.bilibili.com/video/BV1Pa411v7vg
site: Bilibili
title: 本草纲目毽子操|快来雕塑马甲线!
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/BV1Pa411v7vg
site: Bilibili
title: 本草纲目毽子操|快来雕塑马甲线!
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/s
Downloading 本草纲目毽子操|快来雕塑马甲线!.cmt.xml ...
moviepy 提取视频片段
moviepy 是一个用于视频编辑的 Python 模块,可用于一些基本操作(如剪切、拼接、插入标题)、视频合成、视频处理和创建高级特效,可通过下面命令安装。
pip install moviepy
我们需要用 moviepy 将视频中的部分需求片段转成 gif。
from 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 同样是 github 上一个开源的小脚本,引用作者的简介,gif2txt:
Gif image to to Ascii Text. (Just a toy),即 gif -> ASCII
无论你用任何方式将项目 clone 到本地,在使用时你只需进入项目文件夹,并打开 cmd,运行以下命令即可完成转化。
python 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的效果不太好,大家就先看看图片算了。感兴趣的可以自己动手尝试一下哦。
参考
https://github.com/soimort/you-get
https://github.com/hit9/gif2txt
- 点赞
- 收藏
- 关注作者
评论(0)