Linux DVR 并非神话—它是 MythTV!
个人数字录像机 (DVR) 的出现改变了数百万人的电视观看体验。录像机 (VCR) 可能让观众不再需要在电视台希望的时间观看节目,但 DVR 给予了他们更多的自由和控制。
大多数消费者使用机顶 DVR,要么直接购买,要么作为卫星或有线电视套餐的一部分获得。但就其本质而言,这些盒子未能充分实现 DVR 的优势。首先,由于商业政治,DVR 制造商一直不愿开发允许观众自动跳过广告的技术。此外,商业系统需要每月订阅费才能接收节目指南,这很容易在一年内超过录像机的原始成本。最后,制造商不鼓励所有者进行简单的修改,例如添加额外的磁盘空间或将 DVR 连接到网络,以便 дома里的其他电视可以观看录制的内容。
这就引出了第二种解决方案——从头开始构建 DVR。有几个适用于 Windows 的软件包——没有免费的——可以胜任提供 DVR 功能的工作。但是,如果您想要一个在 Linux 下运行的高质量 DVR,MythTV 是不二之选。本文将引导您完成在已正常运行的 Linux 系统上设置 MythTV 的步骤。
MythTV 盒子的架构相当简单。一个名为 mythbackend 的守护进程负责实际与调谐器卡通信,确定应该录制哪些节目,以及处理作为 DVR 的日常业务。理论上,这就是您需要在服务器上运行的全部内容。例如,如果您有一个 Hauppauge MediaMVP 机顶盒,您可以运行一个特殊的引导加载程序,它将直接与您服务器上的 MythTV 后端通信,并让您在家中的任何地方观看录制的内容。
然而,大多数用户也希望运行 mythfrontend,它通过 GUI 提供所有 PVR 用户级功能。除了让观众选择要录制的内容和观看现有节目(以及直播节目)外,mythfrontend 还可以显示天气数据、最新新闻、浏览网页,甚至可以通过插件玩游戏。您可以使用多个前端(可以想象在不同的机器上运行),所有前端都与同一个后端服务器通信。
首先,我们需要谈谈硬件。与大多数事情一样,您需要的硬件取决于您希望用它做什么。例如,您希望 MythTV 服务器同时处理的任务越多,您需要的处理器能力就越高。同时录制两个节目,同时观看第三个节目,并将第四个节目转码用于 DVD 刻录,这可能需要相当大的马力,因此花一点钱购买一个像样的处理器是值得的。幸运的是,您不需要液氮冷却、三重超频的速度怪兽来完成这项工作,一个 2.8GHz 的芯片应该能很好地完成任务。
您还需要充足的磁盘空间来存储所有那些“幸存者:森尼维尔”剧集。因为在观看您最喜欢的节目时,您最不想听到的就是嘈杂的磁盘噪音,所以请选择 SATA。如果您等待 250GB 硬盘驱动器打折,一对这样的硬盘驱动器应该不会超过 250 美元,它们将容纳足够的内容来满足最铁杆的视频爱好者。我们稍后会讨论文件系统。
令人惊讶的是,视频适配器不是关键组件。这并不意味着您应该挖出您放在后屋里的 1995 年左右的 Hercules 旧卡,但过去一年中任何合理的 AGP 卡都可以正常工作,尽管良好的 OpenGL 支持会有很大帮助。然而,调谐器卡非常重要。选择合适的卡可以使 MythTV 系统的设置和使用更加容易。您显然需要考虑诸如是否要录制 HDTV 等因素,在这种情况下,选择非高清卡是不可行的。就本文而言,我们使用大多数 MythTV 系统的工作主力,Hauppauge WinTV-PVR-250 和 WinTV-PVR-350。Hauppauge 卡如此吸引人的原因是它们在卡上包含 MPEG 编码器,这大大减少了主机 CPU 的工作负载。您可以使用两张这样的卡轻松地同时录制两个节目,并且只会看到 5-6% 的 CPU 使用率。250 和 350 之间的区别在于 350 还包括一个硬件 MPEG 解码器和视频输出连接器,因此您可以将其连接到电视机。但是,它将比 250 多花费您大约 50 美元。因为您可能不想将服务器放在起居室中央,仅仅是为了将其连接到电视,所以我建议您选择 250,零售价约为 130 美元,并为您的电视连接购买一个 MediaMVP(约为 80 美元)。Hauppauge 还提供 WinTV-PVR-500 MCE,它内置了两个调谐器和一个视频输出,但不包括遥控器,遥控器对于从远处控制 MythTV 非常有用。WinTV-PVR-250 是一种将节目经济地传输到您系统的方式,但请注意,如果您要尝试录制 HDTV,Hauppauge 卡将无法为您完成这项工作。
您需要考虑的另一件事是您是否需要控制卫星接收器或有线电视盒来切换频道。为了实现这一点,您可能需要一个 IR Blaster——一种连接到您的串行端口并将正确的命令发送到您的机顶盒的设备。还要注意,每个机顶盒您只能调谐一个频道,因此如果您想同时录制两个节目,您最终将不得不为两个盒子付费。这是有线电视和卫星电视公司提供的 DVR 解决方案的一个巨大优势;它们内置于机顶盒中,因此这不是问题。
硬件要求已解决,现在是配置系统的时候了。尽管 Gentoo 因安装困难而闻名,但我发现 Gentoo 在设置 MythTV 方面提供了最简单的整体体验。使用任何标准教程来启动基本的 Gentoo 系统。您需要做的主要事情是确保正确设置文件系统。假设您购买了两个 250GB SATA 硬盘驱动器,您真的希望使用逻辑卷管理器 (LVM) 将大部分空间转换为一个大型分区。我建议正常进行安装,但保留驱动器 0 的大部分空间和驱动器 1 的所有空间未分配。因此,您可以使用驱动器 0 的 10GB 空间来设置您的 root、usr、swap 和 var 空间,留下 240GB 的剩余空间。一旦您的系统启动并运行,从剩余空间中设置一个 490GB 的 LVM 分区。
普遍接受的观点是使用 JSF(IBM 日志文件系统)作为您将存储节目的分区的文件系统。这是因为它在删除大文件时提供了最佳性能——MythTV 经常执行此操作。这意味着您应该确保将 JSF 编译到您的内核中(而不是作为模块)。您还需要内置 LVM 支持。
Gentoo Wiki 站点(请参阅在线资源)提供了关于正确设置内核以处理集成的 Hauppauge 遥控器和安装所需软件包的出色演练。一旦您完成所有设置并正常运行,您就可以配置 MythTV 本身了。幸运的是,设置几乎完全由运行以下命令组成mythsetup并完成一系列向导屏幕,这些屏幕配置诸如您的家庭有线/卫星系统信息之类的内容。完成基本设置应该不超过五到十分钟。
关于 MythTV 的一个有趣之处在于,它将所有内容(当然,实际视频除外)存储在 MySQL 数据库中。这使得导入和提取信息以及进行调整变得容易。例如,如果您需要微调频道的频率,您可以将不同的值输入到相应的数据库表中,使用遥控器上下移动一个频道,看看是否有所改善。当然,如果能够使用 GUI 微调就太好了;也许有人会在未来的版本中实现这一点。这也意味着您可以运行一个简单的查询,查看您观看过的所有节目,甚至编写自定义软件,利用 MythTV 自动为您下载的两周节目指南数据。
一旦这一切都正常工作,您应该能够录制节目并在您的显示器和扬声器上观看它们(这将插入您的声卡和/或主板扬声器插孔)。要使用 Hauppauge MediaMVP,您需要在服务器上启用 NFS 并导出包含视频内容的文件系统。您还需要运行 DHCP 服务器和 tftp 服务器。同样,SourceForge 站点上有一个出色的演练(请参阅资源)。
另一种选择是安装 MythWeb,它为您提供了一个 Apache 驱动的 Web 前端,用于查看您的节目指南、计划录制和已录制的节目。在 Gentoo 上,这就像键入以下内容一样简单emerge mythweb.
MythTV 的一个突出特点是自动跳过广告的功能。您可以通过设置向导中的复选框启用此功能。一旦启用,节目将在节目结束后排队进行商业扫描。这意味着您在观看正在录制的节目或刚录制完的节目时无法跳过广告,但通常在节目结束后 30 分钟内即可进行标记。然后,在观看节目时,您可以使用快进按钮跳过一组广告。标记并不完美,但已经很接近了。您还可以设置 MythTV 以自动转码内容以供以后 DVD 刻录。事实上,您可以将其配置为在录制完成后对视频文件运行任何任意的 Linux 程序。
MythTV 是适合您的解决方案吗?如果您只想在连接 PVR 的电视上录制内容,可能不是。您可以从有线电视或卫星电视提供商处购买 DVR,它们更便宜,与它们的内容集成得更好,并且不需要一天或更长时间才能设置完成。但是,如果完全控制您的内容很重要,如果您希望能够从单个来源在您家中的所有位置共享它,并且如果您不想每年花费 150 美元购买节目数据,那么 MythTV 提供了终极的灵活性、可配置性和可破解性。
本文资源: /article/8584。
James Turner 是 Linux Journal 的产品评测编辑。他撰写了两本关于开源 Java 开发的书籍,并且是 Axis Technology, LLC 的高级软件工程师。