Real Time Video Streaming over RTP/UDP

Alper Guler, G. Bozdagi Akar

There are two aspects of the network congestion problem in real-time digital video applications. First one is how to improve the quality of the decoded video at the receiver in case of congestion. The second one is how to share bandwidth fairly with TCP sessions on the same path considering that a TCP session implements a strict congestion control mechanism. As a solution for both aspects, this thesis implements different bandwidth adaptation mechanisms at the transmitter in the application level because there is no such mechanism in UDP (User Datagram Protocol) which is the transport protocol used in multimedia applications.

We are using the Real-time Transport Protocol(RTP) for the real-time transmission of digital video over the Internet. It consists of a data part and a control part. The data part of RTP is an application-layer framing protocol that provides support for applications with real time properties(e.g., timing reconstruction, loss detection, content identification). The control part, called Real-time Transport Control Protocol(RTCP) monitors the data delivery and provides feedback to the senders. We use this feedback information for adaptation of video encoding at the sender. RTP and RTCP will be explained in detail.

We have used the Java Media Framework(JMF 2.0) for writing the video transmitter and receiver programs. JMF has an RTP API which can be used to transmit a captured real-time video stream through an RTP session to a desired destination(an IP address and a port pair). Feedback from the receiver can also be obtained in RTCP receiver reports and this feedback is used for adapting the encoding parameters at the source.