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.
- View Mnt documentation (online)
- Download Source Tarball
- Download Foreman Video Clip
- Download Akiyo Video Clip
- IVLE Forum
- IVLE Workbin
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.tarA subdirectory call proj1 should be created after this step.
Under proj1/tcl8.3/unix, run
./configure makeThis should compiles and create Tcl library called libtcl8.3.a.
Under proj1, run
makeThis 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.mpgWhere 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.