Till0196/coax

多媒体与设计

用统一 HTTP 服务管理电视调谐器,让不同系统的客户端都能选台并取流。

102
5
Go
GPL-2.0
创建于 13 天前

如果你手上已有受支持的 USB 或 PCIe 电视调谐器,又希望在不同系统上用同一种方式选台和取流,coax 值得看一眼。项目很新,重心在日本的 ISDB 广播,更适合拿自己的具体硬件去核对,而不是直接替换现有成熟方案。

解决什么问题

过去,调谐器用户要在不同系统上看电视或录像,通常得分别凑齐驱动和客户端:Windows 上可能是厂商驱动加 BonDriver,Linux 上是内核驱动配 DVB 或 chardev 路径,macOS 又是另一套。coax 把这一步拆开:后台守护进程 coaxd 负责和硬件打交道,客户端通过 HTTP 请求选台,再接收码流。最终得到的是一套跨平台的统一接口,系统相关的驱动差异被藏在守护进程后面。

有什么不同

coaxd 同时运行多种后端,而不是给每个设备写一套驱动:直接 USB 走 usbfs、WinUSB 或 IOKit;Linux 走 DVB;Windows 走 BDA;px4_drv、PT3/PT1 走 chardev。它把找到的调谐器合并成一张列表,因此 coax 没有单独支持的硬件,也能通过系统已有驱动使用。它的核心设计是守护进程与客户端分离:命令行、给 TVTest 和 EDCB 用的 BonDriver 桥接,以及 ZeroWave 图形界面都调用同一个 API,只有守护进程碰硬件。

代价是多了一个进程和一层 API。列设备时不会打开板卡,所以理论上不会干扰别的程序正在用的调谐器,但真正推流时仍要由守护进程占用设备。客户端可以按需拉起 coaxd,没人使用时守护进程自动退出,减少手工管理。这也意味着你要接受守护进程文档里写明的限制,README 把相关说明放在守护进程文档里 守护进程文档。

谁值得试

适合已经拥有受支持 USB 棒或 PCIe 卡、想把录制或收看环境在几个操作系统之间搬的人,也适合想给 TVTest、EDCB、Mirakurun 或自己的脚本提供统一后端的人。如果你希望多个客户端共享同一个调谐器,而不是各程序自己抢占硬件,它也合适。

如果你现有的单系统方案运转良好,不需要跨平台访问,或者期待一个完成度高的收看电视应用,那就不太适合:coax 是守护进程加命令行,图形界面和 TVTest 集成分在别的项目里。

使用条件与边界

编译需要 Go 1.25 或更新版本,coax 和 coaxd 在 Linux、Windows、macOS 上都能以 CGO_ENABLED=0 构建,部署门槛不高。直接 USB 选台依赖系统自带的 usbfs、WinUSB 或 IOKit 路径;项目不附带厂商固件,有些设备需要从厂商驱动包里提取固件。首次使用的固件和分系统准备步骤写在入门文档里,别默认设备插上就能用 入门文档。

支持范围集中在日本 ISDB 的各种变体,另外也能通过 Linux DVB API 选 DVB 频道。许可证按组件不同:仓库本身是双许可,但 coaxd 含 GPL-2.0-only 文件,所以整个构建按 GPL-2.0-only 处理;coax 和 fwextract 可按 Apache-2.0 使用。如果要分发编译产物,先看 NOTICE。

HotRepo 点评

HotRepo 目前只有一条记录:2026-10-26 出现在新项目榜第 22 名,总星数 102。这不是日增数据,也没有可比的每日历史;仓库创建才 12 天,热度能否持续还判断不了。决定投入时间前,先核对调谐器文档,确认你的型号有没有被验证过的配置路径 守护进程文档。

本文由 AI 根据项目 README 生成,更新于 2026年10月26日,以项目官方文档为准。