Project Stage 1: Packetizing MPEG-1 Video

Due: 11:59pm, 7 September 2005

In this project, your task is to write a packetization routine that takes in a MPEG-1 video file and produces RTP packets from the video file, following the standard and recommendations in RFC2250.

A skeleton code, based on Mnt, is given to you. You should implement your code in the class MntMPEGFileRTPizer and class MntRTPMPEGPacket.

Example OTcl scripts that uses MntMPEGFileRTPizer is given to you as well. Two scripts, mpgtortp.tcl and rtptompg.tcl are given. The script mpgtortp.tcl reads from an MPEG-1 video and writes the resulting RTP packets to a binary file. The script rtptompg.tcl reads the RTP packets from the binary file, removes the packet headers, and write the payload into another binary file, recreating the original MPEG file. The scripts are included in the tarball.

To submit your project, create a tarball of all yours sources, (please exclude sample videos, object files etc.), put it into IVLE workbin. Your source code should be properly commented with explanations to help me understand your code. You may optionally include a README.txt file that explains how your code works.

How to Compile/Run under UNIX

Uncompress the tarball, by running

   gunzip proj1.tar.gz
   tar xvf proj1.tar 
A subdirectory call proj1 should be created after this step.

Under proj1/tcl8.3/unix, run

This should compiles and create Tcl library called libtcl8.3.a.

Under proj1, run

This should create a binary file called mntsh.

If everything is fine so far, you are ready to start coding. Make changes as needed to the Mnt source code, and recompile by running make.

To run the given Tcl script, use:

   mntsh mpgtortp.tcl a.mpg b.rtp
   mntsh rtptompg.tcl b.rtp c.mpg
Where a.mpg is the input MPEG video file and c.mpg is the output MPEG video file. b.rtp is the binary file that contains dumped RTP packets.