Timelapse 的延时记录
原文由 Matthias Endler 于 发布,订阅该博客
Timelapse 是一款适用于 macOS 的轻量开源录屏工具。它每秒截取一张屏幕截图,最终合成一段视频。
为了庆祝它今天出人意料地发布了 1.0 版本,我在此献上这个项目历程的一部“延时影片”。走到今天,足足用了十年。

2011 年——一切的开始
说实话,我已经不记得当初为什么要写这个工具了。想来大概是自己需要一个录屏工具吧……
2011 年 5 月启动这个项目时,我正在攻读计算机科学硕士。也许是为了大学课程才需要这个工具;不过更有可能的是,我只是在找个借口逃避写作业。
那段时间我写了很多类似的小工具。主要是为了解决自己的小需求、学习一门新编程语言,或者纯粹为了好玩。
其中包括给赛百味(美国连锁快餐品牌)做的随机三明治生成器、受 WriteRoom 启发、由键盘驱动的绘画应用 DrawRoom,以及卖给客户的必备 CMS 系统。毫不意外,它们都没怎么成功。

但有一点我可以肯定:当时我对所有现有的录屏工具都不满意。它们大致可以分为三类:
- 要花钱的专有软件,或者会在后台偷偷联网的软件。
- 在 macOS 上无法使用的工具。
- 人们在论坛或 GitHub Gist 上流传的一次性小脚本,脆弱又零散,基本都无法像宣传的那样正常工作。
剩下的工具里,没有一个提供延时录制功能;于是我决定自己写一个。
听起来很壮阔,但实际上我只做了一天。2011 年 5 月 11 日英勇地提交了五次之后,它就在那里闲置了七年……
2018 年
在有任何令人兴奋的事情发生之前,漫长的时间就这样过去了。
2018 年 1 月,仿佛凭空出现一般,第一位用户提交了一个 bug 报告,标题是hung when creating the avi 😱。原来是一位来自加拿大的游戏开发者 juul1a 正尝试用这个工具来记录她开发独立游戏的进度——这也太酷了吧?
为了帮她解决问题,我决定做一次整体清理,终于写下了该如何使用这个程序的说明,添加了 requirements.txt,并将工具从 mencoder 移植到了 ffmpeg。
在那之后,timelapse 终于可以正式登场了。🎬 以下是她用延时功能制作的视频中的一些实拍片段:

那时,这个工具依然很不稳定,只能通过命令行使用,但我已经开始看到把它做成一个正经应用的潜力;只是我一直没找到时间。
2018 年 10 月,我决定在 Hacktoberfest 期间寻求帮助。我创建了几个 issue,并打上了 hacktoberfest 标签,试图找到贡献者。
然后,我就等着了。
首先,Shreya V Prabhu 通过在视频文件名中加入时间戳,修复了新录制会覆盖旧录制的问题。接着 Abner Campanha 和 Shane Creedon(已不在 GitHub 上)搭建了基础的测试结构。Gbenro Selere 为 Travis CI 添加了 CI 流水线。真的奏效了,项目在那之后的状态好了很多!
2019 年
一年过去,Kyle Jones 添加了贡献指南,而我则把 CI 流水线迁移到了新发布的 GitHub Actions 上。
Chaitanya 通过将视频创建从线程改为独立进程,修复了录制结束时程序会卡死的问题。他持续让代码库变得更加健壮,并成为了核心贡献者,负责审查 pull request 和处理版本发布。
多亏了 orcutt989,应用现在用上了 Python 3.6 的类型提示。
gkpln3 添加了对多显示器配置的支持。录制的屏幕始终是鼠标所在的那个。
2020 年
时间快进到今天,在将近十年之后,我们终于用出色的 py2app 打包工具创建了一个真正的 macOS 应用。这应该能让非开发者也能使用这个工具了。
回到未来
我们的小小旅程就到此为止了。
直到 1.0 版本,已经过去了很长时间。这个项目见证了开源协作的奇妙之处,我很自豪能与来自世界各地的贡献者一起做这个项目。它不必是一个改变人生的项目,也能把那些喜欢动手创造、乐在其中的人们聚在一起。如果故事就此结束,我也能接受。不过,我觉得不会就此结束。致下一个十年!
彩蛋
开头的视频是我完成本文过程的延时记录。
真是太 meta 了。
随机一篇博客
评论
登录后参与讨论