📄 report.html
字号:
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="author" content="Your name here">
<meta name="keywords" content="keyword; keyword">
<meta name="description" content="brief description">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<title>MPEG RTP Generation Module</title>
</head>
<body bgcolor="#FFFFFF">
<p align="center"><font color="#000000" size="5"
face="Trebuchet MS">MPEG RTP Generation Module</font></p>
<address>
<font face="Trebuchet MS">Yuntai
Kyong<br>
Columbia University<br>
New York, NY 10027<br>
USA<br>
</font><a href="mailto:kyong@comet.columbia.edu"><font
face="Trebuchet MS">kyong@comet.columbia.edu </font></a>
</address>
<p align="left"> </p>
<h2 align="left" a name="abstract"><a name="abstract"><font
color="#000000" size="4" face="Trebuchet MS"><em>Abstract</em></font></a></h2>
<p><font face="Trebuchet MS"><em><!---------------------------------------------------------------------> </em></font><font size="3"
face="Trebuchet MS"><em>In this project, a software module that
splits an MPEG file into <br>
individual frames and wraps each into the necessary RTP payload
and sets <br>
the fields of fixed RTP header and extension header for MPEG
stream <br>
according to the packeting rules and header field format
described in <br>
RFC2038 was developed. This module can be intergrated to RTSP
server or <br>
any generic server that delivers MPEG video streams onto network.
Simple <br>
RTP player was also developed for dumping MPEG RTP packets and
verifying <br>
the RTP-packetized MPEG video stream that it received. </em></font></p>
<p> </p>
<p><font color="#000000" size="4" face="Trebuchet MS">Table of
Contents</font></p>
<p><a href="#abstract"><font color="#000000" size="4"
face="Trebuchet MS">Abstact</font></a></p>
<p><a href="#introduction"><font color="#000000" size="4"
face="Trebuchet MS">Introduction</font></a></p>
<p><a href="#background"><font color="#000000" size="4"
face="Trebuchet MS">Background</font></a></p>
<ul>
<li><font color="#000000" size="4" face="Trebuchet MS">RTP</font></li>
<li><font color="#000000" size="4" face="Trebuchet MS">MPEG</font></li>
<li><font color="#000000" size="4" face="Trebuchet MS">RTSP</font></li>
</ul>
<p><a href="#I_RFC"><font color="#000000" size="4"
face="Trebuchet MS">Internet RFCs</font></a></p>
<ul>
<li><font color="#000000" size="4" face="Trebuchet MS">RFC
1889</font></li>
<li><font color="#000000" size="4" face="Trebuchet MS">RFC
1890</font></li>
<li><font color="#000000" size="4" face="Trebuchet MS">RFC
2250</font></li>
</ul>
<p><a href="#module"><font size="4" face="Trebuchet MS">Software
Design and Modules Built</font></a></p>
<p><a href="#pro_doc"><font size="4" face="Trebuchet MS">Program
Documentation</font></a></p>
<p><a href="#discussion"><font size="4" face="Trebuchet MS">Future
Work</font></a></p>
<p><a href="#references"><font size="4" face="Trebuchet MS">References</font></a></p>
<p> </p>
<a="introduction">
<p><a name="introduction"><font color="#000000" size="4"
face="Trebuchet MS">Introduction</font></a></p>
<p><font size="3" face="Trebuchet MS"><!---------------------------------------------------------------------> The goal of the project
was the creation of software library to allow <br>
for the playback and Internet transmission of MPEG video. To do
so, it <br>
was necessary to create a way to package MPEG video into Real
Time <br>
Protocol (RTP) packets. RTP is a best-effort protocol geared
toward real<br>
time transmission and thus toward multimedia data. This software
was<br>
developed considering to be used with Real Time Streaming
Protocol(RTSP)<br>
, but also can be used with any Internet based MPEG video
broadcasting <br>
application. This software supports packetizing and the header
extension <br>
of RTP packet or MPEG2 transport stream and MPEG1/2 elementary
stream. <br>
Packetization scheme for these streams and header extension
specification <br>
are described in RFC2038, RTP Payload format for MPEG1/MPEG2
Video. </font></p>
<p> </p>
<p><a name="background"><font color="#000000" size="4"
face="Trebuchet MS">Background</font> </a></p>
<p><font color="#000000" size="4" face="Trebuchet MS">- RTP</font></p>
<p><font face="Trebuchet MS"><!---------------------------------------------------------------------> RTP is a transport protocol for
real-time applications.This protocol is <br>
used for the transport of real-time data, including audio and
video. It <br>
can be used for media-on-demand as well as interactive services
such as <br>
telephony. RTP provides support for applications with real-time <br>
properties such as continuous media(e.g.,audio and video),
including <br>
timing reconsruction, loss detection, security and content <br>
identification. UDP/IP is RTP's initial target networking
environment. <br>
RTP does not address resource reservation and does not guarantee <br>
quality-of-service for real time services. The data transport is <br>
augmented by a control protocol(RTCP) to allow monitoring of the
data <br>
delivery in a manner scalable to large multicast networks, and to
<br>
provide minimal control and identification functionality. RTP and
RTCP <br>
are designed to be independent of the underlying transport and
network <br>
layers. RTP itself does not provide any mechanism to ensure
timely <br>
delivery or provide other quality of service guarantees, but
relies on <br>
lower-layer services to do so. It does not guarantee delivery or
prevent <br>
out-of-order delivery, nor does it assume that underlying network
is <br>
reliable and delivers packets in sequence. The sequence numbers
included <br>
in RTP allow the receiver to reconstruct the sender's packet
sequence, but <br>
sequence numbers might also be used to determine the proper
location of a <br>
packet. </font></p>
<p><font color="#000000" size="4" face="Trebuchet MS">- MPEG</font></p>
<p><font face="Trebuchet MS"><!---------------------------------------------------------------------> ISO/IEC JTC1/SC29 WG11 (also
referred to as the MPEG committee) has <br>
defined the MPEG2 standard (ISO/IEC 13818)[2]. This memo
describes a <br>
packetization scheme to transport MPEG video and audio streams
using <br>
the Real-time Transport Protocol (RTP), version 2 [3, 4]. The
MPEG1 <br>
specification is defined in three parts: System, Video and Audio.
The <br>
video and audio portions of the specification describe the basic
format <br>
of the video or audio stream. These formats define the Elementary
<br>
Streams (ES). The MPEG2 System specification defines an
encapsulation of<br>
the ES that contains Presentation Time Stamps (PTS), Decoding
Time <br>
Stamps and System Clock references, and performs multiplexing of
MPEG2 <br>
compressed video and audio ES's with user data. The MPEG2 System <br>
specification defines two system stream formats: the MPEG2
Transport <br>
Stream (MTS) and the MPEG2 Program Stream (MPS). The MTS is
tailored for<br>
communicating or storing one or more programs of MPEG2 compressed
data <br>
and also other data in relatively error-prone environments. The
MPS is <br>
tailored for relatively error-free environments.</font></p>
<p><font size="5" face="Trebuchet MS">- </font><font
color="#000000" size="4" face="Trebuchet MS">RTSP </font></p>
<p><font face="Trebuchet MS"><!---------------------------------------------------------------------> The RTSP protocol is designed to
establish and manage multimedia content<br>
sessions, enabling clients to request access to presentations and
<br>
conference participants to "pass the remote control"
amongst<br>
themselves as they share multimedia stream data. RTSP is
meant to <br>
be transport agnostic, permitting its content to be delivered
over TCP, <br>
UDP, or RTP. RTSP furthermore leverages existing internet <br>
protocols for session description and resource reservation.
RTSP's<br>
design is inspired by that of HTTP 1.1, and is intended to
emulate and<br>
co-exist with this protocol wherever possible.</font></p>
<p> </p>
<p><a name="I_RFC"><font size="4" face="Trebuchet MS">Internet
RFCs</font><font size="4"> </font></a></p>
<p><font face="Trebuchet MS">As is to be expected when dealing
with the MBone and the Internet, there are a <br>
host of official standards to be followed. The Internet
Engineering Task force is <br>
responsible for most of these, and two IETF Request for Comments
(RFC) documents,<br>
</font><a
href="http://info.internet.isi.edu:80/7c/in-notes/rfc/files/rfc1889.txt"><font
face="Trebuchet MS">RFC 1889</font></a><font face="Trebuchet MS">
and </font><a
href="http://info.internet.isi.edu:80/7c/in-notes/rfc/files/rfc1890.txt"><font
face="Trebuchet MS">1890</font></a><font face="Trebuchet MS">,
come into play for this project. More important, this project <br>
falls into the jurisdiction of an IETF draft document as well. </font></p>
<h2><a
href="http://info.internet.isi.edu:80/7c/in-notes/rfc/files/rfc1889.txt"><font
size="3" face="Trebuchet MS">RFC 1889</font></a><font size="3"
face="Trebuchet MS"> </font></h2>
<p><font face="Trebuchet MS">This IETF RFC 1889 [1] defines the
Real-Time Protocol. This document is careful to <br>
steer clear of defining any uses of the protocol. Nevertheless,
all uses of RTP must <br>
comply with RFC 1889. </font></p>
<h2><a
href="http://info.internet.isi.edu:80/7c/in-notes/rfc/files/rfc1890.txt"><font
size="3" face="Trebuchet MS">RFC 1890</font></a><font size="3"
face="Trebuchet MS"> </font></h2>
<p><font face="Trebuchet MS">This IETF RFC 1890 [2] is a
companion document to RFC 1889 which outlines some <br>
parameters for the use of RTP with different media types.
Specifically, RFC 1889<br>
defines payload type codes and timings for different media types.</font></p>
<h2><a
href="http://info.internet.isi.edu:80/7c/in-notes/rfc/files/rfc2038.txt"><font
size="3" face="Trebuchet MS">RFC 2250</font></a></h2>
<p><font face="Trebuchet MS">This IETF RFC 2250 [2] had the most
impact on this project. This document defines <br>
a 32-bit header format to be used with packets of MPEG data.
Formats for both audio <br>
and video and for both encapsulated and elementary streams are
defined. It is the <br>
format for elementary video streams and MPEG2 transport stream
with which this <br>
project needed to comply. In this project elementary stream part
is implemented. <br>
It includes the packetization of elementray stream into RTP
payloads and the settings <br>
of RTP fixed header, MPEG video extension, and also MPEG2
extension header according <br>
to the each rule rule described in this RFC.<br>
</font></p>
<p><font face="Trebuchet MS">For the MPEG video elementary stream
followin fragmentation rules are applied:<br>
1. The MPEG Video_Sequence_Header, when present, will always be
at the beginning of <br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -