XposeXkiosk

This living document describes our work on the XposeXkiosk product, a new way to make presentations from the X Window System.

If you only want to know how to use the kiosk medium, you find instructions below (How to use).

This document continuously reflects our work. Please come back often.

Overview

The products XposeXrecord or XmetaX with the Pose option are used for exactly and totally recording of X Window sessions or individual applications, optionally together with audio, video, or arbitrary binary data streams.

For displaying a recorded file XposeXplay is used.

Video conversion and display

XposeXplay can be used to convert a Pose file into a video format, too. Until now this was the only way to show Pose recordings on non-Unix/Linux computers.

However, converting Pose files and displaying MPEG video files yield many disadvantages:

The conversion is time consuming, only very powerful computers allow real time conversion.

You need to know in advance the supported video formats and resolutions of the computer which will eventually playback the video file.

Scaling down may result in significant information loss: thin lines get invisible, text becomes unreadable.

Zooming up may yield unesthetic jaggies and uneven text display.

The frames-per-second nature of video files counteracts the Pose principle of total and correct recording: for instance, blinking elements are not displayed correctly.

Synchronously replaying multiple screens is nearly impossible.

Video formats are optimized for moving pictures, but static solid colored or stippled areas and lines show unesthetic compression artifacts.

A converted video file is much larger than the compressed Pose file.

While even minimal compression of a video file results in significant information loss, Pose files can be compressed losslessly very efficiently.

The following table shows the results and numbers for a 8:36 minutes real life example (screen resolution 1280×1024, no OpenGL, conversion using ffmpeg under Solaris 10 on a Sun Ultra 20):

Format Scale Quality File size Conversion time
  Pose compressed 1:1 (1280×1024) 100% Pose   6.5 MBytes none
5:4/4:3 (1024×768) 100% Pose   6.5 MBytes none
MPEG4/AVI (25 fps) 1:1 (1280×1024) 100% 412 MBytes 8:42 minutes
60% 333 MBytes 8:48 minutes
5:4/4:3 (1024×768) 100% 297 MBytes 5:05 minutes
60% 201 MBytes 5:03 minutes

To summarize: For readable correct display and for compact files you should not need to convert the Pose files into a video format, but use the Pose files directly.

Therefore we thought about ways to overcome the conversion process. How to natively display Pose files on unknown generic PC hardware, from sub-notebook to power desktop?

Imagine the optimum: the kiosk idea

How are presentations held? On the other side of the world a speaker, probably without technical background, at least regarding the X Window System, wants to illustrate or structure his speech using X11 recordings. He has to use unknown hardware, operating system, and player software to display the recordings. The technical setup is carried out in a hurry between two speakers.

Ideally, the speaker inserts a medium (CD, DVD, USB stick) containing the recordings into the PC, some magic software starts from the medium and presents a menu for selecting a recording, which is then displayed in a way optimally adapted to the available hardware, be it one single sub-notebook or a network of high-end PCs with multiple monitors for simultaneous display of several recordings. A simple graphical user interface and hot keys allow to pause, resume, and stop the playback or switch to another recording.

And, having a bad cold, the speaker lets the kiosk synchronously replay the audio comments recorded during creation of the presentation.

That's the kiosk.

Starting from this ideal imagination we are working on the XposeXkiosk product. This software will let you select clips from your repository of Pose files and generate a disk image containing the kiosk for autonomous display of the recordings on generic PC hardware.

The kiosk

Distributed architecture

The kiosk is based on a distributed architecture. In the simplest case one PC takes over all tasks. However, each networked computer can host one or multiple of the following functions:

Providing one or more screens for display of (part of) a recorded clip

Executing the Pose playback program, a special version of xposextool of the XposeXplay product

Displaying and monitoring a graphical user interface for screen mapping and playback control

Holding the recorded Pose files in RAM or on the kiosk medium

The automatic configuration tries to optimally distribute the tasks on all networked computers according to their relative computing power, available memory, and network performance. The GUI can be accessed on every computer with a screen.

Simple operation

The automatic hardware detection, the automatic network negotiation, and the automatic configuration minimize the number of user operations needed to get the recorded files displayed.

For mapping the recordings onto the available screens an intuitive graphical user interface with reasonable defaults is used. The user may drag thumbnails representing the clips onto screen images, choose between zoomed, panned or cropped display, and much more.

A simple GUI and hot keys may be used to control a running playback: pause and resume, playback speed, terminate, cycle through the displayed screens, etc..

Security

Each of the Pose files on the kiosk medium can be protected by encryption. When accessing a file, the kiosk will ask for a password.

The communication between the participating computers over the closed network is encrypted, too.

The kiosk will never access the hosting PC's disks.

The kiosk builder

The XposeXkiosk product will mainly comprise the kiosk builder. This program provides all functionalities to generate a kiosk medium:

Define a clip (start time and end time for a part of a Pose file, playback hints, preferred display mode, etc.).

Select clips for inclusion into the kiosk.

Specify an encryption password.

Generate a disk image containing the complete kiosk.

Copy or burn the disk image.

The Maastricht XposeXkiosk prototype

For proof of concept (or our imagination) we first concentrated on the kiosk. Currently the kiosk builder is not more than a shell script collecting the various parts of the kiosk and generating the disk image.

Limited functionality of the kiosk

The current Maastricht prototype of the kiosk does not yet provide the full functionality:

The graphical user interface for screen mapping allows basic configuration only. However, automatic mapping does work.

Graphical user interface for playback control: Fast forward and backward is not yet implemented.

Concept of clips: you can choose complete Pose files only.

How to use

Booting and hardware configuration

The following procedure is to be carried out for each participating computer. With the current prototype you will need one kiosk medium for each computer. Future versions will allow to eject and re-use one kiosk medium for multiple computers.

After inserting the kiosk disk or stick you can access this document from the file system.

Now boot the computer from the kiosk medium.

Boot

For the first time you should select the default boot sequence. The other boot method is used in special cases, if automatic graphics configuration is not successful.

After booting the kiosk scans the hardware and automatically configures known hardware components.

Splash

After a short time the standby screen shows all kiosk computers in the network:

Standby

The monitors in the network are named Alpha, Bravo, Charlie, Delta, and so on.

Each host can be manually configured:

Host setup

For each graphics card you may choose the driver:

Graphics card setup

For each monitor the maximum resolution can be configured:

Monitor setup

Playback of a Pose file

The playback screen shows all available clips:

Playback

You may re-arrange the clips in the play-list and activate individual clips. If a clip is encrypted, you will have to enter the decryption password.

Clicking on the "Play" button starts playback of the play list.

For each clip you may either use the automatically configured screen mapping or specify all properties manually:

Playback properties

During playback you may access an on-screen GUI by touching the lower or upper screen border with the pointer:

On-Screen GUI

Future directions

Currently we are refining the kiosk.

Then we will work on the kiosk builder and a stand-alone Pose playback backend.

We will try to port the kiosk principle to Sun Solaris (SPARC).

Feedback

We really appreciate your feedback: bug reports, suggestions, additional features, new application areas, etc. Please use projects@x-software.com for technical requests and discussions and sales@x-software.com for any business related communication.

History

Date Modification
31. January 2007 update: the Maastricht kiosk prototype
10. January 2007 update: kiosk GUI
20. September 2006 update
14. June 2006 first public version

Copyright © 2010 X-Software GmbH
info@x-software.com
2009-12-09 17:51:19 +0100