![]() |
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
- K. Almeroth and M. Ammar, "
The Interactive Multimedia Jukebox (IMJ): A New Paradigm for the On-Demand
Delivery of Audio/Video", Proceedings of the Seventh International
World Wide Web Conference, Brisbane, AUSTRALIA, April 1998.
[Text Abstract]
(to appear)
- K. Almeroth and M. Ammar, " The Interactive Multimedia Jukebox (IMJ): A New Paradigm for the On-Demand Delivery of Audio/Video (Extended Abstract)".
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)
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
