Title: Signaling End-Of-Stream in RTSP (or RTCP)
1Signaling End-Of-Stream in RTSP(or RTCP)
IETF-58 MMUSIC WG
In IETF I-D database draft-ietf-zeng-rtsp-end-of-
stream-00.txt (on mmusic mailing list
draft-ietf-zeng-mmusic-end-of-stream-01.txt)
- Thomas Zeng
- P. Greg Sherwood
- PacketVideo Corp, Nov, 2003
2Background
- Work triggered by the awkwardness of BYE
- Tasked to create Strawman proposal in Vienna
- Lately this work has been energized by the
desire for server to push different types of
information to client - END_OF_STREAM with ending packet number
- Session descriptions (and their updates)
- Error events
- Another background Sean Sheedy had a announce
based EOS draft a few years ago, and Ron
Frederick had mentioned Stream done event in
the RTSP bake-off report as well (about 3 years
ago) - http//www.ietf.org/proceedings/00jul/00july-131.h
tm
3Background (contd)
- BYE RTCP packet has been widely used for
streaming server to announce EOS event - EOS the end of stream is reached and/or play
request has been fulfilled. - Drawbacks of using BYE
- BYE de-allocates SSRC, thus preventing re-play
w/o SETUP again - BYE packet may be unreliable (e.g., when
carried over UDP) - BYE cannot not be aggregated
- If BYE is not used and server does nothing to
signal EOS, then - Clients rely on the close Range to figure out
when RTP packets are over - If no end range, which is the case for live
streaming (or end range is provided in PLAY
response but server has to end early due to
error) - The clients transport handler will know if no
RTP packet is forth-coming, but the cost can be
one or more of the following - extra delay and/or erroneous requests for
re-transmission - even re-buffering if video has low frame rate
4Strawman Proposal Using RTSP
- As an extension to RTSP, use a S-gtC method w/ a
feature tag - Recent suggestion is to use ANNOUNCE instead of a
new method name - This method announces EOS event, with optional
information on actual range served and the
sequence number(s) of the ending RTP packet(s) - MUST include Notice header ( a new header) for
event type - Do we need SDP as body of this method?
- Request URL can be either aggregate or
non-aggregate URI - Opportunity exists to generalize this as a method
for server to push other kind of info to client - Need to work out how server can initiate
connection to client
5Example of RTSP conversation
- S-gtC ANNOUNCE rtsp//foo.com/bar.avi/streamid0
RTSP/1.0 - CSeq 10
- Session 12345678
- Notice End-Of-Stream
- Reason 2000 End of range reached
- Range npt0-200 bytes0-200000
- RTP-Info url//foo.com/bar.avi/streamid
0seq45102 -
- C-gtS RTSP/1.0 200 OK
- CSeq 10
- Session 12345678
- / Second play can reuse SSRC /
- C-gtS PLAY rtsp//foo.com/bar.avi/streamid0
RTSP/1.0 - Supported method.eos
- CSeq 110
- Session 12345678
- Range 0-200
6Strawman Proposal Using RTCP
- Define a new RTCP packet type (type 205), which
has format similar to BYE (but added ending seq
no. per SSRC), except it does not mean leaving
the RTP session - Instead, it means I am going to stop sending RTP
packet until you issue a new PLAY - RTCP extension really belongs to AVT WG !
- 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
1 2 3 4 5 6 7 8 9 0 1 - ----------------------
---------- - V2P SC PTEOS205
length - ----------------------
---------- ---- - SSRC/CSRC
repeat - ----------------------
---------- SC times - extended RTP sequence number
- ----------------------
---------- ---- - ...
-
- (opt) length reason for
EOS ... - ----------------------
----------
7Pros and Cons of The Two Proposals
RTSP END_OF_STREAM RTCP EOS Packet
Works for non-persistent RTSP connection ? No, unless server can initiate connection (TBD) Yes
Aggregatable? Yes No
Reliable? Yes, assuming RTSP over TCP No, unless RTP/AVP/TCP is used
Works for non-RTP transport (e.g., Mpeg2 transport) Yes No
Scalable in multicast transports? No Yes
8What Next
- Propose to expand the scope of this draft to
cover ANNOUNCE as an extension to RTSP core spec - Pushes events such as EOS
- Pushes Session Descriptions as did RFC2326
- Change name of draft to rtsp-announce-
- Work out how server contact client host
- Dual-roled host client to upstream, server to
downstream - Acceptable as MMUSIC WG work item?
- ANNOUNCE has been taken out of RTSP core spec
(rfc2326bis)