这段时间一直在做一个自己想用的 macOS 视频客户端,今天终于把第一个公开版本发出来了:
OKVideoMac 0.3.41 ( Build 64 )
GitHub:
https://github.com/yaolin-dev/OKVideoMac
Latest Release:
https://github.com/yaolin-dev/OKVideoMac/releases/latest
普通用户直接下载:
OKVideoMac-0.3.41-macOS-arm64.dmg
目前主要面向 **Apple Silicon Mac / macOS 12+**,使用 SwiftUI 做原生 macOS 界面,播放器底层是 libmpv 。
先把最重要的一点放在前面:
OKVideoMac 不内置第三方视频源、账号、Cookie 、解析地址或 DRM Key 。
下面截图里的内容也全部是本地生成的 Demo Media ,不是真实影视站、电视台或 IPTV 内容。
最开始其实就是一个很朴素的需求。
我平时接触过 TVBox 、FongMi 这一类生态,也用过一些桌面端播放器和影视壳,但一直想要一个真正按照 macOS 使用习惯做的客户端:
后来越做越深,最后形成了现在这个项目。
目前 UI 主要是 SwiftUI ,播放基于 libmpv ;点播和直播都尽量保持 Native-first 。
目前公开版主要包括:
.js.md5 视频接口csp_ Provider 的可选 Android Bridge这里我特意一直用“部分”“Selected”“Experimental”这样的表述。
因为我不想把项目宣传成:
“全面兼容 TVBox / FongMi / CatPaw”
实际兼容性还是取决于具体源格式、运行时、API 结构、解析方式和媒体行为。
如果对兼容范围感兴趣,仓库里有单独的 Compatibility 文档。
这个项目最后没有走“把 Android App 整个搬到 Mac 上”的路线。
普通能力全部直接跑在 macOS:
这些都 不需要 Android。
真正麻烦的是已有生态里的一部分 Java / Dex csp_ Spider 。
它们原本就是 Android Runtime 下的东西。
全部重新用 Swift 实现,兼容成本很高;但如果为了它们让整个软件依赖 Android ,又会失去做原生 Mac App 的意义。
所以最后做成了一个可选兼容层,大致是:
Swift Provider
→ Android Bridge
→ dedicated Android Emulator
→ ADB
→ bundled Bridge APK
→ DexClassLoader
→ Spider
→ JSON result
→ Swift
也就是说:
Android 在这里是一个 Compatibility Runtime ,而不是 OKVideoMac 的运行平台。
如果你不用 Java / Dex csp_ Provider ,Android 环境完全可以不装。
这个思路我觉得还挺有意思,也可能对其他“原生应用需要兼容另一个生态遗留组件”的场景有一些参考价值。
播放器底层使用 libmpv 。
除了最基本的播放之外,这段时间主要折腾了:
发布前最后还抓到一个挺典型的 race:
第一次进入 Live 时,本地 HLS 加载太快,loadfile 有机会早于 OpenGL render surface 真正 ready ,结果第一次打开频道可能黑屏;切一次频道以后 surface 已经存在,反而马上正常。
最后没有用:
sleep 300ms
这种方式硬等,而是改成了 event-driven readiness handshake:
create render context
→ real render probe
→ render surface ready
→ loadfile
→ file_loaded
→ first render swap
最终 Build 64 做了多轮 cold-launch / first-live regression ,再加上人工实际播放、重开、切台、VOD 和声音验证之后才发布。
直播目前支持独立导入 M3U / TXT / JSON 。
为了发布前测试和截图,我还专门做了一套本地 Demo Environment:
这样既能真实测试播放器、切台和 HLS ,又不会为了演示软件去放第三方影视内容。
这个版本肯定不能说已经“成熟到没有 Bug”。
但做到现在,我最大的感受是:
只靠我自己继续测试,边际收益已经越来越低了。
我的机器、网络、配置和使用习惯都太固定。
真正能把项目继续往前推的,反而是:
所以决定先公开。
目前第一个公开版本已经做了 Developer ID 签名和 Apple Notarization ,Release 里同时放了 DMG 、源码包、第三方源码、License 、SBOM 、Manifest 和 SHA-256 校验信息。
GitHub:
https://github.com/yaolin-dev/OKVideoMac
Latest Release:
https://github.com/yaolin-dev/OKVideoMac/releases/latest
目前版本:
OKVideoMac 0.3.41 ( Build 64 )
系统要求:
arm64)普通用户下载:
OKVideoMac-0.3.41-macOS-arm64.dmg
打开 DMG 后拖到 Applications 即可。
这是我第一次把自己做的软件完整公开开源。
现在我最想要的其实不是“项目第一天有多少 Star”,而是:
有人愿意真的装一下,然后告诉我哪里不好用。
尤其欢迎反馈:
有问题可以直接在 GitHub 提 Issue:
https://github.com/yaolin-dev/OKVideoMac/issues
如果有人对 Native macOS + Optional Android Compatibility Runtime 这套架构感兴趣,也欢迎一起交流。
第一次公开项目,如果有哪里做得不规范,也欢迎直接指出。🙂
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.