vrtp: RTP Monitor using JMF
Download
Report
Transcript vrtp: RTP Monitor using JMF
v
r
t
p
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
Thesis Motivation
v
r
t
p
• 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
Real-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)
v
r
t
p
MBone Videoconference Example
(using vic)
v
r
t
p
RTP Monitor Application
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)
v
r
t
p
Java Media Framework (JMF)
• 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
v
r
t
p
Virtual Reality Transfer Protocol (vrtp)
• vrtp
is being developed to provide client, server,
multicast streaming & network-monitoring
capabilities in support of internetworked 3D
graphics and large-scale virtual environments
v
r
t
p
vrtp
Streaming Stack
v
r
t
p
Thesis Work
• 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
v
r
t
p
Thesis product : rtpMonitor
v
r
t
p
rtpMonitor Features
• 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
v
r
t
p
rtpMonitor Session Bookmarks
v
r
t
p
rtpMonitor Preferences
v
r
t
p
rtpMonitor Output Files
v
r
t
p
JMF / RTPMonitor
Media Presentation
v
r
t
p
Lessons Learned
• 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!
v
r
t
p
Future Work
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
v
r
t
p
Future work:
example XML output file
<?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>
v
r
t
p
Some Web References
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
v
r
t
p
Contact Information
• Francisco Afonso - [email protected]
• Don Brutzman - [email protected]
http://web.nps.navy.mil/~brutzman
v
r
t
p