2007-03 Sko2: Animation over RTP

Strona "ANIRTP" w budowie
w budowie

Zapraszam wkrótce.


Here are notes related to project for Programming Computer Networks subject.

What for ?

Main aim of project is to show main ideas related to how transmit video data through RTP [1].

What does it do ?

This project consist two packages:

  • server
  • client

Server reads animation and sends to client over RTP protocol - to be more specific TCP/UDP/RTP.
Animation is a sequence of images.
Image is a pixmap file of DIB format (also known as BMP OS/2 , Windows bitmap format).
Client receives raw interlaced data.
On beginning accumulates data into buffer.
No feedback information is being send to server - no Qos, no RTSP.

Sources and sources' documentation



Sources' Documentation


Compilation and usage


make - to make all
make clean -to clean
make <TARGET> -to make taget
Targets are described in "Usage" section (soory for little mess).

If it complains about lack of libglut (-lglut) do folllowing:
Find where you have glut libs :
/sbin/ldconfig -p | grep libglut
On my system it gave me

libglut.so.3 (libc6,x86-64) => /usr/lib64/libglut.so.3
libglut.so.3 (libc6) => /usr/lib/libglut.so.3
libglut.so (libc6,x86-64) => /usr/lib64/libglut.so
libglut.so (libc6) => /usr/lib/libglut.so

but on other it gave me /usr/X11R6/lib path.
Let's assume that on your's it's /usr/X11R6/lib , cause it's usual path.
Now edit Makefile file and change lopt line to

lopt=-L/usr/X11R6/lib -lGL -lglut

Now it should compile fine… if not, try to install glut on your system (i.e. freeglut).

Preparing series of images



An example application that sends rtp packets. You can specify parameters in main loop, and check with sniffer (i.e. Wireshark) and "Decode AS RTP" , how does it look like.

Testing sending RTP packets with code template.

./sendrtp_example.bin -h


Udp proxy application. Good for simulating network problems.

Just proxing

./udpproxy.bin -me -d

Proxing with "quality" 50% (I mean with 50% packets forwared) and statistics
./udpproxy.bin -me -d -stat on -q 50


This sends images over RTP.

With standart speed, etc.

ls -1 *.bmp | sort | ./sendrtp_images.bin -me -d

And with addtionall info
ls -1 *.bmp | sort | ./sendrtp_images.bin -me -d -stat on

Or from another directory
find /long/direcotry/path -name '*.bmp' | sort | ./sendrtp_images.bin -me -d

Design notes.

This program uses interlacing technique to reduce negative impact of package loss.

Information sources



O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-ShareAlike 3.0 License