Visual Traces

The video traces project looks at visualizations allowing users to explore the history of a video stream from a media space. These visualizations can be useful in revealing events and activities occuring within the video stream. By exploring several examples, we see how different visualizations may be useful in displaying long and short term histories, as well as limitations and issues that may arise from their use.

Update, 18/10/2006: Timeline package updated. Installer for the mpeg4 V2 codec included.


Download and Installation

  • Timeline: Timeline using video cubism to render visualizations of the last minute/hour/day/week of video history. See Installation Instructions, and read the README in the download.
  • Cubism: Basic video cubism example
  • Motion Blur: Creates a motion blurred composite image by adding 5 images sampled over an adjustable period of time.
  • Story Board: Samples frames over a regular interval to create a storyboard. Change detection (sampling the frame with maximal difference within the sampling interval) is available.
  • Change Detect: Uses change detection to trigger sampling. This is done by either choosing the frame with maximal difference within the sampling interval, or using a set threshold to trigger new image capture.

Timeline Installation Instructions:

  1. Install GroupLab Collabrary: The Collabrary can be found in \Installs\collabrary.msi or can be downloaded from
  2. Copy Build Directory: The build directory contains the precompiled executables for the Timeline. The contents of the build directory can be copied to wherever you want the program installed. The build directory has two subdirectories, archive and img; archive is where video files are stored and loaded, and img contains some images used by the program.
  3. Run CameraFeed (Optional): One can setup or join a camera feed server using the CameraFeed application /build/CameraFeed.exe. Timeline has the ability to connect to a server and run using one of the feeds contained therein. To The CameraFeed application will take the webcam feed from the locally connected machine and put it into a shared dictionary server. Simply run the CameraFeed application, enter a username, and the name of the shared dictionary server to connect to. (A server can be started simply by using the local ip and a shared dictionary name, for example "tcp://(localip):webcam".)
  4. Run Timeline: The Timeline program can be run using \Build\Timeline.exe. When the program starts up it gives three run options: running from the local archive, running live from the local webcam, and running live from a webcam feed. Select the desired option. If that option is to run using a webcam feed, you will also need to enter the address of a camera feed server - use the same server adress/name as used when you set up the camera feed application. When the Timeline successfully connects to the camera feed server you will see a list of available camera feeds and can select the one you wish to use. Note that when running in a live mode any video in the archive directory prior to running will be erased.
  5. To Recompile: The program was built in Visual Studio 2005. Open TimeLine.sln in the source\Timeline\ directory. Check that the references for Tao, Collabrary, and AviFile are ok. If not, these references are contained in the directory \Source\Steven\libs and can be re-added. Compile. The img subdirectory is already included in the Debug and Release directories and is required to run the program. The archive subdirectory is not included, however it will be generated the first time the program is run in live mode.

Bug List (Timeline):

  • When doing archive retrieval from a line that has already been loaded from the archive the accuracy of the retrieval point gradually drifts. I suspect there's a frame counter that is being added to the look up which only should be added when retrieving from live video.
  • Retriving off the end of a line that isn't fully populated does work, but does not automatically refresh when done as the refresh is triggered when the line is filled. A refresh can be triggered manually by adjusting the slicing column.
  • Retrieving near the beginning of a line (when the retrieval point is already being displayed by the next line up) appears to start the retrieval process (the braces are drawn and the lines go blank) and hangs because it doesn't load anything. Loading isn't really necessary as the point is already viewable, but the the UI shouldn't do anything either.

Recipes and How-To's

  • (Under Construction)

Tutorials and Examples

  • (Under Construction)