在 ViewSurf 上享受乐趣

作者:Pierre Ficheux

ViewSurf 存在的理由是让冲浪者能够访问最新的在线天气报告。它提供了经典的天气报告信息,例如温度和海浪状况,但额外的好处是提供最新的视频,让冲浪者能够实时了解他们最喜欢的海滩的状况。

我在 1996 年夏天遇到了 ViewSurf 的创建者(Nicolas Saubade)。Nicolas 在法国波尔多附近的 Cestas 为 COM1 工作。COM1 在法国是一家非常著名的公司,因为它是欧洲最重要的调制解调器制造商,尽管大多数 COM1 调制解调器都不是以自己的品牌分销的。此外,COM1 还开发和分销 ViewCOM,这是一种高性能视频压缩系统,广泛应用于许多安全应用中(见图 1)。

图 1. ViewCOM VM3

ViewCOM 使用标准的视频输入,例如摄像机或任何 PAL/SECAM/NTSC 源,并将此源转换为基于 JPEG 压缩算法的专有格式。这种格式称为 VCR,并且可以实时完成转换。ViewCOM 包括一个 V34 PC-Card 调制解调器,因此它通常安装在远程站点,并通过简单的电话线由在 Microsoft Windows 下运行的专用软件(ViewCOM Manager)调用。

ViewCOM 固件包括录制功能,可以创建压缩的视频序列,并通过调制解调器将其发送给呼叫者。每个序列的大小为 100KB 到 400KB,运行时间为 1 或 2 分钟的视频。

使用 Linux

图 2. ViewSurf 基本配置

ViewSurf 服务的基本配置非常简单(见图 2)。每个站点都有一台连接到 ViewCOM 的摄像机。ViewCOM 可以通过调制解调器直接访问。呼叫者录制一段短片并将其上传到 Web 服务器。对于海滩报告,此操作大约每天发生三次。客户端的浏览器必须从 COM1 网站下载一个插件才能显示 VCR 序列。此插件最初仅适用于 Microsoft Windows 和 Macintosh,因此我编写了一个 UNIX/Linux 版本,现在已在 COM1 网站上(适用于 Linux ELF、Solaris 和 SunOS)。

Nicolas 想要安装多个站点,但这非常难以管理,因为 ViewCOM Manager,一个漂亮的图形程序,实际上是不可编程的——大多数 Windows 应用程序都存在这个问题。他不得不每天三次,每周七天手动呼叫四个站点——这是不可接受的情况。

我向他建议使用 Linux 来自动化这个过程。我编写了一些简单的 shell 脚本来呼叫每个站点,创建并下载影片,并使用 rcp 命令将其复制到主 Web 服务器(一台 SGI Indy)。这些脚本大多基于 chat 程序。下载部分是用 C 语言编写的,以跟上串行线上的高速率(57,600 或 115,200Kbps)。

我知道 rcp 不是最佳解决方案;Linux 本身就是一个非常优秀的 Web 服务器系统,但 SGI 已经到位。影片通过 HTML 代码集成到 ViewSurf 页面中,例如

<EMBED SRC="http://your_linux_server/films/film.vcr"
WIDTH=320 HEIGHT=40>

实际上,使用 rcp 不需要修改现有页面中的 HTML,这是一个优势,因此我们选择继续使用它。

主 shell 脚本,包括拨号连接到一组站点,只需通过 crontab 条目激活。此外,这些脚本还提供了一些关于 ViewCOM 访问的统计信息,以便检测任何问题。

这个项目不是 COM1 的官方项目,因此该软件安装在一台非常旧的运行 Slackware 3.0 的 DX2/66 上。我们不得不购买一个新的基于 16550A 的 ISA 卡用于串行线。

ViewCOM Manager 对于 ViewSurf 来说不再需要了。Nicolas 对 Linux 的强大功能感到惊讶——我所要做的就是编写一些使用标准 Linux 命令的 shell 脚本来解决问题,这在 Windows 中将非常困难且成本高昂。几个月后,Nicolas 创建了一个雪情报告,这是一项与海滩报告相当的滑雪信息服务。去年冬天,在法国比利牛斯山脉安装了 3 台 ViewCOM。

Nicolas 编写了一些额外的 HTML 页面,以使该服务更具吸引力,ViewSurf 现在包括有趣链接,指向世界各地的有趣网站和旅游网络摄像头。现在存在一个 ViewSurf 的特定域名 (viewsurf.com),并且该服务在 http://www.viewsurf.com/ 上提供(法语)。图 3 是 ViewSurf 页面的一个示例。不要忘记下载 VCR 插件。

图 3. Hossegor 海滩(法国)

实际上,Linux PC 非常高效且稳定。我上次重启它还是为了安装新的内核版本。

ViewSurf 的未来

海滩报告和雪情报告是为最终用户提供的免费服务,但 Nicolas 创建 ViewSurf 是希望从中赚钱。他目前正试图将这项服务出售给法国旅游局,但这非常困难;基本上,法国在通信和互联网服务方面落后。此外,许多法国人认为计算机和互联网是美国的特洛伊木马,例如麦当劳或巴黎迪士尼乐园。

大多数法**国在线服务都适用于一种称为 Minitel 的低性能 Videotex 兼容终端,该终端在 1980 年代初由法**国电信免费分发。这项技术已经过时,但法**国电信目前是法**国唯一的通信运营商。Minitel 允许他们对某些在线服务收取每分钟高达几美元的费用。这可能是大多数法**国人没有家用 PC 的原因,因此,基于互联网的服务没有得到认真考虑。

Nicolas 已经与负责巴黎交通管理的政府组织签订了合同。自 1997 年 9 月以来,一些法**国高速公路已经上网。如果您将其与其他网络摄像头系统进行比较,ViewSurf 在小数据大小下提供了非常好的质量。

如果不每次想更改呼叫时间或添加新站点时都编辑 crontab 或 shell 脚本,则该软件将更容易配置。为此,我编写了一组 CGI(通用网关接口)脚本,这些脚本为 Linux 服务器配置提供了一个简单且可移植的界面。使用 CGI 而不是标准 Linux 程序的好处是能够从任何运行在任何操作系统上的支持表单的浏览器配置服务器。

另一个关键选项是允许多个用户同时观看“实时”视频(而不是录制的文件)。为此,Linux PC 可以用作服务器,将来自 ViewCOM 的实时图像分发给从网络连接的多个用户。为了实现这个目标,我编写了一个多线程 Linux 守护程序,它基于 Xavier Leroy 的 POSIX 1003.1c LinuxThreads 库 (http://pauillac.inria.fr/~xleroy/linuxthreads)。实际上,此守护程序仅处理 “video/x-vcr” MIME 类型,并使用两个特定的 TCP 端口。实时视频可以使用如下行插入到 HTML 页面中

<EMBED SRC="http://your_linux_server:daemon_port"
WIDTH=320 HEIGHT=240>

第二个端口保留用于 ViewCOM 管理,例如设置亮度或对比度。此外,守护程序还可以控制气象站,以便获得关于外部温度、风速和其他天气信息的实时信息。VISCA(视频摄像机远程控制的标准)功能即将添加,以直接从 Internet 浏览器控制变焦、平移和倾斜以及其他摄像机参数。图 4 是在 COM1 私有 Web 服务器上的波尔多/巴约讷高速公路的快照。

图 4. 波尔多/巴约讷高速公路快照

ViewCOM 通常通过串行线连接到 PC,但该系统最重要的优势之一可能是控制远程 ViewCOM 的能力。因此,无需在您想要查看的站点上安装 PC,您只需设置一个连接到简单电话线或专线的 ViewCOM 即可。在电话线情况下,守护程序可以在启动时或仅在发生 HTTP 请求时呼叫 ViewCOM。在最后一种情况下,当最后一个客户端断开连接时,守护程序会挂断线路。

参考资料和联系方式

Having Fun on ViewSurf
Pierre Ficheux 负责 Lectra-Systèmes (法国 Cestas) 的系统开发。当不使用 Linux 时,他喜欢在 Arcachon 美丽的海滩上弹吉他。可以通过电子邮件 pierre@rd.lectra.fr 与他联系。
加载 Disqus 评论