最近还在折腾我那破英语学习播放器,一开始用的是 MPV 的方案,但我发现内存占用很夸张,点一个视频就 400 多 M 了,而且播放时间长了,内存越来越多,找 Gemini 和 Codex 分别改了几个小时都不行。与此同时,同一个视频,Movist Pro 的内存占用大概 80M~250M 不等,VLC 大概 120M~300M 不等,只有基于 MPV 的 INNA 和我的差不多都是 400 多 M 。 然后我一怒之下决定重构,和 Codex 详细说明了计划,Codex 一直在反对,我和它说我有相关的开发经验,知道可以做。最后连续蹬了十几个小时,Codex 手搓 Objective-C ,不断改进,最后终于可以硬解主流的编码格式( AV1 HEVC H264 VP9 )的视频了。 其实原理没有太复杂,解封装视频流,剥离音轨,计算时间戳,最后通过 metal 来把视频与音频渲染出来。如果是人类程序员来写,虽然方向明确,但是具体实现上非常麻烦,但 AI 就没这个困扰,方向对了,力大砖飞。也可以很方便地自动化测试。 内存占用上,落在 35~50M 这个区间,已经显著优于市面上大量视频播放器了。当然我知道这是因为我不需要过分考虑兼容性,只需要应用于特定场景(电影,电视剧,游戏录像)。另外我还发现似乎大部分 macOS 的视频播放器没有默认 AV1 硬解,即便芯片支持 AV1 硬解,这其实是一个很重要的优化方向。 不管怎么说,花了十几个小时搓出来一个纯原生的 macOS 播放器,真的感觉很享受。我现在还在慢慢迭代它,已经初步可用了。 经历了以上这一切,我只能说,我原谅了 Codex ,真的。