Video On Demand (Client)

Alex Basile
Columbia University
New York, NY 10027
USA
ab360@cs.columbia.edu

Abstract

A Java applet of a Video on Demand client. It contains a user interface that imiplements VCR functionality, such as, play, record, stop, and pause. It uses the RTSP protocol to communicate with a simmulated RTSP server. The RTSP protocol wraps the UDP transport protocol. In addition, the client uses the SDP protocol to setup the presentation based on the media streams described in the SDP file.

Introduction

The Video On Demand (vod) client was implemented to run with the simulated RTSP server that I have implemented. By simulated I mean that it uses the RTSP protocol to exchange messages with the vod client but doesn't send actually RTP packets to the Vic and Vat tools of the RTSP vod. The following is an outline to the rest of the report:

Related Work

Serveral students under the guidance of Professor Henning Schulzrinne have been working on the RTSP server. One student that I worked with in particular to understand the functionality that the RTSP server is capable Of is Liyong Yiet.

Background

  • The Real Time Streaming Protocol (RTSP) is an application that is implemented on top of either TCP or UDP transport protocols. It's purpose is to control over the delivery of data with real-time properties[1].
  • The Session Description Protocol (SDP) is an application that describes the media streams in a multimedia session for recipients to particate in the session [2].
  • vat is an audio tool that is capable of playing various audio file formats including Real Time Protocol (RTP);
  • vic is an video tool that is capable of playing various video file formats including RTP;
  • General understanding of the characteristics and functionality of Datagram sockets.
  • General understanding of Java or at least the concepts of Object Oriented Programming.

    Architecture

    From an architectual perspective this project consists of three modules: The Video On Demand Client, the simulated RTSP server, and the simulated SDP server. The SDP server responds to a describe message from the client by sending a RTSP message which contains the session description. For each given audio media described in the SDP, the Video On Demand Client executes an instance of vat. Similiarly, for each given video media described in the SDP, the Video On Demand Client executes an instance of vic. When I was selecting an audio tool to use I considered either vat or NeVoT. I choose vat for the simple reason that it was fimiliar to me. Similiarly, when selecting a video tool I choose vic over, NeViT, and IP/TV.

    The complexity of the Video On Demand client in terms of lines of code is 1800. Similiarly the complexity of the simulated RTSP and SDP servers is 204 lines each. Both Modules were written in Java 1.1.6.

    Program Documentation

  • Alex Basile is the only author. Email: ab360@cs.columbia.edu.
  • Brief Description of the Video On Demand client
  • System Requirements: Implemented with the Unix platform in mind, but performs on the PC platform as well.
  • Installation Instructions
  • Examples
  • Program Internal Operation
  • Restrictions: None known.
  • Future enhancements: Test the Video On Demand client with a server that delivers RTP packets to audio and video tools. Afterwards, incorporate a timing scale module that will convert the sliding bar intervals into frames. As a result, the when the user moves the sliding bar back, the timing scale module would figure out which frame to start playing from.

    Measurements

    In the scope of my project I concentrated on implementing the functionality of the vod client. The RTSP server was created for the sole purpose of testing the message passing of the RTSP messages. I didn't test with RTP files since that would involve implementing a relatively complex RTSP server. As a result, measurements servered no purpose in the scope of my assignment.

    Task List

    Alex Basile implemented both the Video On Demand client and the simulated RTSP server.

    References

    1. Henning Schulzrinne, Real-Time Streaming Protocol(RTSP), Internet Engineering Task Force, Columbia University, New York, NY, 1998.
    2. Henning Schulzrinne, Session Description Protocol(RTSP), Internet Engineering Task Force, Columbia University, New York, NY, 1998.
      Last modified: January 20, 1999 by Alex Basile