Having Fun on ViewSurf

July 1st, 1998 by Pierre Ficheux in

This article explains how Linux is used in the ViewSurf “Beach Report”, a fun WebCAM-based service.
Your rating: None

The raison d'être of ViewSurf is to give surfers access to up-to-date on-line weather reports. Classic weather report information is provided, such as temperature and wave status, but the bonus is an up-to-date video that gives the surfer a current picture of what is happening at his favourite beach.

I met the creator of ViewSurf (Nicolas Saubade) during the summer of 1996. Nicolas works for COM1 in Cestas near Bordeaux, France. COM1 is a very famous company in France because it's the foremost modem manufacturer in Europe even though most COM1 modems are not distributed under its own label. Additionally, COM1 develops and distributes the ViewCOM, a high performance video compressing system used in many security applications (see Figure 1).

Figure 1. ViewCOM VM3

The ViewCOM uses a standard video input, such as a video camera or any PAL/SECAM/NTSC source, and converts this source to a proprietary format based on the JPEG compression algorithm. This format is called VCR, and the conversion can be achieved in real-time. The ViewCOM includes a V34 PC-Card modem, so it is typically installed on a foreign site and called by specialized software running under Microsoft Windows (ViewCOM Manager) via a simple phone line.

ViewCOM firmware includes a recording function to create a compressed video sequence and send it to the caller via modem. The size of each sequence is 100KB to 400KB and running time is 1 or 2 minutes of video.

Using Linux

Figure 2. ViewSurf basic configuration

The basic configuration of the ViewSurf service is quite simple (see Figure 2). Each site has a video camera connected to a ViewCOM. The ViewCOM is directly accessible via modem. The caller records a short film segment and uploads it to a web server. For the Beach Report, this operation occurs about three times a day. The browser on the client side must download a plug-in from the COM1 web site in order to display VCR sequences. This plug-in originally existed only for Microsoft Windows and Macintosh, so I wrote a UNIX/Linux version which is now on the COM1 site (available for Linux ELF, Solaris and SunOS).

Nicolas wanted to install several sites, but it was quite difficult to manage because the ViewCOM Manager, a nice graphical program, is not really programmable—the problem with most Windows applications. He had to manually call four sites, three times a day, seven days a week—not an acceptable situation.

I proposed to him that Linux be used to automate the process. I wrote some simple shell scripts to call each site, create and download the film and copy it to the main web server (an SGI Indy) using the rcp command. Most of these scripts are based on the chat program. The download portion was written in C to keep up with the high speed on the serial line (57,600 or 115,200Kbps).

I know rcp is not the best solution; Linux is a very good web server system in its own right, but the SGI was already in place. Film is integrated in ViewSurf pages with HTML code such as:

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

Actually, using rcp requires no HTML modification in the existing pages, which is an advantage, so we opted to stay with it.

The main shell scripts, including dial up to a group of sites, are simply activated by a crontab entry. Additionally, these scripts give some statistics about ViewCOM access in order to detect any problems.

This project was not an official COM1 project, so the software was installed on a very old DX2/66 running Slackware 3.0. We had to buy a new 16550A-based ISA card for the serial line.

The ViewCOM Manager was no longer needed for ViewSurf. Nicolas was surprised by the power of Linux—all I had to do to solve a problem was write some shell scripts using standard Linux commands, which would have been very difficult and costly to implement in Windows. Some months later, Nicolas created a Snow Report, which is a service for skiing information comparable to the Beach Report. Last winter, 3 ViewCOMs were installed in the French Pyrénées mountains.

Nicolas has written some additional HTML pages in order to make the service more attractive, and ViewSurf now includes interesting links to fun sites and tourist WebCAMs all around the world. A specific domain now exists for ViewSurf (viewsurf.com), and the service is available (in French) at http://www.viewsurf.com/. Figure 3 is an example of a ViewSurf page. Don't forget to download the VCR plug-in.

Figure 3. Hossegor Beach (France)

Actually, the Linux PC is very efficient and robust. The last time I had to reboot it was to install a new kernel version.

The Future of ViewSurf

Beach Report and Snow Report are free services for the end user, but Nicolas created ViewSurf in the hope of making some money with it. He's currently trying to sell the service to French Tourism Offices, but it's quite hard; basically, France is lagging in communications and Internet services. Additionally, many French people consider computers and the Internet as American Trojan horses such as McDonald's or Disneyland Paris.

Most French on-line services are available for a low performance Videotex-compatible terminal called Minitel, which was distributed free of charge by France Telecom at the beginning of the 1980s. This technology is obsolete, but France Telecom is currently the only French operator for communications. The Minitel allows them to charge up to several dollars per minute for some on-line services. This could be the reason why most French people don't have a PC at home, and as a result, Internet-based services are not seriously considered.

Nicolas has gotten a contract with the government organization which deals with traffic regulation in Paris. Some French highways have been on the Net since September 1997. If you compare it with other WebCAM systems, ViewSurf gives very good quality for a small data size.

This software would be more easily configurable without editing crontab or shell scripts each time you wished to change the call time or add a new site. To that end, I wrote a set of CGI (Common Gateway Interface) scripts which present a simple and portable interface for the Linux server configuration. The advantage of using CGI instead of standard Linux programs is the capability to configure the server from any forms-capable browser running on any operating system.

Another crucial option is to have the ability for several users to look at a “live” video (not recorded files) at the same time. For this, the Linux PC could be used as a server to distribute the live image from ViewCOM to several users connected from the Net. To reach this goal, I wrote a multi-threaded Linux daemon, based on the POSIX 1003.1c LinuxThreads library by Xavier Leroy (http://pauillac.inria.fr/~xleroy/linuxthreads). Actually, this daemon handles only the “video/x-vcr” MIME type and uses two specific TCP ports. The live video can be inserted in an HTML page with a line such as:

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

The second port is reserved for ViewCOM administration, such as setting brightness or contrast. Additionally, the daemon can control a weather station in order to get real-time information about external temperature, wind speed and other weather information. A VISCA (a standard for video camera remote control) functionality is about to be added to control zoom, pan-and-tilt and other camera parameters directly from the Internet browser. Figure 4 is a snapshot of the Bordeaux/Bayonne motorway on the private COM1 web server.

Figure 4. Snapshot of Bordeaux/Bayonne Motorway

The ViewCOM is often connected to the PC via a serial line, but one of the most important advantages of the system could be the ability to control a remote ViewCOM. So, it's not necessary to install a PC on the site you want to look at, you just have to set up a ViewCOM connected to a simple phone line or a leased line. In the phone line case, it's possible for the daemon to call the ViewCOM at starting time or only when an HTTP request occurs. In this last case, the daemon hangs up the line when the last client is disconnected.

References and Contact

Pierre Ficheux is in charge of system development at Lectra-Systèmes, Cestas, France. When not doing something with Linux, he loves picking tunes on his guitar on the nice beach at Arcachon. He can be reached by e-mail at pierre@rd.lectra.fr.

__________________________


Special Magazine Offer -- 2 Free Trial Issues!
Receive 2 free trial issues of Linux Journal as well as instant online access to current and past issues. There's NO RISK and NO OBLIGATION to buy. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994.

Sorry, offer available in the US only. International orders, click here.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
yeliz's picture

thanks

On November 16th, 2008 yeliz (not verified) says:

Thank you very much for this useful article and the comments.

---------------
Leonard The Magazine Stundent at 9 Eylul University sohbet

download enigma mp3 songs's picture

linux

On October 2nd, 2007 download enigma mp3 songs (not verified) says:

S. is Miller? David Who . Bye.

enigma variations download's picture

linux

On October 2nd, 2007 enigma variations download (not verified) says:

can fix stopped my running! After XAMPP rebooted Linux box I this? How . Bye.

toys's picture

Similar setups

On August 18th, 2007 toys (not verified) says:

Interesting article. I think Linux was a very good choice in automating this process. I have spotted many home – CCTV systems, such as ViewSurf here, that are available through a Linux set up and got quite excited about some of the prospects. Having got my brother to use one of them, it looks like a definate cheaper option for the same kind of quality you would get through a Windows or other kind of system.

linux fun's picture

advanced config

On December 4th, 2006 linux fun (not verified) says:

yes, the basic configuration of the ViewSurf service is quite simple, but there isn't much documentation for doing advanced stuff.

Chiff's picture

where to find a recent vcr plugin for linux ?

On January 4th, 2007 Chiff (not verified) says:

I would like to know, where I could find a recent video/x-vcr plugin for Linux, because the versions I have seems not to work.
I woul be interrested in a video converter from vcr to mpeg

Post new comment

Please note that comments may not appear immediately, so there is no need to repost your comment.
The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <i> <b>
  • Lines and paragraphs break automatically.

More information about formatting options

Featured Videos

The November 13, 2008 edition of Linux Journal Live! Shawn Powers and special guest, Linux Journal Author Daniel Bartholomew, talk e-book readers and Daniel's Kindle, DRM, and other goodness.

From the Magazine

December 2008, #176

The Oxford English Dictionary says the word "gadget" is a placeholder name for a technical item whose precise name one can't remember. Like that book-reader thingy from Amazon...what's it called? Spindle, Gindle...Kindle, that's it. Check it out in this month's gadget issue.

Other gadgets covered include the Nokia tablets, the BlackBerry, the Neo FreeRunner, the Dash Express, the Roku Netflix Player, the Kangaroo TV, The TomTom GO 930 and the MooBella Ice Cream System. On the larger hardware front, read the reviews of the Acer Aspire One and the YDL PowerStation. On the software front, check out the articles and columns on memcached, Samba security, Mutt, desktop gadgets, bash and Puppet. To wrap it all up, read Doc's thoughts on Google and the browser platform.

Read this issue

Sign up for our Email Newsletter