程序員挑戰(zhàn)龍拳 | 用代碼實(shí)現(xiàn)劉畊宏龍拳
Hi 大家好,我是 DHL。分享有用、有趣的硬核原創(chuàng)內(nèi)容,Kotlin、Jetpack、性能優(yōu)化、系統(tǒng)源碼、算法及數(shù)據(jù)結(jié)構(gòu)、動(dòng)畫、大廠面經(jīng)。
程序員來(lái)挑戰(zhàn)龍拳了,我用代碼實(shí)現(xiàn)了劉畊宏的龍拳,對(duì)比原版,來(lái)看看字符版龍拳怎么樣。
我相信有很多小伙伴會(huì)好奇,視頻中的字符是如何做出來(lái)的。難道是程序員一個(gè)一個(gè)字符敲出來(lái)的?
No,No,No,這肯定不是一個(gè)一個(gè)字符敲出來(lái)的,如果真是一個(gè)一個(gè)字符敲出來(lái)的,那么不吃不喝也得花好幾年的時(shí)間,如果不是敲出來(lái)的那么肯定是通過(guò)某些軟件或者技術(shù)實(shí)現(xiàn)的。我們先來(lái)看看如何實(shí)現(xiàn)一個(gè)字符視頻。大概分為三步。
- 將視頻的每一幀轉(zhuǎn)成圖片
- 將生成圖片轉(zhuǎn)成 ASCII 圖形(字符化)
- 最后將步驟 2 生成的圖片作為序列幀,一幀一幀播放
想要實(shí)現(xiàn)上面三步,大概有兩種方式:
- 通用方式,通過(guò)軟件實(shí)現(xiàn)(適合所有人)
- 通過(guò)代碼實(shí)現(xiàn)(適合程序員)
通用方式,通過(guò)軟件實(shí)現(xiàn)字符視頻
這里需要用到兩款軟件 Adobe Premiere Pro? 、Ascgen2
- 首先,使用 Adobe Premiere Pro 將視頻每一幀轉(zhuǎn)成圖片
- 然后,通過(guò) Ascgen2 將上一步生成的圖片轉(zhuǎn)換為 ASCII 文本圖形(字符化),如下圖所示:
- 最后將生成的 ASCII 文本圖形,通過(guò) Adobe Premiere Pro 以序列幀的方式導(dǎo)入
這種方式適用于所有人,但是費(fèi)電腦,因?yàn)?Adobe Premiere Pro? 對(duì)電腦的配置有要求,另外 Adobe Premiere Pro 是收費(fèi)軟件,如果對(duì)這種方式感興趣的小伙伴,可以在后臺(tái)回復(fù),我會(huì)在出一期教程。今天這篇文章主要介紹如何通過(guò)代碼實(shí)現(xiàn)字符視頻。
通過(guò)代碼實(shí)現(xiàn)字符視頻
這里我直接使用開源庫(kù)中的 python? 腳本 video2chars.py,如果下面的地址下載不了,可以在公眾號(hào):ByteCode 后臺(tái)回復(fù) "video", 即可下載 。
??https://git.1024dhl.com/https://github.com/ryan4yin/video2chars/blob/v0.3/src/video2chars.py??
PS:前綴 ??https://git.1024dhl.com?? 是 GitHub 的加速器,在 GitHub 地址前面添加這個(gè)前綴,提高 GitHub 訪問速度和下載速度,我會(huì)在后面的文章和視頻中介紹
想要運(yùn)行上面的 python? 腳本,還需要安裝 opencv-python,執(zhí)行下面的命令即可安裝。
pip3 install opencv-python===3.4.13.47 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
opencv-python? 安裝成功之后,執(zhí)行下面命令,運(yùn)行 python 腳本即可。
pthton3 video2chars.py
我將安裝過(guò)程中遇到的錯(cuò)誤,做了一個(gè)匯總,如果你在安裝過(guò)程中遇到了其他問題,可以在評(píng)論區(qū)分享,一起討論。
安裝 opencv-python 遇到的錯(cuò)誤
錯(cuò)誤一
ERROR: No matching distribution found for numpy
出現(xiàn)這個(gè)問題,我猜測(cè)是因?yàn)閲?guó)內(nèi)網(wǎng)絡(luò)環(huán)境的原因,通過(guò) -i? 指定 aliyun 的倉(cāng)庫(kù)下載即可。
pip3 install opencv-python===3.4.13.47 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
錯(cuò)誤二
ERROR: Could not build wheels for opencv-python which use PEP 517 and cannot be installed directly
上面的錯(cuò)誤,是因?yàn)闆]有指定 opencv-python 版本號(hào),默認(rèn)使用最新版本導(dǎo)致的,執(zhí)行下面命令即可解決。
pip3 install opencv-python===3.4.13.47 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com