公司公告

代码版的《本草纲目》毽子舞!程序媛:我不想跳,让代码来跳

来源:发布时间:2022-05-02播放量:1286

“人鱼线、马甲线,腰间的赘肉咔咔掉 ……”

要说最近直播界最火热的话题人物,就是帮助坚持不出专辑的周杰伦,成功取代凤凰传奇“舞蹈界”龙头地位的刘畊宏了!

如果明朝神医李时珍泉下有知,也一定会为自己的中医典籍《本草纲目》,能从流行音乐回归本源,帮助居家人士实现强身健体的效果,而感到欣慰了吧!

图片


 成功转型,引领全民健身热

01


去年年末,刘畊宏夫妻签约MCN机构,成为该公司旗下的夫妻档带货主播,可效果并不理想。

为了寻求突破,刘畊宏结合自己30多年的健身和指导经验,快速转型成了健身博主。

这一次重拾“老本行”的尝试转型,不仅促使刘畊宏快速爆火、成功火出圈,开启了疯狂“吸粉”的模式;还成功开启了通过网络直播,带动全民居家健身的全新运动模式。

虽然刘畊宏没有在带货界撼动李佳琪的一哥地位,但现在他至少是网络界与李起名的头牌网红!

有网友不禁调侃道,李佳琪喊:3,2,1 我的钱没了;刘畊宏喊:1,2,3 我的命没了 ……

据蝉妈妈数据显示,3月26日,刘畊宏只有296.6万粉丝。而4月25日,他的粉丝数达到了4560.8万。不到一个月时间,刘畊宏实现涨粉超4000万。

让刘畊宏获得全民知名度的一大功臣,就是结合老友周董《本草纲目》改变的毽子舞。

虽然动作都很简单,但熟悉、动感的旋律搭配上刘教练活力十足的动作和口号,“魔性的画风”瞬间掀起了全网挑战的热潮。


 程序媛的“另类交作业”

02


面对面向全网的挑战号召,我们走在时代前沿的程序员们自然无法按捺自己的热情 ……

在抖音发起的#本草纲目毽子操挑战#中,一位来自长沙的程序员小姐姐@程序员柠檬就另辟蹊径,用编程编出了代码版的《本草纲目》毽子操!

图片

这样炫酷的方式也吸引了刘教练的注意,称这份作业很“cool”。但由于将刘教练的名字打错了,小姐姐也收获了一波“吐槽” …… 

谈及为何写出代码版《本草纲目》毽子操,小姐姐在媒体采访中表示,当时看到这个毽子操视频觉得很有意思,所以萌生了用代码展现视频的想法。

图片
图片

源代码的部分截图

对于这位程序员小姐姐的做法,网友纷纷调侃:

※ 真的是为难人家代码了,何必这样折磨人家

※ 是不是跳完了本草纲目毽子操之后,电脑也可以瘦下去了?

※ 人家做完是腿酸,你做完是眼花

※ 别人锻炼费体力,程序员锻炼费脑子


 Python版毽子操

03


如何用 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.226.2MB) ├████████████████████████████████████████┤[1/1]  273 kB/s

Downloading 本草纲目毽子操|快来雕塑马甲线!.cmt.xml ...

moviepy 提取视频片段

moviepy 是一个用于视频编辑的 Python 模块,可用于一些基本操作(如剪切、拼接、插入标题)、视频合成、视频处理和创建高级特效,可通过下面命令安装。

pip install moviepy

我们需要用 moviepy 将视频中的部分需求片段转成 gif。

代码十分简洁,我们提取 6-70s 的视频,并保存为gif(代码运行时间大约4-5min,可适当减小提取视频的时间区间)。

from moviepy.editor import *

video = CompositeVideoClip([VideoFileClip("本草纲目毽子操|快来雕塑马甲线!.flv").subclip(670)])
video.write_gif('6-70.gif', fps=12)

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 设置的过大,因为这样会造成输出的文件中有大量的填充字符,导致文件大小剧增。


你有用代码实现过“无用”但有趣的事情吗?



预约报名

华信智原尊重并保护您的隐私

华信智原(太原中心)

地址:太原市高新区平阳南路龙兴街万立科技大厦17层

咨询热线:400-997-8118

备案号:晋ICP备16009028号-1 北京华信智原教育技术有限公司太原分公司

在线
咨询