利益相关声明:作者与文中产品有直接的利益相关(开发者、自家产品等)

Matrix 首页推荐

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。 

文章代表作者个人观点,少数派仅对标题和排版略作修改。


拍完只是第一步

过去几年里,包括你我在内,越来越多的人购入了各种各样能拍视频的电子小玩意:手里拿的,身上挂的,甚至天上飞的。与此同时,人手一支的智能手机的视频性能也在迅猛发展,许多过去只在专业视频机上才能看到的参数和功能,普通人点几下屏幕便可轻松用上。

如果有幸真的在过着一个值得记录的美好生活的话,这些技术进步自然要善加利用。日常逛街遛娃吃吃喝喝、周末短途出游、长假上山下海走遍世界,每次回到家都会产出少则数 GB,上不封顶的大量视频文件。在插着存储卡拷贝文件时,难免陷入思考:拍是拍完了,然后呢?

拍视频那自然是为了看。但与照片不同,视频文件实在是太大了,大到哪怕钞能力拉满,开个 12TB 的 iCloud,仍然没法优雅解决「我想随时看之前拍的东西」的问题:超大视频是绝无可能放到手机里的,这意味着每次想看的时候,都要现场从云上拉取。视频越大,载入时间越长,足够让人失去耐心。

看到这里,你可能会说 NAS 等自托管存储方案。这个理论上是可行的,但还是有几个问题:

  • 多谢 AI,硬盘价格已经起飞了,并且一年半载内看不到回落的迹象;
  • 国内家用网络的上行带宽是很有限的,在公网环境加载家里的高码率视频时,等待过程仍然很痛苦;
  • 维护 NAS 以及稳定的公网访问,仍然需要一定的技术门槛和持续工作量。

同时,我还有以下几个假设:

  • 绝大多数的人都并不是所谓的「内容创作者」,专业的视频内容制作并非我们的兴趣,因此也不需要特别多「素材」的概念;
  • 承认吧朋友们,大多数扔进 NAS 里的东西,基本就是吃灰的命。特别是长视频,你是绝对不会再把它们掏出来完整看一遍的;
  • 在持续拍摄记录的过程中,我们真正会每次打开都能露出笑容的,都是一些散落其中的片段,短则数秒(甚至只是一张 live photo),长则一两分钟。其余很多内容并无长期保存必要。

于是,一个理想的视频工作流应该是这样的:

  1. 持续录制长视频;
  2. 从长视频中剔除无意义、纯浪费时间和存储的片段,保留下相对有意思的部份,存入硬盘/NAS 等冷存储目的地;
  3. 再从有意思的部份中,挑出一些真正会反复观看的精华短片,保存到 iCloud 相册中,所有设备都能随时随地回看;
  4. 如果有时间的话,把有意思的部份作为视频素材,剪辑一些轻度的 vlog 等作品。

带着以上明确的需求,我开始搜索 Apple 生态里能满足的工具。但最后惊讶的发现,从剪映到达芬奇,或者苹果自家的 iMovie 和 Final Cut Pro,抑或 App Store 里浩如烟海的 app,没有一个能把这件看起来不是很复杂,但对整个工作流至关重要的事情做对。

于是,作为一个近 20 年的苹果产品用户,以及有多年专业音视频开发经验的技术工作者,我给自己,以及可能也有类似需求的你,做了一个把「从长视频里截取片段」这件事做到极致的产品:

  1. 能简单的在视频里标记很多个或长或短的片段或者截图、Live Photo 时刻,然后一键把这些内容导出到 Apple Photos 或者文件系统;
  2. 导出内容的时间戳要能对应其真实时间,这样才能在 Apple Photos 里和其他照片/视频正确排序,不像微信发过来的那样全是乱套的;
  3. 其他媒体元数据,例如拍摄的 GPS、设备、镜头等信息,都尽可能和原始视频保持一致;
  4. 要能正确保留 HDR 视频与图像;
  5. 要能直接在预览和导出时应用 LUT,不用再打开那些又大又沉的专业视频编辑器;
  6. 尽可能像苹果自己做的一样,不需要特别 fancy 的交互,但一定要能稳定高效解决问题。

我把它叫做 Trimly。

Trimly is an adverb that means in a neat, orderly, smartly arranged, or well-groomed manner. It describes actions done with tidiness and smart appearance, and is the adverbial form of the word "trim"

How Trimly Works

原生开发,全平台支持

既然目标是「像苹果自己做的一样」,那肯定是要 iPhone/iPad/Mac 都要支持的。得益于现代的 Apple 开发框架,SwiftUI 已经能比较好的实现一套代码,根据不同的屏幕尺寸和设备特征实现响应式布局。

同时作为 What's a Computer 的资深受害者,我对 iPadOS + 外接键盘/显示器,以及 Stage Manager 下的可缩放窗口等偏门使用场合都做了深度优化。

另外值得一提的是,Trimly 除了 iCloud 外,没有账号系统且完全不连网。同时使用了 0 个第三方库/SDK,所有功能均通过 Apple 第一方 API 实现。不得不说,现在的 AVFoundation/CoreImage/CoreGraphics 确实已经非常完备了,很多以前需要 libffmpeg 才能实现的功能,现在都能自己做好

符合预期的导入导出

无论原始视频是在 Apple Photos 还是文件系统,Trimly 都会直接读取原始文件(哪怕是在外置硬盘)然后添加剪辑点和导出。几十 G 的视频文件,如果还要加个复制导入流程,很有可能直接撑爆内置存储。

对于导出过程,除了上面提到的保留 HDR 和支持套用 LUT 外,Trimly 还支持不同档位的转码,包括不转码的 passthrough 模式,以及在画质/文件大小之间的不同取舍。不同人对 Apple Photos 里该放多大的东西有不同的需求。

Trimly 希望可以让所有用户都不用再二次转码视频。

Metadata 智能处理

在某个版本的 iOS 相册支持显示 EXIF 信息后,越来越多的用户开始希望自己的媒体内容都能有正确的 metadata,就像很多年前 iTunes 让我们重视音乐的专辑与 ID3 信息一样。

Trimly 会给导出的视频尽可能保留全部的元数据。与此同时,还会根据导出内容在原始视频中的偏移量,智能计算导出内容的时间戳。

举个例子,很多人在看演唱会时会一直拿着 Pocket 录像,同时手机也在不停拍照。Pocket 录制的原始长视频的时间戳是起始时间,如果导出一个五分钟到五分十秒的片段,Trimly 会把这个五分钟的偏移量加上去,这样在 Apple Photos 中,该片段会出现在前五分钟手机拍摄的照片之后。

一些 Apple 自己都不那么上心的功能

iOS 8 推出的 Handoff 功能我非常喜欢,但很少有看到第三方 App 能把这个功能做到真的有用且好用,大多数时候,它只是在 Dock 上一个碍眼的图标。

在开发 Trimly 时,我发现自己有一个真实需要这个功能的场景:在电脑上添加剪辑点到一半时,突然需要出门或者去卫生间,但心流不想被中断。因此,我实现了编辑记录的 iCloud 同步,以及授权文件夹内的检索功能。这样,只要两台设备的访问范围里都有相同的文件,就可以无缝接力同步了。

定价

在开发 Trimly 的过程中,相当多的技术选型与架构设计,特别是涉及音视频处理管线的部份,以及和 PhotoKit 打交道的各种技术细节,都远比我预期的复杂。能把所有功能做到 just works,还是具有一定门槛,不是随便 vibe coding 就能轻松做出来,并且整个架构做到清晰可维护的。

在过去几个月里,我自己一直是 Trimly 的头号用户,持续深度使用几乎每一个功能,并尽力打磨每一个细节。目前的完成度也自认为远超绝大多数 vibe 的半成品。

与所有人一样,我痛恨订阅制收费,并且一直是 old school 一次性付费模式的拥趸。因此,我设置了发展中地区 6 元 / 1 美元,发达地区 3 美元的定价。一次购买,全平台可用。考虑到这是一个可以重塑整个工作流的工具,我认为还是相当便宜的。‌

希望 Trimly 可以帮到和我一样有类似需求的朋友。

官网:https://trimly.zshbleaker.me

> 关注 少数派小红书,感受精彩数字生活 🍃

> 实用、好用的 正版软件,少数派为你呈现 🚀