vvrrttpp
VRTP: Implementing a Monitor Application for the Real-Time Transport Protocol (RTP)
using the Java Media Framework (JMF)
Francisco Afonso
Thesis Advisor: Don Brutzman
September 1999
vvrrttpp
• An RTP monitor is a useful tool for MBone applications and future vrtp applications
• JMF is a possible solution for the implementation of the RTP protocol in vrtp
•JMF is a free package, extension of Java language
• The RTP Monitor is the first step to understanding JMF for future transmission and reception of simulation data
Thesis Motivation
vvrrttppReal-Time Transport Protocol (RTP)
• RTP is a protocol designed to support the transmission of time-based media, such as audio and video, over multicast-capable networks
• Using RTP a session between several participants can be established (many to many). Each participant sends feedback messages about the reception of each sender. (RTP Control Protocol - RTCP)
• RTP does not guarantee real-time delivery, since it usually runs over UDP
•RTP is used in MBone - Multicast Backbone (an experimental worldwide multicast network)
vvrrttpp
MBone Videoconference Example (using vic)
vvrrttpp
Definition: an RTP monitor is an application that receives packets sent by all participants, to estimate the quality of service for distribution monitoring, fault diagnosis and long-term statistics. (RFC 1889)
RTP Monitor Application
vvrrttpp
• JMF is a Java API developed by Sun Microsystems and other companies to allow the use of multimedia features by Java applications and applets
• Supports reception and transmission of audio and video streams using RTP
• Latest version: JMF 2.0 Beta
Java Media Framework (JMF)
vvrrttpp
• vrtp is being developed to provide client, server, multicast streaming & network-monitoring capabilities in support of internetworked 3D graphics and large-scale virtual environments
Virtual Reality Transfer Protocol (vrtp)
vvrrttpp
vrtp Streaming Stack
vvrrttpp
• RTP specification (RFC 1889) - 70 pages
• JMF API Programmer's Guide - 200 pages
• JMF Javadoc (RTP API only) - 120 pages
- 29 classes, 22 interfaces, 4 exceptions
• JMF example source code
• A lot of Internet browsing about RTP
• JMF and IEFT - AVT mailing lists
Thesis Work
vvrrttppThesis product : rtpMonitor
vvrrttpp
• Displays global and stream statistics
• Displays participants and feedback reports
• Records statistics on files ( last five minutes, previous five minutes, last hour, previous hour, different dates)
• Plays audio or video received in the session
• Saves session addresses and names as bookmarks
• Allows customization ( recording interval, presentation interval, participation in the session, … )
• Launches external application for viewing output files
rtpMonitor Features
vvrrttpprtpMonitor Session Bookmarks
vvrrttpprtpMonitor Preferences
vvrrttpprtpMonitor Output Files
vvrrttpp
JMF / RTPMonitor Media Presentation
vvrrttpp
• Software reuse is good. Do not reinvent the wheel!
• Big companies make big pieces of software with lots of bugs. Try to help detect the bugs, specially if the software is free and you need it.
• Study Design Patterns. They have been used by good software designs.
• Subscribe mailing lists about your thesis topic. You can learn with other people problems and experiences.
• Internet standards are still evolving. You can help!
Lessons Learned
vvrrttpp
In RTPMonitor:
• Present information about the participants
• Save statistics in XML format
• Analyze stored statistics and present them graphically
• Receive Session Description Protocol (SDP) announcements
In vrtp:
• Send and receive simulation data with RTP and JMF
Future Work
vvrrttpp
<?xml version="1.0" ?><!DOCTYPE Stat SYSTEM "RTPMonitor.DTD" ><Stat> <Report> <Time> 14:32:29 </Time> <SessionTable> <TotalParticipants> 2 </TotalParticipants> <RemoteParticipants> 1 </RemoteParticipants> <ActiveParticipants> 1 </ActiveParticipants> <TotalBytesRecd> 132986 </TotalBytesRecd> <TotalPacketsRecd> 494 </TotalPacketsRecd> <RTCPPacketsRecd> 122 </RTCPPacketsRecd> <SRPacketsRecd> 73 </SRPacketsRecd> <BadRTPPackets> 0 </BadRTPPackets> <BadRTCPPackets> 0 </BadRTCPPackets> <MalformedSR> 0 </MalformedSR></SessionTable> <SenderTable> <SenderCNAME> [email protected] </SenderCNAME> <SenderSSRC> 389773164 </SenderSSRC> <LostPDU> 0 </LostPDU> <ProcessedPDU> 372 </ProcessedPDU></SenderTable> <RcvrTable> <RcvrCNAME> [email protected] </RcvrCNAME> <RcvrSSRC> 3817614594 </RcvrSSRC> <RcvrSRCSSRC> 389773164 </RcvrSRCSSRC></RcvrTable> <RcvrTable> <RcvrCNAME> [email protected] </RcvrCNAME> <RcvrSSRC> 389773164 </RcvrSSRC> <RcvrSRCSSRC> 389773164 </RcvrSRCSSRC></RcvrTable> </Report></Stat>
Future work: example XML output file
vvrrttpp
RTP: http://www.ietf.org/internet-drafts/draft-ietf-avt-rtp-new-04.txt
JMF: http://www.javasoft.com/products/java-media/ jmf/index.html
vrtp: http://www.web3d.org/WorkingGroups/vrtp/
XML: http://www.w3.org/XML
UML: http://www.rational.com/uml/index.jtmpl
Some Web References
vvrrttpp
• Francisco Afonso - [email protected]
• Don Brutzman - [email protected]
http://web.nps.navy.mil/~brutzman
Contact Information