什么是ASCII视频流服务?
其实这个名字是咱胡乱起的,具体叫啥我也不清楚,但效果如下:
大家可以在自己的命令行里试下,效果比较暴力,就不截图了
如何搭建这么一个服务?
需要用到的工具:
- ffmpeg
- hit9/img2txt
- HFO4/plus1s.live
- Go和Python的运行环境
1.执行以下命令将视频中的某个片段(或全部)截取为图像
ffmpeg -i HongkongReporter.mp4 -r 5 -ss 00:01:13 -t 00:00:15 %03d.png
以上命令代表将HongkongReporter.mp4
的第1分13秒后的15秒以每秒5帧的速度保存为图像,图像名格式为001.png 002.png ……
效果如下:
2.使用修改过的hit9/img2txt将图像转换为ASCII画.
原版hit9/img2txt只能单张转换,我稍微改了下,可以批量转换并保存为txt。修改后的版本:https://github.com/HFO4/img2txt/blob/gh-pages/img2txt.py
clone下来后修改img2txt.py
第246行的目录为上一步存放图像的目录,然后执行:
pip install img2txt.py
python img2txt.py h
稍等片刻,ASCII字符文件会存放到与img2txt.py
同级的pic
目录下
3.部署在线服务
将HFO4/plus1s.live克隆下来,并将上一步得到的pic目录替换到此项目的目录下,修改stream.go
的第13行为你得到的单帧图像的总个数。保存后执行:
go build stream.go
./stream
然后程序会默认开放1926端口,使用curl 您的ip:1926
命令即可查看效果。