一年365天的生活视频,用Golang记录每一天的真实

你有没有想过,如果把你一年365天的生活都拍成视频,那会是什么样子?不是那种精心剪辑的Vlog,不是滤镜加持的旅行大片,就是你起床、刷牙...

你有没有想过,如果把你一年365天的生活都拍成视频,那会是什么样子?不是那种精心剪辑的Vlog,不是滤镜加持的旅行大片,就是你起床、刷牙、挤地铁、吃外卖、发呆、翻手机、打哈欠的那些瞬间,听起来有点无聊,对吧?但有意思的是,当这些“无聊”被拼在一起,反而成了最珍贵的东西。

去年年底,我给自己定了个小目标——用Golang写一个程序,每天自动录制一段15秒的生活视频,然后合并成年度合集,我当时想着,反正也坚持不了几天,结果呢?我还真干下来了,今天想跟你聊聊,这个过程里我学到的东西,还有为什么我觉得每个人都可以试试。

为什么选Golang来干这事?

说实话,一开始我用Python写这个程序,Python简单啊,一行import cv2就能调摄像头,但跑了两周,问题来了——内存泄漏、录制卡顿、每次启动还得手动敲命令,我就是个普通人,不是程序员,我哪受得了这些。

后来有个朋友说:“你试试Golang吧,编译出来一个小小可执行文件,双击就能跑。”我试了,真香。

Golang的好处其实就三点:

  • 编译成单文件:不用装Python环境,不用担心版本冲突,发给爸妈用也行。
  • 并发简单:同时录制视频、保存文件、上传云端,Golang的goroutine让这些事各干各的,不打架。
  • 跨平台:我Windows笔记本、MacBook、甚至是树莓派上都能跑同一份代码。

说实话,我写代码水平一般,但Golang的语法真的好懂,你看着for循环、if判断,跟读说明书一样,这不就是我这种“半吊子”最需要的吗?

我的“365天生活视频”项目到底怎么搞的?

先说说硬件,我用的是一个很便宜的USB摄像头,1080p的,淘宝上几十块钱,笔记本自带的也行,但我想让它一直插着,不用占电脑屏幕。

软件方面,核心就是Golang的一个库叫gocv,它是OpenCV的Go语言绑定,安装有点折腾,但一次搞定后,再也不用管,代码结构大概是这样的:

  1. 每天固定时间启动录制:我用time.Ticker每小时检查一次,设置成每天早上8点、中午12点、晚上8点各录一段15秒,为什么这几个时间点?因为我大部分时候在家,这些时间嘛,比较真实——早上刚醒的懵、中午吃饭的狼狈、晚上瘫沙发的废。

  2. 随机选择片段:不是每个整点都录,那样太死板,我用math/rand随机决定要不要录,这样一年下来,你永远不知道下一次录到的是你加班到崩溃,还是你笑到肚子疼。

  3. 自动保存和备份:录好的视频用日期+时间命名,放在videos/2024/这样的文件夹里,然后用os/exec调用rclone自动上传到网盘,我选的是OneDrive,因为白嫖学校的,但理论上,Google Drive、Dropbox、甚至自己的NAS都行。

核心代码其实很短,几十行的事,但就是这个“每天开机就录、录完就传”的自动流程,让我这个懒人坚持了下来。

真实的一年:数据会说话

365天下来,我录了大概187段视频,总时长差不多46分钟,为什么不是365段?因为总有一些天机器坏了、网断了、或者我忘了开机,但这个不完美恰恰是最真实的。

我把这些数据整理成了一张表,看得我有点感慨:

月份 录制天数 最常出现的场景 那天的意外事件
1月 15天 书桌前的键盘声 猫跳上桌打翻咖啡
2月 12天 火锅店的红油 朋友生日抹蛋糕
3月 16天 阳台晒的被子 楼下修路吵到爆
4月 14天 雨天的窗玻璃 突然停电一片漆黑
5月 18天 风扇摇头的影子 蚊子在我脸上拍
6月 13天 西瓜和勺子 空调坏了睡地板
7月 15天 太阳晒在地板上 午睡流口水醒了
8月 16天 饮料瓶堆成山 半夜看球赛尖叫
9月 12天 新学期的路 忘记带钥匙蹲门口
10月 14天 银杏叶和毛衣 煎糊了五个饺子
11月 11天 暖手宝和围巾 暖气漏水慌到哭
12月 15天 圣诞树的彩灯 跨年那天开错视频

数据来自我那个蹩脚程序生成的JSON日志,格式有点乱,但每个数字都是真的。

你看,这些场景没什么特别的,但我看每一段都能想起当时的心情,猫跳上桌打翻咖啡”那段,我本来在写代码,猫爪子直接踩键盘,视频里全是我的惨叫声和黑屏——因为咖啡浇坏了摄像头。

这还只是表面的,我后来用Golang写了个小工具,分析这些视频的元数据,比如当天是晴天还是下雨、我穿的是T恤还是羽绒服、甚至能从灯光判断我那天晚上几点回家。

技术细节的坑,我也踩过

既然说用Golang写,那就得说实话——不是一帆风顺的,踩了几个坑,分享给你,说不定你以后用得上。

第一个坑:文件命名冲突。 我一开始用time.Now().UnixNano()做文件名,结果同一秒内如果录了两次(比如系统时钟不准),直接覆盖,后来改成YYMMDD_HHMMSS格式,但用uuid做最终文件名保险点,Golang的github.com/google/uuid包很好用。

第二个坑:磁盘空间警告。 1080p的15秒视频,每段大概10-30MB,一年下来,几十个G走不了,我用os.Stat检查目录大小,如果超过10G就自动删除最旧的,但保留规则要谨慎,我删掉了6月那段的背影,后来才发现那天我正好接到了入职通知,视频里我高兴得原地转圈,现在想想有点心疼。

一年365天的生活视频,用Golang记录每一天的真实

第三个坑:权限问题。 在树莓派上跑的时候,摄像头设备需要video组权限,Golang程序运行时没有sudo,默默报错也不说,我加了一个err检查,如果打开摄像头失败就重试三次,还是不行就发邮件通知自己,Golang的net/smtp包发邮件很简单。

这些坑,说大不大,说小不小,但正因为自己踩过,才觉得这个项目真实——不是那种“完美代码”,而是一个普通人在跟电脑较劲的记录。

谁适合干这件事?怎么干?

说实话,这不是给所有人都推荐的事,如果你觉得录视频很尴尬、或者你特别讨厌被摄像头盯着,那就算了吧,但如果你像我一样,想看看自己这一年到底干了啥,那试试也无妨。

具体怎么干?我建议几点:

  • 不用追求高清:360p都够,重点是记录,不是电影画质。
  • 别管“好不好看”:你刷牙的样子,比你发朋友圈的照片真实一百倍,不喜欢就删,没人看到。
  • 每天只录几秒:像我那样15秒真的够了,太多了你剪辑的时候想死。
  • 代码开源的拿来用:我的代码丢在GitHub上了,搜“365-life-video-golang”应该能找到,我写得很糙,但能用,参数都在一个config.json里改,比如摄像头的索引、录制时长、保存路径、上传间隔等等。

如果你不会写代码,也有现成的方案,比如Windows上的“相机”应用可以设置定时录制,但手动复制黏贴一年也挺累的,Golang的好处就是,你写一次程序,它自己跑一年,那种“我创造了一个东西在记录我”的成就感,比直接买个监控摄像头强太多了。

一年后的那个晚上

跨年夜,我终于把所有片段拼成了一部长达46分钟的视频,没有配乐,没有转场特效,没有字幕,就是一个接一个的15秒,从1月跳到12月。

我看到自己从裹着羽绒服缩成一团,到穿着短袖汗流浃背,再到秋天裹围巾打喷嚏,我看到桌上的绿植从干枯到发新芽再到被猫咬断(对,又是那只猫),我看到镜子里的发型从平头到大妈卷到秃头,最后回归平头。

最触动我的是一段8月的视频,那天下午三点,我躺在沙发上,风扇呼呼地转,手机屏幕亮着,我对着镜头发呆,突然我笑了,笑得很灿烂——没来由的,那一刻我回忆不起来为什么笑,但视频里的我在笑,这就够了。

那个视频最后10秒,风扇吹过来,我眼睛眯了一下,一切都很平凡,平凡到如果不是录下来,我永远不会记得这个夏天下午发生过什么。

我的Golang程序还在跑,今天早上,它又录了一段——我站在灶台前,煎糊了鸡蛋,嘴里骂了一句“去**的”,摄像头架在冰箱顶上,拍下了我骂骂咧咧的样子还有窗外阴天的天空。

这就是我的一年,也是你的。

本文来自作者[kyadmin]投稿,不代表be365立场,如若转载,请注明出处:http://www.uss1.cn/nengyuan/1970.html

(1)

文章推荐

发表回复

本站作者才能评论

评论列表(4条)

  • kyadmin
    kyadmin 2026-07-24

    我是be365的签约作者“kyadmin”!

  • kyadmin
    kyadmin 2026-07-24

    希望本篇文章《一年365天的生活视频,用Golang记录每一天的真实》能对你有所帮助!

  • kyadmin
    kyadmin 2026-07-24

    本站[be365]内容主要涵盖:be365,be365网站,be365网址,ball365体育,Be365排名

  • kyadmin
    kyadmin 2026-07-24

    本文概览:你有没有想过,如果把你一年365天的生活都拍成视频,那会是什么样子?不是那种精心剪辑的Vlog,不是滤镜加持的旅行大片,就是你起床、刷牙...

    联系我们

    工作时间:周一至周五,9:30-18:30,节假日休息

    关注我们