Subject: IMJ and mcontrol

From: [email-masked] (Kevin C. Almeroth)
Date: Thu, 16 Jul 1998 16:09:24 -0700

Contrary to the message on the IMJ home page (http://imj.gatech.edu/)
I believe the IMJ is now back up.  It has been something of a painful
problem to solve...  I'm still recovering a bit from the whole process.

At this time, I also wanted to announce the beta (well, still sorta
alpha) release of mcontrol...  a live stream control for the MBone.
It basically works by redirecting a multicast stream into a local
buffer and then playing to vic and vat from the buffer.  Buffering
allows a person to rewind, pause, and fast forward in the local
buffer...  great to go back and listen to that missed question.
mcontrol is based on rtpdump and rtpplay.

I've included the Help.txt file below.  Coments and feedback to me
or David, the student who implemented the whole thing.

-Kevin 

OVERVIEW
--------

mcontrol is a tool that buffers an incoming live video and/or audio 
MBone session. Using the MBone vic tool for video and either rat or
vat for audio, mcontrol allows you to pause, rewind, and fast forward 
the stream within that buffer.   The buffering strategy is based on the
ideas presented in "On the Use of Multicast Delivery to Provide a Scalable 
and Interactive Video-on-Demand Service" by Kevin C. Almeroth and Mostafa
H. Ammar.  A copy in the paper can either be found in the August 1996 
edition of the Journal on Selected Areas of Communication (JSAC), or
at http://www.cs.ucsb.edu/~almeroth/publish/.

The basic concept is that an mcontrol user allocates some amount of
disk space for buffering.  This space acts as a circular buffer and
allows the user to delay playout (either by rewind or pause) up to
the maximum size of the buffer.  The user can also fast forward back
to the "live" point in time.  mcontrol provides a java-based GUI
which shows the status of the buffer; gives the user some feel for
how much time is available for pause, rewind, and fast forward; and
allows the user to initiate scan or random access VCR-style functions.

REQUIREMENTS
------------

mcontrol requires an MBone audio and video tool, rtpdump, rtpplay, and
the binaries for the Java virtual machine v1.1.  The INSTALL.README
provides information on where to find these tools and how to make
them available for mcontrol.  This pre-release has only been tested on 
Sun Solaris, but the platform-independent nature of Java should make
portability trivial (at least to UNIX-based systems).

The buffer size is represented in number of minutes, and is a tunable
parameter. A combined video and audio stream for a standard MBone
transmission roughly translates to 1.5 megabytes of disk space per minute 
of buffering.

STARTING MCONTROL
-----------------

If you have correctly installed your sdr.tcl file (see INSTALL.README),
you will have a "Join w/mcontrol" button on the session info window of
sdr. Use this button to join a session with mcontrol running.

If you are not using mcontrol with sdr, you can invoke it with either of the
following command line options:

	java mcontrol [-a Audio Addr/Port] [-v Video Addr/Port] &
or:
	jre -cp classpath mcontrol [-a Audio Addr/Port] [-v Video Addr/Port] &

where classpath is the full path of the mcontrol classes.

RUNNING MCONTROL
----------------

When mcontrol starts it will immediately start buffering already-played
frames (for use with rewind).  In normal playout mode, mcontrol will
attempt to fill the buffer with already-played frames (represented as
blue in the buffer) in order to maximize the time available for rewind.  
When a rewind or pause function is initiated, mcontrol will begin
buffering frames not-yet-played (represented as green in the buffer).

The pointer represents your current playout time in the buffer relative 
to when you started buffering. When the buffer fills up it will 
automatically discard buffered data that is older than your maximum 
requested buffer time. If the pointer is to the far right of your
buffer (the bar is all blue with no green), your playout is live and
not buffered. 

The blue bar and timer to the left represent the amount of buffer
prior to your current playout position. This time is available for
pausing or rewinding.

The green bar and timer to the right represent the amount of buffer
after your current playout position. This time is available for
fast forward. If you fast forward beyond the beginning of the buffer,
playout will switch back to the live streams (Although the buffer will
continue to update, allowing you to pause or rewind later).

To pause, rewind or fast forward you can either use the buttons provided
or click and drag the pointer to the position you desire to play. When you
release the pointer, play will resume from that point.

The default buffer size is 3 minutes. You can use the Menu button to 
change the buffer size, but any existing bufffer will be dumped when you 
change buffer size.

BUG REPORTS
-----------

Suggestions, problems, bug reports to [email-masked] or
[email-masked].

Thanks!