使用 Linux 烹饪 - 观看社区网络

作者:Marcel Gagné

是的,弗朗索瓦,那是我——20 年前,但仍然是我。你在笑什么?我看起来没那么奇怪吧。是的,有人说我看起来像在模仿卡尔·萨根,但那只是我的说话方式,我的朋友。别再傻笑了。我们的客人马上就到,而这一期的专题是关于社区网络,我需要你好好照顾他们。

啊,但他们已经到了。欢迎,我的朋友们!弗朗索瓦——去酒窖。2000 年南非 Stellenbosch 赤霞珠现在口感非常好。请去拿来,马上。请各位,坐下,放松一下。

我刚才给弗朗索瓦看一段录像带,是我几年前和一些朋友一起制作的纪录片。我曾经在社区有线电视台做志愿者,在那里我操作摄像机,偶尔也操作视频控制台。那段时光非常有趣。有一个夏天,我和朋友们利用电视台的设备制作了一部纪录片,由我编写和旁白。多年来,我一直留着这段录像带,现在,以本期专题为跳板,我认为将其转换为更永久的数字格式可能会很好。

从模拟源播放视频可以使用电视调谐器卡完成。我使用的卡是 Hauppauge WinTV 卡,基于 btv878 芯片组。您可以放心地忽略卡的名称,我的朋友们。它在任何最新的 Linux 内核上都运行良好。我购买的卡得到很好的支持,并且在我的 Mandrake 9.1 测试系统上自动加载了驱动程序(在另一个 Debian 系统上也运行良好)。Linux bttv 内核模块或驱动程序支持大量的电视调谐器卡。快速查看内核文档中的 CARDLIST 文件 (/usr/src/linux/Documentation/video4linux/bttv/) 将使您对此有所了解。

欢迎回来,弗朗索瓦。请为我们的客人倒酒……别再傻笑了,没那么好笑。您看,我的朋友们,我忠实的侍者被多年前的我逗乐了。别理他,一边享用葡萄酒,一边让我向您展示这是如何工作的。

观看电视显然是重点,但这些电视调谐器卡有时也带有 FM 收音机接收器。当您尝试工作时观看电视可能会分散注意力。听收音机就没有那么多问题。一个吸引我注意的 FM 收音机程序是 Gerd Knorr 非常简单的 radio 程序 (bytesex.org/xawtv)。这是一个基于 ncurses 的程序,是 xawtv 源代码包的一部分。我在这里特别指出源代码,因为在使用 RPM 时,名为 radio 的软件包与 xawtv 是分开的。

Cooking with Linux - Watching the Community Network

图 1. radio:简单且基于 ncurses

从命令行输入radio -s。使用 -s 选项,程序在查找电台时显示它访问的频率,然后以非静音状态启动。如果您改用 -i 选项,程序会在您的主目录中写入一个 .radio 文件,其中包含它识别的电台和频率。然后,您可以返回并编辑此文本文件,为电台提供更有趣的名称。您还可以通过传递 -f 选项在喜欢的电台启动收音机(radio -f 99.10).

这就是了,一个本地社区网络通过最古老和受人尊敬的媒介——无线电广播。我应该指出,我在这里确实遇到了一些有趣的问题。我的 Hauppauge 卡无法直接播放声音。可以将扬声器直接插入卡的音频输出端口,但我希望在系统中进行控制。为此,我必须使用随附的电缆将调谐器卡连接到系统的声卡。然后我使用 alsamixer 提高线路输入的电平,一切都很好。根据您的电视调谐器卡,您可能需要执行相同的操作。当我们开始讨论录制时,这一点尤其重要。

另一个您应该关注的无线电项目是 John Ellis 创建的 GQradio (gqmpeg.sourceforge.net/radio.html)。GQradio 具有时尚的图形界面、自动调谐、电台预设等功能。该站点提供 Red Hat RPM 以及源代码。编译该程序需要 GTK+ 和 gtk-pixbuf 库。除此之外,它还是经典的提取和构建五步法

tar -xzvf gqradio-0.99.0.tar.gz
cd gqradio-0.99.0
./configure
make
su -c "make install"

如果您从命令行运行 gqradio 程序,您第一次会注意到一些有趣的事情

$ gqradio
Creating dir:/home/mgagne/.gqradio
Creating dir:/home/mgagne/.gqradio/skins

该程序为其配置以及皮肤创建一个初始目录。没错,该程序是可更换皮肤的。您不仅可以下载皮肤,而且 GQradio 还带有一个内置的皮肤编辑器,因此您可以释放您的创造力。右键单击 GQradio GUI 以获得一个下拉菜单,您可以通过该菜单随意修改程序。

Cooking with Linux - Watching the Community Network

图 2. GQradio,预设显示已打开

接下来,我们将注意力转向视频广播的世界,以及我早期在社区网络中接触电视报道的经历。弗朗索瓦,也许你也最好给我倒一杯。在你们都笑了之后,我突然意识到我可能需要一点勇气。

对于你们中不耐烦的人来说,大多数 Linux 发行版都带有一个名为 xawtv 的电视观看应用程序,由 Gerd Knorr(以 ncurses radio 而闻名)开发。如果您只是启动 xawtv 程序,您可能会发现您得到的只是一片空白屏幕,尤其是在北美。该程序默认设置为 PAL 格式等。要将 xawtv 锁定为适合您特定位置的更合理的设置,您需要编辑 $HOME/.xawtv 配置文件。这是我的配置文件的样子

[global]
freqtab = us-bcast

[defaults]
input = Television
norm = NTSC

[vcr]
channel = 3
key = 3

该文件被分成几个部分,用方括号内的标题表示(对于所有可能的设置,请执行man xawtvrc)。global 和 defaults 部分是最重要的,因为它们允许我们设置本地传输标准以及输入设备。[vcr] 部分是我添加的。很简单,它代表频道 3,来自我的 VCR 的输出。

Cooking with Linux - Watching the Community Network

图 3. 未来的 Linux 厨师?

有许多程序可用于观看电视。MPlayer (www.MPlayerHQ.hu) 是一款流行的、多功能的播放器。再次强调,检查您的发行版——您可能已经有一个副本。使用编解码器,它可以播放您拥有的所有 AVI 或 MPG 文件。您可能已经知道,但 MPlayer 也可以处理电视调谐器卡。方法如下

mplayer -tv \
on:driver=v4l:channel=3:input=0:norm=NTSC\
:width=640:height=480

上述命令中的反斜杠是因为我无法将整个命令放在一行中。如果您愿意,您可以将其键入为一行,不间断的一行。要使用 MPlayer GUI,请使用gmplayer代替。driver 参数选择 video4linux 驱动程序 (v4l)。channel 设置很明显,norm 设置让我选择北美的 NTSC 广播标准。最后的设置是高度和宽度。

这些程序是在 Linux 系统上观看电视的好方法,但如果您像我一样,您可能会有些羡慕您的拥有数字有线电视的朋友喜欢炫耀的娱乐系统。凭借他们的 TiVo 和 PVR(个人视频录像机)设备,他们可以访问即将播出的节目的屏幕显示,他们可以安排节目并在心情好的时候观看。好了,别再羡慕了,我的朋友们。要在 Linux 系统的控制下拥有整个视频娱乐系统,MythTV 就是您的不二之选,它是一个功能齐全的个人视频录像机和电视主控系统。

想象一下,一个数字视频录像机,让您可以观看直播电视,并具有即时重放功能,因此您可以暂停、倒带和快进。MythTV 让您可以按计时器编程节目,并查看在线电视节目列表,您可以在其中进行字符串搜索——寻找 Buffy 重播的特定剧集?将其与对多个电视调谐器卡、多个同步录制和分布式系统的支持相结合,这样您就可以在网络上设置不同的 MythTV 盒子。将所有这些都包装在一个时尚的、可主题化的软件包中,您就开始了解我在说什么了。

这听起来像您迫不及待想要上手的东西吗?那么,请访问 www.mythtv.org 并获取软件包。RPM 软件包适用于不同的发行版,Debian 软件包和 Gentoo ebuild 和摘要文件也是如此。查看 www.mythtv.org/docs/mythtv-HOWTO-3.html 的“软件”部分,以获取预构建软件包的链接。这个优秀的软件包也可以在源代码存档包中找到。

MythTV 是一个非常酷的软件包,但要使其运行需要一些工作,并且需要您安装一些先决条件。其中大多数是开发库,包括 freetype2-devel、XFree86-devel、qt-devel、lame 和 libexpat。MythTV 建议您从 sourceforge.net/projects/expat 获取最新的 libexpat。最后,要使用 MythTV 的 XMLTV 频道信息抓取器和调度工具,您肯定需要 Perl 和一些模块。也可以将红外遥控器与 MythTV 一起使用(使用 lirc),但这只是我没有尝试过的一个细微之处。

您可能会发现,就像我一样,您需要一些额外的模块才能使 XMLTV 真正工作。这些模块是 XML::Twig、Date::Manip、LWP 和 XML::Writer。安装它们最简单的方法是使用perl -MCPAN -e shell命令。以 root 身份启动 CPAN shell,您将看到一个 cpan> 提示符。如果您是第一次使用 CPAN,您会遇到一个问答环节,以帮助软件识别您的本地 CPAN 镜像。然后,在 cpan> 提示符下输入以下内容

cpan> install XML::Twig
cpan> install Date::Manip
cpan> install LWP
cpan> install XML::Writer
cpan> exit

这就是您所需要的全部内容。还有一些推荐的模块,当您安装 xmltv 软件包时,会告知您这些模块。安装对于 Perl 软件包来说是典型的,并且与标准的提取和构建五步法没有什么不同

xmltv-0.5.10.tar.bz2
cd xmltv-0.5.10
perl Makefile.PL
make
su -c "make install"

作为 XMLTV 安装的一部分,系统会询问您所在区域的列表,因此请注意此阶段的消息。您快完成了。由于 MythTV 使用 MySQL 来存储其信息,因此您需要为其设置数据库。您还应该加载 qt-MySQL 软件包(查找 qt-mysql 或 libqt3-mysql)。即使您已正确设置 MySQL,您也可能会收到类似于QMYSQL3 驱动程序未加载如果您在没有它的情况下运行。现在,确保 MySQL 已安装并正在运行,然后使用提供的 schema 文件

cd database
mysql -u root < mc.sql

根据您的发行版,您可能不需要-u root上述内容。现在,我们仍然有一些数据库方面的事情需要处理。此时,只有 localhost 地址被允许访问 MythTV 数据库。在我的情况下,我想为我的 192.168.22.0 私有子网中的所有用户提供访问权限

$ mysql -u root mythconverg
mysql> grant all on mythconverg.* to \
mythtv@"192.168.1.%" identified by "mythtv";

上面的百分号用作通配符。因此,如果您想允许所有域访问(可能不是您想要的),请删除子网部分,只留下百分号。

除了需要几个步骤外,安装非常容易。话虽如此,我确实遇到了一些小问题。例如,使用 qmake(Qt 开发软件包的一部分),configure 脚本似乎无法找到该程序,因此我在 /usr/bin 中为其创建了一个符号链接。然后,我运行了make来自 MythTV 发行目录,一切都很好。

现在您已经编译并安装了软件,在 MythTV 发行目录中,您将看到一个名为 setup 的目录,在该目录中,有一个同名的可执行文件。按如下方式运行命令setup/setup.

您将看到一个屏幕,其中有四个选项,分别标记为 General(常规)、Capture Cards(采集卡)、Video Sources(视频源)和 Input Connections(输入连接)。浏览这些选项以配置 MythTV 以进行本地系统设置。您的输入连接(编号 4)基本上应该已经在选择视频源时设置好了。在完成此过程时,请注意屏幕上的帮助消息和指南。完成所有设置步骤后,按 Esc。

Cooking with Linux - Watching the Community Network

图 4. 设置 MythTV 前端

现在,运行mythfilldatabase以获取您的电视节目列表。如果是第一次,您可能会遇到错误,因为您的本地 xmltv 配置文件可能不存在

/usr/bin/tv_grab_na --configure

系统会要求您提供邮政编码或邮政编码,以帮助识别电视指南列表的本地提供商。从该列表中,您还可以决定 xmltv 将收集哪些频道的列表。作为一个喜欢生活中有点刺激的人,我选择了最大的多样性并接受了每个频道。使用节目信息填充数据库肯定是您想要使用 cron 作业执行的操作。

下一步是启动 mythbackend 程序。我选择使用 -d 选项将其作为守护程序运行(如果需要,您可以将其添加到 rc.local 启动脚本中)。

最后,以普通用户身份运行mythfrontend以启动 MythTV 界面。在此阶段,图形屏幕上有两个选项,setup(设置)和 TV(电视)。使用光标键导航屏幕。选择 TV(电视),您将能够从立即观看电视、安排录制或观看以前安排的录制中进行选择。您还可以浏览节目指南以查看当前或即将播出的节目(图 4)。

Cooking with Linux - Watching the Community Network

图 5. 搜索 MythTV 节目指南

另一个选择是录制您年轻时令人尴尬的节目,例如我早期关于 1984 年高桅帆船节的纪录片“浪漫之帆”。选择 VCR 的适当频道,放入录像带并记录这些回忆。

MythTV 是一个非常出色的软件包,具有巨大的活力和潜力。除了软件包显而易见的电视播放和录制方面之外,还有其他可用的模块,我没有时间在这里介绍。它们包括 MythWeb,它允许通过网页控制 MythTV;MythGallery,用于照片和幻灯片;MythMusic,用于翻录、存储和播放音乐文件;以及 MythWeather,用于天气信息。

好了,我的朋友们,时间不早了,我们很快就要关门了。虽然时间很晚了,但今晚过后,您将不必担心错过您喜欢的节目,不是吗?与此同时,弗朗索瓦会很乐意为您再倒一杯酒——也许我们应该倒两杯,您可以假装从未看过那段老马塞尔视频。长大肯定是有好处的。在下次见面之前,我的朋友们,让我们一起为彼此的健康干杯。祝您健康!祝您好胃口!

资源

bttv、radio 和 xawtv:bytesex.org/xawtv

GQradio:gqmpeg.sourceforge.net/radio.html

MPlayer:www.MPlayerHQ.hu

MythTV:www.mythtv.org

Marcel 的葡萄酒页面:www.marcelgagne.com/wine.html

Marcel Gagné 居住在安大略省密西沙加市。他是 Linux 系统管理:用户指南(ISBN 0-201-71934-7)的作者,该书由 Addison-Wesley 出版,目前正在创作他的下一本书。可以通过电子邮件 mggagne@salmar.com 与他联系。

加载 Disqus 评论