The SR-RTP/VideoCM library provides a library to enable real-time streaming applications (such as streaming MPEG-4 video) to cope with packet loss, variable bandwidth, and variable delay on the Internet. The main contribution of the package is to provide a means for selective retransmission of lost packets in a fashion that is backwards-compatible with RTP. Additionally, we provide integration with the Congestion Manager to provide a system capable of performing TCP-friendly streaming of real-time data. The package contains the following components:
Our system supports backwards-compatible extensions to RTP/RTCP that allow for the application-level framing of the data with Application Data Units (ADUs). ADUs enable fragmentation and reassembly of independently processible units of data and also make selective recovery of application specific data units possible at the receiver. For MPEG-4, one frame of the compressed video bit-stream (separated by VOP start codes) corresponds to one ADU. These frames are packetized by the sender and then, when they are received by the receiver, are reassembled and passed to the application layer for decoding once the complete frame has been received. An ADU may involve multiple packets (or ADU fragments): each is independently named in order to efficiently request and perform selective retransmissions.
The server packetizes the video (in the case of MPEG-4, the bitstream is packetized on resynchronization marker boundaries), labels the packets with ADU sequence numbers and offsets, and sends the RTP packets over UDP. These semantics allow the client to reassemble the packet and to determine if any data is missing. On receiving a packet, the client sends back an ACK to the receiver, acknowledging the successful receipt of an ADU (or portion thereof). Alternatively, the client can send a retransmission request requesting retransmission of a specific portion of the bitstream.
Click on the links on the left for the source code, example applications, and documentation, and here for the copyright notice.