     Video on Demand on Heterogeneous network

     TABLE OF CONTENTS 

     I.   Package components:
     II.  How to install it
     III. How to run it
     IV.  References
     V.  How to contact the author
     

     I. This package is designed to demo the video on heterogeneous
network.

     On the top level, the system has six components:

     Sever.java           :  registration server
     Regist.java          :  registration client
     ClientMain.cc        :  Main of video Client 
     ServerMain.cc        :  Main of video Server 
     Webcam.java          :  a java application to accept video frames from
                             ClientMain.cc and display it.
     VideoServerMain.java :  a java application to provide real - time
                             video stream to ClientMain.cc (*)
     
    (*) this is only necessary real-time video 
     

    II. How to install it ?

       1 install srmlib2.0 

          1) download srmlib 2.0 

             srmlib is a library for reliable multicast, it can be
download from 
       http://www-mash.CS.Berkeley.EDU/mash/software/srm2.0/ (*)
   
          2) compile srmlib 2.0
             config srmlib with -enable-tcl-api flag, then the srmlib
             can provide tcl event-driven hook.

          3) install tcl, tk, etc to compile srmlib if necessary 
   
   
      2. set up path to libsrm.a

      3. download mpeg2decode package and compile 

      4. try to compile the examples with the srm2.0, if you can run
the examples, continue /*** IMPORTANT ***/.
      
      5. untar the package in the example directory. if you untar the
in another dir, you need to change the Makefiles to compile
ServerMain, ClientMain.

      6 compile SeverMain

          cd SRM/example/ ; make -f Makefile.ServerMain VOD

      7. compile ClientMain

          cd example/; make -f Makefile.ClientMain  VOD

      8. compile java applications :

          cd SRM/example/; javac VideoServerMain.java (*)
          cd SRM/example/; javac Server.java          (*)
          cd SRM/example/; javac Regist.java          (*)
          cd SRM/example/; javac Webcam.java          (*)

          (*) this java codes are good for JDK1.2 only
      
    III. How to run it ?

         1. System requirement

            1) Multicast enable network

               since this package uses multicast, it's required 
               to run the package on the multicast enable network, 
               such as inside the firewall of cornell computer 
               science dept.

            2) unix OS
               
               Please run the codes on Solaris 2.6 systems, it's only 
               tested on this system.
         
         2. procedure to run :

            1) start the ServerMain

               $ ServerMain  3000 3 30
                 
                 Note: here 3000 is the port ServerMain used to listen
                 to the Registration Server, it is referred as SRMServerPort
                 
                       3  is the maximum channeles used by the
                          ServerMain to do the encoding
                       30 is the interval between the frames for the
                          ServerMain which means 30 ms, 30 or lager is
                          suggested.

            2) start the ClientMain
                  
               $ ClientMain 9000
                 
                 Note: 9000 is the port used by ClientMain to pass
                       data to Webcam, it's referred as SRMClientPort

            3) start the Registration Server

               $ java Server SRMSeverHost SRMSeverPort
                  
                 SRMSeverHost is the machine name where ServerMain is
                             started.
                 SRMSeverPort should be the same as port used in ServerMain
           
            4) start the Registration Client

               $ java Regis fps SRMClientHost SRMClientPort

               Note: SRMClientHost and SRMClientPort is the hostname
and port number of ClientMain

            5) start Webcam

               $ java Webcam  SRMClientHost SRMClientPort 
        
               Note: SRMClientHost and SRMClientPort is the hostname
and port number of ClientMain , fps is frames per second.


            6) choose the name of movie you want
               and select the bandwidth you have 
               on the Regist client, click "submit"
            7) you should be able to run it
 
 /************************************/

 /*         IMPORTANT NOTICE
 /*     
 /*   There might be some hard code machine names
 /*   such as "ringding" etc, built in the code.
 /*   If you run it on other machines, there might
 /*    be some problem, look into the code, or  send me email
 /*               
 /************************************/                      

    V. Reference :
     
       please check the VODIntro.ps or VODIntro.pdf this package, html pages can be
find in the SRM/example/html/ subdir.
          
    IV. How to contact the author:

        The author can be reached at ml124@cornell.edu 
