Georgia Tech: Networking & Telecommunications
 Group


The Interactive Multimedia Jukebox Project

Straightforward, one-way delivery of video programming through television sets has existed for many decades. In the 1980s, new services like Pay-Per-View and Video-on-Demand were touted as the "killer application" for next-generation Internet and TV services. However, the hype has quickly died away leaving only hard technical problems and expensive systems. As an alternative, we propose a new paradigm offering flexibility in how programs are requested and scheduled for playout, ranging from complete viewer control, (like VoD) to complete service provider control (like traditional broadcast or cable TV). Our new paradigm presents some challenges of its own, including how to best schedule viewer requests, how to provide VCR-style interactive functions, and how to track viewer usage patterns. This page offers details on our implementation of the jukebox-based service called the Interactive Multimedia Jukebox (IMJ). The IMJ provides scheduling via the World Wide Web (WWW) and content delivery via the Multicast Backbone (MBone).

Go to the IMJ Interface Page and Watch Some Programs!!!


Papers about the IMJ


Using the IMJ

Basic Operation

    The IMJ web page is a request and scheduling interface for the playout of cartoons and movies. You can request a program to be played by making a selection and submitting your request at http://imj.gatech.edu/. Request scheduling is done using a set of scheduling policies which currently include:
    • Channels 1,2 have a TTL of 127 (maybe be reduced due to MBone load).
    • All programs longer than 10 minutes are scheduled on Channel 2.
    • Channel 3 is now GT ONLY (TTL=15).

    To see what is currently playing on either channel, you must start the MBone tools. There are three different ways of doing this. The easiest is probably just to cut and paste the commands as they are shown on the scheduling page (replacing a channel number 1-3 for the x. Alternately, there is a method described below which allows you to simply click on the channel number in the schedule.

    The IMJ page is designed to re-load every 60 seconds so that the latest schedule is displayed. The schedule can be refreshed more rapidly by clicking on the "Refresh Schedule" link.

Requirements

    Using the Interactive Multimedia Jukebox requires three basic things:

    • Connectivity the Multicast Backbone (MBone). If you are in the College of Computing, you should have access to the latest MBone tools and the workstation (if it is either a Sun or SGI) you are on should be capable of receiving MBone sessions.

      Note: If you are using an X terminal and/or exporting your display, you won't receive audio and video quality will be very poor.

      If you aren't in the CoC, but are on the Georgia Tech campus then you can still use the IMJ but you may not have the MBone tools installed, and/or you may not be receiving MBone transmissions (the campus network only has MBone support in a few places). Send me e-mail and I'll see what we can do.

      If you are outside of Georgia Tech then you most likely saw the advertisement through sdr. That means you are already connected!

    • Addition to Your .mailcap File. Before being able to click on the channel number to start the MBone tools you must have the line
       application/x-jkb; start-imj-tools %s 
      in your .mailcap file. The .mailcap file is used by your browser to match MIME types with an appropriate application to run. Note: If you add anything to your .mailcap be sure to quit and re-start your browser.

    • The Script "start-imj-tools" in Your Path. This script starts the MBone audio and video tools with the proper command line options so that you can see the audio and video for each channel. To verify that start-imj-tools is in your path, type "which start-imj-tools" and make sure the file is found. If the file is not found, create an executable file containing the following:
      #!/bin/ksh
      
      var=`cat "$1"`
      
      vat -r -I 2 -t 1 -C "Channel $var Audio" 224.2.1."$var"/19960 & 
      vic    -I 2 -t 1 -C "Channel $var Video" 224.2.2."$var"/61000 &
      
      Note: You can watch multiple channels at the same time, but you can only hear one channel at a time (even though the audio tools for multiple channels may be running). To switch between audio channels, click on the "Keep Audio" button in the audio tool.

Project Details

The following is a very rough overview of the key parts to the IMJ.

MBone Information

There are lots of places to go for information on the MBone, some of which are included below. In one of my papers, I describe the MBone as follows:

    The Multicast Backbone (MBone) is a virtual network overlaying the Internet. It provides one-to-many, best effort delivery of real-time multimedia data between MBone-connected hosts. The MBone has served as a testbed for the development of multicast protocols, real-time protocols, and group conferencing tools. As the MBone has evolved over time, it has come to provide a relatively stable platform for the world-wide delivery of seminars, conferences, working group meetings, and some entertainment programs. (from " Collection and Modeling of the Join/Leave Behavior of Multicast Group Members in the MBone", HPDC '96, August 1996)
A few useful sites for information and tools are:

System Architecture

The IMJ has two types of connections to the Internet: one for transmitting scheduling information and requests using a web interface, and a second for transmitting audio and video data via the MBone.

One machine, the IMJ scheduler, is responsible for receiving and processing program requests and then producing an HTML schedule. This machine is also responsible for doing scheduling on each of the IMJ's channels. When a program is scheduled to start, the IMJ scheduler sends an instruction to the video server which handles all playout functions.

System Implementation

The IMJ prototype is implemented using a combination of existing software, the WWW, the MBone, and some specialized code. Getting all the parts to fit together was an interesting job to say the least! I hope to eventually publish an ``experiences paper'' on the whole thing.

Here is a description of the steps starting from when a request is submitted and concluding with the playout of a program.

  • The WWW page: The interface page, written in HTML, consists of two types of information: dynamic information which includes the schedule itself, and static information which is everything else. The main IMJ page is actually changed on the fly by the scheduler in response to request additions or completions. As the page is reloaded, scheduling changes are displayed.

  • Request Submission: A perl script is used to receive a program request from the HTTP daemon. Important data is stripped and passed to the scheduler via a UNIX pipe.

  • Request Scheduling: At the other end of the UNIX pipe is a scheduling daemon written in C. This daemon receives requests and schedules them for playout on a specific channel at a specific time. In most cases there is a set of scheduling policies used to guide the scheduler in making its decision. Once scheduled, the HTML page is updated. When the start time for a program arrives, the scheduler sends a remote shell command to the Video Server.

  • Video Server: The video server is simply a Sparc Station with an external local disk. Stored programs were created using Henning Schulzrinne's rtpdump utility and of course vic and vat. Playout is accomplished using rtpplay.


Contact information

Kevin C. Almeroth
Broadband Telecommunications Center (BTC)
College of Computing                       (404)894-6736 (Office)
Georgia Institute of Technology            (404)894-6849 (Lab)
Atlanta, Georgia 30332-0280                (404)875-4204 (Home)

E-mail:  kevin@cc.gatech.edu