Posts
失业一周年

失业一周年

今天 失业恰满一周年 2024都做了些啥 在上篇博客中做了些简要介绍. 这里主要介绍下 2025开始到现在都做了些啥

记录人生🎥

事件记录

离职不久后就开始了记录日常 在mac电脑的日历上开始 列举每天都做了什么 断断续续. 直到去年11月正式下决心要做内容后 每天都会记录 从只记录关键事件 到现在事无巨细看个A片也会记录下🐶, 包括具体事件起始的大致时间.

日常录制

纠结了很久 在2月底买了台二手的大疆Action3 开始以视频的记录记录生活的点点滴滴 目前大部分记录老婆孕期的饮食 我的付出 做后以后钳制老婆的证据🐶

桌面录制

初衷记录自己写代码、做产品的过程 起初考虑分发问题(衍生于文本内容的分发的思考) 根据长视频/短视频对同一录制的做不同的后处理 去年有花一周用tauri整合cameradesktop的demo 想着自己搞来的 后来发现screen studio都有这些功能了 果断放弃了☹️ 错过去年黑五的折扣付钱时也是犹犹豫豫 后面还是选择用OBS 免费也够用 先别考虑那么多

成就达成✅

离职的首要任务也算是在今年实现了 春节总算是备孕成功了 这一过程也是非常艰辛啊 2024一点影都扑不着 为此我夫妻俩还特意检查了生育能力😂 排除了这些不确定后 前同事的建议还是极其有效的 那就是 检测排卵 命中那段时间也是频繁跑医院 于是就开启了我们的妊娠之路.

月度总结📑

一月

元旦开通了Youtube的英文频道并发布了第一个Shorts 24年11月开始录的几个视频 并为此准备了一个脚本 包括些基本的视频处理:

  • 音频转录
  • ass字幕(Karaoke特效)
  • 章节信息绘制
  • 封面合成(首帧的语义分割)
  • 字幕校准

发了三个Shorts 内容也还是打气 下决心之类的 并对脚本做些了修正

将之前shadcn网站的模板项目更新了下 同步ui 以及多平台的部署 cloudflare pages github pages vercel

从模板项目拉分支 DIY博客站点 之前在职就想整的 拖拖拉拉到今年🤦 将博客内容、 内容处理、 站点 分成三个部分 目标是长期独自维护的headless cms

二月

年后得来喜讯 其后第二天就是老婆约定带老丈人和姐姐侄子们到动物园区玩耍的日子 被我及时打停 由我代替老婆陪他们玩了一天 紧接着就是忙碌的期待而又紧张养胎历程

同时 我也开始了桌面视频的录制 考虑到长视频的封面 整了个封面的小项目 参考之前感觉不错的移动端项目视频封面 想根据视频的类别生成对应的模板类封面 然后能用excalidraw画布那样编辑 后面也感觉越来越偏 及时打住了 做了几个封面还是找不到那种感觉

然后是字幕 我将先前视频脚本中的stt模块独立出来 包了层shell 便于提取字幕文件 区别于Shorts 视频一长 键盘的噪音 还有我那蹩脚的英语 whisper产生了大量错误及幻觉 我花了大量的时间对字幕进行修正

最后 我的第一款产品计划是文本内容分发的web app 月底启动了对应的开发工作 之前有做过twitter apioauth demo打算在此基础上添加登陆等能力

此外 我成了一名全职的家庭主夫😢 老婆嫌弃单位的饭菜太油 不健康 我负责起来家里的饭菜 之前会偶尔做一做 经常也是偷懒下下面条 吃吃周边的预制菜 现在得支持老婆点菜了😂 同时 我也开始了日常录制

三月

我直接把next-saas-starter一些相关的代码迁移了过来 打算直接做内容分发app, 计划在此基础上再逐个集成社交媒体OAuth的能力 然后阅读了相关平台的一些文档 做了些基础的调研 其中

  • Twitter是最为宽松的 直接注册个账号就能用api
  • Youtube更为严苛些 需要提供隐私协议 还需要self-prove的视频
  • LinkedIn需要landing page证明你的业务
  • Meta旗下的社交媒体有统一的开放平台 需要更加完整的商家认证

当然 以上是获取平台写权限才需要的 仅设计读操作登陆能力的话则要宽松不少

很快我就意识到 还是有必要花功夫 单独维护一个saas模板 基于基础模板 便于后续能与多个web app合到一起 便停下了内容分发app到工作 转向saas模板的功能开发 并录制桌面视频

此外 日常录制后的存储也是个问题 hevc的存储大小远远超出了 mac的空间 为此我准备了视频整理、合并、压缩的shell, 你可以在这个repo了解更多

还有语音识别的低准确率也让我头疼 第一个录制视频就让我意识到键盘声对识别结果的影响 没有稳定的收入来源 我果断拒绝了一切收费选项 好在我找到了UVR 可以帮我提取人声 其余的免费模型我也懒得试了 我的字幕处理从单文件变成了双文件

我直接在VSCode里纠正字幕, 再结合Shotcut的波形进行定位和跳转 多文件与程序间的切换 我实在是忍受不了 立即放下一切 开始了我的字幕编辑器

有了Cursor的帮助 编程效率确实有了大幅度的提升 尤其是第一步 我往往会纠结半天 我参考了Youtube的字幕编辑器 直接截图喂给Cursor就得到了不错的UI和交互 这次我更清晰的感觉到自身角色的转变 不再是单单的开发工程师 这是做给我自己的产品 我现在是一名产品工程师 作为用户自身 哪里用不惯直接上手就能改

当涉及到复杂的交互及逻辑 目前的AI还是差点意思 时间轴部分的代码怎么生存都不太行 把之前Vue写的代码给他改也没改明白 最后还得自己接管 时间轴这块的逻辑大都是自己手写

由于不太会react 重构花了我不少时间 AI直接将状态都塞一块 臭长臭长 累计到1500行的时候我决定对其拆分 项目本身就不大 我懒得整外部的状态管理库了 还是useContext一把梭 但也发现了一些问题 我将Provider 细分为 Video,Subtitles,Workspace,Timeline,History,Clipboard,GroupSelection, 并依次嵌套为

<EditorContext.Provider value={value}>
    <VideoProvider>
        <SubtitlesProvider>
            <WorkspaceProvider>
                <TimelineProvider>
                    <HistoryProvider>
                        <ClipboardProvider>
                            <GroupSelectionProvider>{children}</GroupSelectionProvider>
                        </ClipboardProvider>
                    </HistoryProvider>
                </TimelineProvider>
            </WorkspaceProvider>
            </SubtitlesProvider>
    </VideoProvider>
</EditorContext.Provider>

状态的读取依赖于状态的嵌套顺序 比如 我无法在SubtitlesContext中读取HistoryContext, 但又需要在编辑Subtitles的时候添加History来支持undo/redo

四月

我将时间轴的时间标记和波形绘制单独整合到了独立的library 并发布到了github packages, 相较于npm github提供了免费的私有library

当前的时间标记和波形设计是两块独立的canvas 由于绘制性能 它们会阻塞视频的播放 我将其canvas的绘制转移至worker当中 并给library添加了demo 你可以在media-kit预览其效果

再往后修复了一些bug 我的字幕编辑器已经基本满足了我的使用要求 还有些低频使用的部分暂且先搁置 后续也会将字幕纠正的过程给录制下来 发现并记录遇到的问题 有时间再修一修

做着做着就偏离原本计划的轨道😅 也不知是好是坏

然后又迎来的倦怠期 通过大量的沙雕漫画解说来填充内心的空缺 这一状态一直持续到现在 也就这篇博客的开始

Updated at