MM_H323_RTSP

advertisement
H.323 and Real Time Streaming Protocol
Dorgham Sisalem
Mobile Integrated Services
FhG Fokus
1
H.323 Primer
2
H.323
• May 1995 - H.323 work started
• June 1996 - Decided by ITU-T
• Designed for exchanging multimedia over IP
networks (4 versions of H.323)
3
H.323 Components
•
•
•
•
Terminals
Gatekeepers
Gateways (H.323 to H.320/H.324/POTS)
MCUs
– Multipoint Controller (MC)
– Multipoint Processor (MP)
4
H.323 Gatekeeper
• Address Translation
– H.323 Alias to transport (IP) address based on terminal
registration
– “email-like” names possible
– “phone number like” names possible
• Admission control
– Permission to complete call
– Can apply bandwidth limits
– Method to control LAN traffic
5
H.323 Gatekeeper (cont.)
• Management of gateway
– Which gateway to choose (load balancing and cost
regulation)
• Call Signaling
– May route calls in order to provide supplementary services
or to provide Multipoint Controller functionality
• Call Management/Reporting/Logging
6
H.323 Gateway
• Provide world wide connectivity and interoperability
from LAN
– H.320, H.324, regular POTS telephones
• Map Call Signaling (Q.931 to H.225.0)
• Map Control (H.242/H.243 to H.245)
• Media Mapping (FEC, multiplex, rate matching,
audio transcoding)
7
H.323 MCU
• Media Distribution
– Unicast - send media to one
terminal (centralized in MP;
traditional model)
– Multicast - send to each
receiver directly
– Hybrid - some of each
ISDN (H.320)
Gateway)
MCU
• Manage Ad Hoc multipoint
calls
– Join, invite, control of
conference modes
• Multiprotocol via Gateways
8
H.323 protocol stack
Control
Data
Audio
Video
A/V Cntl Control
Gatekeeper
G.7xx H.26x
RTCP
H.225.0 H.245 T.120
RTP
TCP
Reg,
Adm,
Status
(RAS)
UDP
IP
9
H.323 protocol stack (cont.)
• H.323 - System Document
• H.225.0 - Call Signaling, Packetization
– Gatekeeper Registration, Admission, and Status (RAS)
• H.245 - Control (also used in H.324, H.310)
• T.120 - Data and Conference Control
10
H.323 example
A Call Setup Example
• a point to point call
• One Gatekeeper using the Direct Call Model
11
H.323 example (cont.)
GK
(1) ARQ
Can I call
“Bob”?
(3) ACF
Yes, use this
IP Address
Bill
(2a) GK resolves “Bob”
to IP address through H.323
registration or external
name service
(e.g. DNS, Database, etc..)
(2b) Admission Policy
Applied
PictureTel
Bob
12
H.323 example (cont.)
GK
(5) ARQ
May I answer?
(6) ACF
Yes
(4) SETUP (Create)
(7) ALERTING
PictureTel
(8) CONNECT (User answers)
Bill
Bob
13
H.323 example (cont.)
PictureTel
(9) H.245 connection established
Bill
- Capability Exchange
Bob
- Open Logical
Channels (audio, video)
14
Multimedia Streaming
Based on slides from Vishal Misra,
15
Streaming Stored
Audio & Video
Streaming stored media:
• Audio/video file is stored in a
server
• Users request audio/video file on
demand.
• Audio/video is rendered within,
say, 10 s after request.
• Interactivity (pause, repositioning, etc.) is allowed.
Media player:
–
–
–
–
removes jitter
decompresses
error correction
graphical user interface
with controls for
interactivity
• Plug-ins may be used to
imbed the media player
into the browser
window.
16
Streaming from Web server (1)
• Audio and video files stored in
Web servers
naïve approach
• browser requests file with HTTP
request message
• Web server sends file in HTTP
response message
• content-type header line indicates
an audio/video encoding
• browser launches media player,
and passes file to media player
• media player renders file
• Major drawback: media player
interacts with server through
intermediary of a Web browser
17
Streaming from Web server (2)
Alternative: set up connection
between server and player
• Web browser requests and
receives a meta file
(a file describing the object)
instead of receiving the file
itself;
• Content-type header
indicates specific
audio/video application
• Browser launches media
player and passes it the
meta file
• Player sets up a TCP
connection with server and
sends HTTP request.
Some concerns:
• Media player communicates
over HTTP, which is not
designed with pause, fast
forward, rewind commands
• May want to stream over
UDP
18
Streaming from a streaming
server
• This architecture allows for non-HTTP protocol
between server and media player
• Can also use UDP instead of TCP.
19
Real Time Streaming Protocol:
Why not HTTP
• Designers of HTTP had fixed media in mind:
HTML, images, applets, etc.
• HTTP does not target stored continuous media
(i.e., audio, video, SMIL presentations, etc.)
20
Options when using a streaming
server
• Send at constant rate over UDP. To mitigate the effects of jitter, buffer and
delay playback for 1-10 s. Transmit rate = d, the encoded rate. Fill rate x(t)
equals d except when there is loss.
• Use TCP, and send at maximum possible rate under TCP; TCP
retransmits when error is encountered; x(t) now fluctuates, and can
become much larger than d. Player can use a much larger buffer to
smooth delivery rate of TCP.
21
Streaming: The RealAudio Way
• .ram files describe the location of the file
rtsp://bazzooka.de/videos/NationalhymneVideo.rm
use RTSP for streaming the file
http://bazzooka.de/videos/NationalhymneVideo.rm
use RTSP over HTTP for streaming the media
• .rm, .ra files describe the content of the file
– Which bandwidth, compression, timinglines ....
22
Meta file example (SDP)
v=0
o=- 2890844526 2890842807 IN IP4 192.16.24.202
s=RTSP Session
m=audio 0 RTP/AVP 0
a=control:rtsp://audio.example.com/twister/audio.en
m=video 0 RTP/AVP 31
a=control:rtsp://video.example.com/twister/video
23
Real Time Streaming Protocol
RTSP (RFC 2326)
• Client-server application layer protocol.
• acts as a « network remote control »
• supports the following operations:
– retrieval of a media from a server
– invitation of a media server to a conference
– recording of a conference
What it doesn’t do:
• does not define how audio/video is encapsulated for streaming over
network
• does not restrict how streamed media is transported; it can be
transported over UDP or TCP
• does not specify how the media player buffers audio/video
RealNetworks
• Server and player use RTSP to send control info to each other
24
RTSP: out of band control
• A file is transferred over one channel.
– The RTSP control messages use different port numbers than the
media stream, and are therefore sent out-of-band.
• Interleaved:
– If the RTSP messages were to use the same port numbers as the
media stream, then RTSP messages would be said to be
“interleaved” with the media stream.
• What is this good for?
25
RTSP generalities
• Protocol design
–
–
–
–
text-based protocol
transport protocol independant
supports any session description (sdp, xml, etc.)
similar design as HTTP with differences yet!
• client  server and server  client requests
• server maintains a « session state »
• data carried out-of-band
– works either with unicast or multicast
26
RTSP messages
• a request (client  server or server  client)
method to apply
URL
RTSP version
PLAY rtsp://video.example.com/twister/video RTSP/1.0
seq# for request/response pair
CSeq: 2
Session: 23456789
session identifier
play starting at that offset for an
Range: smpte=0:10:00-
• and its response
version status code
undefined duration
reason phrase
RTSP/1.0 200 OK
CSeq: 2
seq# for request/response pair
Session: 23456789
session identifier
Range: smpte=0:10:00-0:20:00
RTP-Info: url=rtsp://video.example.com/twister/video;
seq=12312232;rtptime=78712811
28
RTSP methods
• major methods
– SETUP:
– PLAY:
– PAUSE:
– TEARDOWN:
server allocates resources for a
stream and starts an RTSP session
starts data tx on a stream
temporarily halts a stream
free resources of the stream, no
RTSP session on server any more
• additional methods
–
–
–
–
–
–
OPTIONS:
get available methods
ANNOUNCE: change description of media object
DESCRIBE:
get low level descr. of media object
RECORD:
server starts recording a stream
REDIRECT:
redirect client to new server
SET_PARAMETER:
device or encoding control
29
RTSP initiates and controls
delivery
•
HTTP GET
web
server
presentation description (sdp)
W
client
C
SETUP
PLAY
RTP audio/video
RTCP
TEARDOWN
media
servers
A&V
Client obtains a description of the
multimedia presentation, which can
consist of several media streams..
• The browser invokes media player
(helper application) based on the content
type of the presentation description.
• Presentation description includes
references to media streams, using the
URL method rtsp://
• Player sends RTSP SETUP request;
server sends RTSP SETUP response.
• Player sends RTSP PLAY request;
server sends RTSP PLAY response.
• Media server pumps media stream.
• Player sends RTSP TEARDOWN request;
server sends RTSP TEARDOWN response
30
Example: media on demand,
unicast
• Scenario…
C
client
W
A
V
media descr.
web server
audio
server
video
server
step 1: get description (in SDP format)
step 2: open streams with RTSP
step 3: play
step 4: teardown
31
RTSP session
• Each RTSP has a session
identifier, which is chosen by the
server.
• The client initiates the session
with the SETUP request, and the
server responds to the request
with an identifier.
• The client repeats the session
identifier for each request, until
the client closes the session with
the TEARDOWN request.
• RTSP port number is 554.
• RTSP can be sent over UDP or
TCP. Each RTSP message can
be sent over a separate TCP
connection.
32
RTSP: streaming caching
• Caching of RTSP response messages makes little sense.
• But desirable to cache media streams closer to client.
• Much of HTTP/1.1 cache control has been adopted by
RTSP.
– Cache control headers can be put in RTSP SETUP
requests and responses:
• If-modified-since: , Expires: , Via: , Cache-Control:
33
RTSP: streaming caching
• Proxy cache may hold only segments of a given media
stream.
– Proxy cache may start serving a client from its local
cache, and then have to connect to origin server and fill
missing material, hopefully without introducing gaps at
client.
34
Download